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}/cover upload + /events/{id}/rsvp + /events/{id}/rsvps
  • Observer: EventObserver cache temizler

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ı