Proje: OkulUp · Hub: OkulUp — Domain

Duyuru Sistemi

Veri Modeli

Announcement:
- created_by, school_id, class_id, student_id — kapsam alanları
- title, content
- priority: 'low' | 'normal' | 'high'
- published_at, deleted_at
- is_read: boolean — computed (authenticated user okudu mu)
- attachments: AnnouncementAttachment[] (image/document)

Kapsam (Hedefleme)

  • school_id only → tüm okula
  • class_id → belirli sınıfa
  • student_id → belirli öğrenciye
  • Hepsi null → platform geneli (admin)

Read Tracking

POST /api/announcements/:id/read — okundu işareti is_read computed field ile liste görünümünde okunmamış badge

Ekler (Attachments)

Image veya document attachment’lar. Upload: useUploadAnnouncementAttachments Delete: useDeleteAnnouncementAttachment

Export

GET /api/reports/exports/attendance değil — duyuruların kendi export’u var mı? Route’larda özel görünmüyor.

Yetki

  • Görüntüleme: ALL (no feature flag)
  • Oluşturma/Güncelleme/Silme: STAFF (admin/manager/teacher)
  • announcements.view badge’i TabBar’da gösteriliyor