Proje: Okul B2B App · Hub: Okul B2B App — Decisions
Okul Yorumları — MVP Kararı
B2B kurumsal kullanıcılar, okullarına bırakılan yorumları görüp cevaplayabilecek. Sub-screen olarak profil menüsü üzerinden erişilir.
Karar
- Yerleşim:
app/school-comments/index.tsx— profil sayfasına eklenen “Yorumlar” menü öğesi (router.push('/school-comments')). - MVP scope: Liste + cevap yazma/güncelleme/silme. Statistics endpoint’i (per-okul toplam + bekleyen sayıları) şimdilik kullanılmıyor — ileride dashboard’a eklenebilir.
- Default filtre: “Bekleyen” — cevap bekleyen yorumlar otomatik görünür. Üstte segmented filtre (Bekleyen / Tümü / Cevaplandı) + “Bekleyen” yanında badge.
- Filtre stratejisi: Client-side filter (
c.reply == null). Backend’te “has_reply” filtresi yok; bu MVP için kabul edilebilir sınırlama.
Gerekçe
- API zaten hazır (
Customer\SchoolCommentController). Backend değişikliği istemedik. - Statistics endpoint MVP dışı — ekran başına 1 endpoint (liste) yeterli.
- Client-side filter dezavantajı: bir sayfada çoğu yorum cevaplanmışsa “Bekleyen” sekmesi seyrek görünebilir. Pratikte yorum hacmi düşük olduğu için sorun değil. Yüksek hacimde
filter[has_reply]=0eklenmesi gerekir.
Alternatifler
- Ana tab olarak eklemek: Tab bar 4 sekmeye çıkardı — Gallery/Leads/Content/Profile düzeni bozulurdu. Reddedildi.
- Stats’la birlikte MVP: Fazla iş, her okul için ayrı kart gerekir. İkinci sürüme ertelendi.
- Yeni yoruma push notification: Backend webhook/trigger gerekiyor. Gelecek sürüm.
Teknik Notlar
- Endpoint:
GET /customer/school-comments?include[]=school&include[]=reply&include[]=user&include[]=userType - Reply:
POST /customer/school-comments/{id}/reply→{comment: string|null}. Boş body mevcut cevabı siler. - Liste sadece parent: Backend repo
whereNull('replied_id')hardcoded — cevap olan SchoolComment kayıtları listede görünmez, sadece parent yorumlar döner. Parent’ınreplyilişkisi yüklendiğinde nested olarak geliyor. - Approved only: Liste sadece
status=1(onaylı) yorumları döner. Rejected/pending admin yorumları customer’a görünmez.
Related
- school-comments-api-yapisi — endpoint detayları, response shape, filter/sort
- profil-ekrani — menü girişi eklendi
- analytics-event-sistemi —
trackCommentEventyeni event ailesi