Manajemen Sekolah
Cara kerja pembuatan, aktivasi, dan pengelolaan sekolah (tenant).
Ringkasan
Modul ini mengelola data sekolah dan membuat database tenant saat sekolah disetujui.
| Komponen | Lokasi |
|---|---|
| Controller | app/Http/Controllers/SchoolController.php |
| Model | app/Models/School.php |
| Route | routes/web.php |
Sesuaikan path di tabel dengan struktur project yang sebenarnya.
Alur
| Langkah | Proses |
|---|---|
| 1 | Sekolah mengajukan permintaan |
| 2 | Superadmin menyetujui permintaan |
| 3 | Sistem membuat database tenant |
| 4 | Migration tenant dijalankan |
| 5 | Status sekolah menjadi aktif |
Kolom model
schools (model School)
| Kolom | Isi |
|---|---|
name, tagline, address | Identitas sekolah |
code | Kode sekolah (prefix + tahun + nomor) |
support_email, support_phone | Kontak sekolah |
logo | Path file logo |
domain, domain_type | Domain sekolah |
type | Jenis sekolah, bernilai custom pada jalur persetujuan |
edu_level_id | Jenjang pendidikan (relasi ke edu_level) |
admin_id | ID user admin sekolah |
database_name | Nama database tenant, formatnya eschool-{id}-{nama} |
status | 1 aktif, 0 nonaktif |
is_trial, trial_start_date, trial_end_date | Masa trial |
deleted_at | Soft delete |
Relasi yang dipakai: user (admin), subscription (langganan yang berlaku hari ini), eduLevel.
Inquiry pendaftaran (model dari SchoolInquiryInterface)
| Kolom | Isi |
|---|---|
school_name, school_email, school_phone, school_address, school_tagline | Data sekolah yang didaftarkan |
date | Tanggal pengajuan |
status | 0 pending, approved, atau rejected |
database_status | not_created, creating, created, atau failed |
database_created_at, database_error | Waktu selesai dan pesan error |
notes | JSON data admin: nama, kontak, email, edu_level_id, trial_package |
Tabel pendukung
| Tabel | Kolom |
|---|---|
school_settings | school_id, name, data, type |
user_relation | email, school_code, role, status (dipakai untuk login terpusat) |
Menghapus sekolah juga menghapus database tenant. Backup dulu.