Proje: OkulUp · Hub: OkulUp — Domain

Yemek Menüsü Modülü

Son eklenen feature (commit 164d1cf, 2026-04-17).

Veri Modeli

MealMenu {
  id: number
  school_id: number
  date: string          // YYYY-MM-DD formatı
  title: string | null  // opsiyonel başlık
  content: string | null // menü içeriği (multiline)
  created_by: number
  creator_name?: string
  attachments?: MealMenuAttachment[]
  created_at, updated_at
}
 
MealMenuAttachment {
  id, meal_menu_id, file_name, file_size, mime_type, file_url, uploaded_by
}

Yetki Kuralları

  • Görüntüleme: tüm roller (mealMenus.view)
  • Oluşturma/Güncelleme/Silme: sadece admin ve manager (mealMenus.create)
  • Feature flag: mobileConfig.features.meal_menu (default aktif)

API Endpoint’leri

GET    /api/meal-menus              → listele (date_from, date_to filtre)
GET    /api/meal-menus/:id          → detay
POST   /api/meal-menus              → oluştur
PUT    /api/meal-menus/:id          → güncelle
DELETE /api/meal-menus/:id          → sil
POST   /api/meal-menus/:id/attachments  → dosya yükle
DELETE /api/meal-menus/attachments/:id  → dosya sil
  • Tab’da görünmüyor — sadece Drawer’da (surfaces: ['drawer'])
  • Ana ekran: app/(tabs)/meal-menus.tsx
  • Detay: app/meal-menu/[id].tsx
  • Yeni oluşturma: app/meal-menu/new.tsx

Bileşenler

src/components/modules/meal-menus/:

  • MealMenuCard — liste item
  • MealMenuList — FlashList wrapper
  • MealMenuDetailHeader — detay sayfa header
  • MealMenuFAB — oluştur butonu (admin/manager’a göre gösterilir)
  • MealMenuForm — tarih + başlık + içerik formu