Paket dan Fitur
Struktur data paket langganan dan fitur tambahan.
Ringkasan
Paket menentukan fitur yang aktif pada sebuah sekolah. Fitur tambahan dapat dipasang di luar paket.
| Komponen | Lokasi |
|---|---|
| Controller | app/Http/Controllers/PackageController.php |
| Model | app/Models/Package.php, app/Models/Feature.php |
Relasi data
| Tabel | Relasi |
|---|---|
packages | has many features (pivot) |
schools | belongs to packages |
Kolom model
packages (model Package)
| Kolom | Isi |
|---|---|
name, description, tagline | Informasi paket |
type | 0 prepaid, 1 postpaid |
days | Lama paket dalam hari |
charges | Harga paket (prepaid) |
no_of_students, no_of_staffs | Kuota (prepaid) |
student_charge, staff_charge | Biaya per siswa dan per staf (postpaid) |
is_trial, trial_days | Penanda dan lama trial |
student_limit, staff_limit, class_limit | Batas pemakaian, -1 berarti tanpa batas |
features_json | Daftar fitur dalam JSON (["all"] untuk paket berbayar) |
highlight | Penanda paket unggulan |
status | 1 dipublikasikan, 0 tidak |
rank | Urutan tampil |
deleted_at | Soft delete |
Relasi: package_feature (ke features) dan subscription. Ada juga atribut package_with_type untuk label di dropdown.
Saat sekolah dibuat, paket disalin ke database tenant dengan kolom tambahan: subject_limit, announcement_limit, assignment_limit, exam_limit, holiday_limit.
Tabel pendukung
| Tabel | Kolom | Catatan |
|---|---|---|
features | name, status, is_default, required_vps | Scope activeFeatures hanya mengambil fitur aktif |
package_feature | package_id, feature_id | Pivot paket dan fitur |
subscription_feature | subscription_id, feature_id | Fitur yang aktif pada satu langganan |