Proje: OkulUp API · Hub: OkulUp API — Domain
OkulUp API — Feature Flag Sistemi
Nasıl Çalışır
school_settings tablosundaki features JSON kolonu, her okul için hangi modüllerin aktif olduğunu saklar. Middleware route bazında kontrol eder.
// routes/api.php
Route::middleware('feature:assignments')->group(function () {
Route::get('/assignments', ...);
...
});
// Middleware: CheckSchoolFeature
// feature:xxx → SchoolSetting::isFeatureEnabled('xxx')Varsayılan Feature Durumları
| Feature Key | Default | Açıklama |
|---|---|---|
messaging | true | Mesajlaşma |
broadcast_messaging | true | Toplu mesaj |
attendance_reports | true | Devam raporu ve export |
payment_summary | true | Ödeme özeti |
academic_reports | true | Akademik özet |
gallery | true | Galeri |
appointments | true | Randevular |
tracking | true | Günlük takip (bebek/erken çocukluk) |
assignments | false | Ödev yönetimi (varsayılan KAPALI) |
meal_menu | true | Yemek menüsü |
document_requests | true | Belge talepleri |
Not:
assignmentsfeature flag’i varsayılan olarak KAPALI. Yeni okullar için açılması gerekiyor.
SchoolSetting Model Mantığı
// DEFAULT_FEATURES ile DB'deki overrides merge edilir
getResolvedFeatures(): array // merge(DEFAULT, db_features)
getResolvedPolicies(): array // merge(DEFAULT, db_policies)
getResolvedBranding(): array // school_display_name = null ise school.name kullanılır
getResolvedSupport(): array // support_contact_source = 'platform' → config('kampus.support')School::getOrCreateSettings() — settings yoksa DEFAULT’ları ile otomatik oluşturur.
Policies (Davranış Ayarları)
| Policy | Default | Açıklama |
|---|---|---|
message_reply_default | teacher_only | Mesajlara kim cevap verebilir |
allow_parent_direct_message | true | Veli direkt mesaj gönderebilir mi |
show_teacher_read_receipts_to_parent | false | Okundu bildirimi veliye görünür mü |
allow_teacher_payment_visibility | false | Öğretmen ödemeleri görebilir mi |
support_contact_source | school | Destek iletişim kaynağı: school |
Branding
| Key | Default |
|---|---|
primary_color | #FF5F1F |
secondary_color | #1F2937 |
logo_url | null |
school_display_name | null (→ school.name) |
Related
- rol-ve-yetki-mimarisi — yetki kontrolü
- sistem-genel-bakis — genel mimari