Proje: Okul B2B App · Hub: Okul B2B App — Domain

Okul İçerikleri (Duyuru/Etkinlik/Başarı)

content tab’ında yönetilen üç tür içerik.

İçerik Türleri (SchoolContentType)

TürEndpointAçıklama
announcements/customer/school-content/announcementsDuyurular
events/customer/school-content/eventsEtkinlikler
achievements/customer/school-content/achievementsBaşarılar

CRUD İşlemleri

SchoolContentService tüm türler için aynı interface’i kullanır:

SchoolContentService.getList(contentType, page, pageSize, filters, sort, bypassCache)
SchoolContentService.getById(contentType, id)
SchoolContentService.create(contentType, payload)
SchoolContentService.update(contentType, id, payload)
SchoolContentService.delete(contentType, id)
SchoolContentService.toggleStatus(contentType, id, isActive)

Filtreler

  • filter[school_ids][] → okul bazlı filtreleme (array)
  • filter[search] → metin arama
  • filter[is_active] → aktif/pasif filtresi
  • sort=-created_at → varsayılan sıralama (en yeni önce)

Görsel Yükleme

İçeriklere görsel eklenebilir. Görseller içerikle birlikte form alanı olarak gönderilir. Duyuru görselleri 1:1 full width olarak gösterilir (commit d27da64 sonrasında düzeltildi).

API Hata Yönetimi

ServerError sınıfı üzerinden field-level validation hataları yakalanır:

const fieldErrors = error.getFieldErrors();
// { title: ["Başlık zorunludur"], ... }