Langganan
Alur langganan sekolah dan pengecekan status pembayaran.
Ringkasan
Modul ini mencatat langganan tiap sekolah dan status pembayarannya.
| Komponen | Lokasi |
|---|---|
| Controller | app/Http/Controllers/SubscriptionController.php |
| Model | app/Models/Subscription.php |
Status langganan
| Status | Arti |
|---|---|
pending | Menunggu pembayaran |
active | Langganan berjalan |
expired | Masa berlaku habis |
Samakan daftar status dengan enum yang dipakai di kode.
Kolom model
subscriptions (model Subscription)
| Kolom | Isi |
|---|---|
school_id, package_id | Sekolah dan paket yang dipilih |
name | Nama paket saat langganan dibuat |
start_date, end_date | Masa berlaku |
billing_cycle | Siklus tagihan (trial untuk trial) |
package_type | Salinan type paket (0 prepaid, 1 postpaid) |
charges, student_charge, staff_charge | Salinan harga paket |
no_of_students, no_of_staffs | Salinan kuota paket |
student_count, staff_count | Jumlah siswa dan staf yang dibayar |
Relasi: package, school, subscription_bill, subscription_feature, addons. Atribut status (misalnya Paid, Over Due) dihitung oleh model, bukan kolom.
subscription_bills (model SubscriptionBill)
| Kolom | Isi |
|---|---|
subscription_id, school_id | Langganan dan sekolah |
amount | Total tagihan |
total_student, total_staff | Jumlah yang ditagih |
due_date | Jatuh tempo |
description | Keterangan |
payment_transaction_id | Transaksi pembayaran yang melunasi |
payment_transactions (model PaymentTransaction)
| Kolom | Isi |
|---|---|
user_id, school_id | Pembayar dan sekolahnya |
amount | Jumlah |
payment_gateway | Xendit, Stripe, Cash, atau Cheque |
order_id | ID order (untuk Xendit: external_id; untuk cek: nomor cek) |
payment_id | ID invoice dari gateway |
payment_status | succeed, pending, atau failed |
payment_configurations (model PaymentConfiguration)
| Kolom | Isi |
|---|---|
school_id | null berarti konfigurasi global |
payment_method | Misalnya Xendit |
status | 1 aktif |
currency_code | Mata uang, default IDR |
api_key, secret_key | Kredensial gateway |