Proje: OkulUp API · Hub: OkulUp API — Domain
OkulUp API — Etkinlik ve Galeri Modülleri
Etkinlik (Event) Modeli
Alanlar: school_id, class_id, created_by, title, description, location, event_date, start_time, end_time, max_participants, rsvp_deadline, status, cover_image_path, cover_thumbnail_path
RSVP: EventRsvp — status: attending | not_attending | maybe
API:
apiResource('events', ...)+/events/{id}/coverupload +/events/{id}/rsvp+/events/{id}/rsvps- Observer:
EventObservercache temizler
Galeri (Gallery) Modeli
Visibility: public | class | private
Onay Akışı:
[pending/unapproved] --approve--> [approved]
--reject--> [rejected] + rejection_reason
GalleryMedia: file_path, thumbnail_path, mime_type, sort_order — HEIC/HEIF dahil
API: apiResource('galleries', ...) + upload/approve/reject/destroyMedia endpoint’leri
Observer: ProcessGalleryMediaJob thumbnail oluşturur
UserPreference (Kullanıcı Tercihleri)
Notification + privacy ayarları JSON kolonu:
DEFAULT_NOTIFICATIONS = { push, announcements, messages, events, payments }
DEFAULT_PRIVACY = { profileVisibility, onlineStatus, readReceipts, dataSharing }GET/PUT /preferences endpoint’i.
NotificationPreference ile karıştırılmamalı! Bunlar farklı:
NotificationPreference: quiet time, tür bazlı açık/kapalıUserPreference: push genel, privacy ayarları
Related
- medya-isleme — ProcessGalleryMediaJob, S3
- bildirim-sistemi — event_reminder bildirimi