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_idonly → tüm okulaclass_id→ belirli sınıfastudent_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.viewbadge’i TabBar’da gösteriliyor
Related
- permission-system — announcements.view, announcements.create
- notification-system — duyuru badge (unreadAnnouncements)