Proje: OkulUp · Hub: OkulUp — Domain
Etkinlikler ve Galeri
Etkinlikler (Events)
Modeli
OpenAPI generated type’tan extend ediliyor (EventResource).
Event:
- school_id, class_id (opsiyonel — okul geneli veya sınıf bazlı)
- title, event_date, status
- confirmed_count, declined_count, maybe_count — RSVP özet
- user_rsvp: EventRsvp[] — authenticated user'ın RSVP'si
RSVP Sistemi
RsvpRequestStatus — kullanıcının gönderebileceği statüsler (backend’den)
RsvpStatus — sunucu tarafında olan tüm statüsler
RSVP endpoint: POST /api/events/:id/rsvp
Toplu RSVP görmek: GET /api/events/:id/rsvps → GroupedRsvpResponse (statüs bazlı gruplu)
Yetki
- Görüntüleme + RSVP: ALL
- Oluşturma: STAFF
- Cover upload:
expo-image-picker
Galeri
Modeli
Gallery:
- school_id, class_id, event_id (bir etkinliğe bağlanabilir)
- visibility: 'public' | 'class' | 'private'
- is_approved, approved_by, rejection_reason
- media: GalleryMedia[]
Onay Akışı
- STAFF galeri oluşturur →
is_approved: false - Admin/Manager approve veya reject eder
- Reddedilirse
rejection_reasonkaydedilir
Media
GalleryMedia: image veya videothumbnail_url— varsa önce o, yoksafile_urlgetMediaThumbnailUrl(media)utility fonksiyonu- Upload:
useUploadMedia()hook, multipart/form-data
Yetki
- Görüntüleme: ALL,
galleryfeature flag - Oluşturma: STAFF,
galleryfeature flag - Onaylama: ADMIN,
galleryfeature flag
Related
- permission-system — events/galleries permission’ları
- feature-modules — modül listesi