Feature PRD — Seating Chart + "Masam Nerede?"
Durum: Taslak v1
Amaç
Çiftin salon düzenini görsel kroki üzerinde kurması, misafirleri sürükle-bırak ile masalara yerleştirmesi; misafirin düğün günü masasını kolayca bulması.
Misafir/davet birimi modeli → guest-list.md.
Kapsam
In (MVP): görsel kroki editörü · masa şekilleri · statik elementler · sürükle-bırak atama · "Masam Nerede?" misafir akışı · PDF export.
Out (MVP → V1): eleman döndürme · ölçekli salon planı · duvar/serbest çizim · mobilde drag-drop kurulum · AI oturma önerisi.
1. Kroki Editörü (çift tarafı)
- Grid'e oturan basit canvas; ölçek/duvar çizimi yok. Kurulum desktop-öncelikli; mobilde görüntüleme + liste modundan atama.
- Masa: şekil (yuvarlak / kare / dikdörtgen) · ad · ayarlanabilir sandalye sayısı · ekle / sil / taşı.
- Statik elementler: sahne · dans pisti · gelin-damat masası · serbest etiket kutusu (DJ, ikram masası vb.).
2. Atama
- Yan panelde "katılıyor" durumundaki misafirler, davet birimi altında gruplu listelenir.
- Sürükleme: tek kişi veya birim başlığı (birim → tüm üyeler aynı masaya).
- Atananlar panelde işaretlenir; atanmamış sayacı görünür.
- Kapasite: sandalye sayısı aşılırsa masada uyarı rozeti; atama engellenmez.
- Misafir "katılıyor" durumundan çıkarsa masa ataması düşer; çifte panelde bildirilir.
- Masa silinirse üzerindeki misafirler "atanmamış"a döner.
3. Misafir Tarafı — "Masam Nerede?"
- Davet linkli misafir: krokiyi görür, kendi masası vurgulu. Diğer masalarda isim gösterilmez (yalnız masa adları).
- Linksiz misafir (ortak link / salon girişi QR): ad yazarak arar → eşleşme varsa yalnızca o kişinin masası gösterilir; tam liste asla dökülmez. Eşleşme yoksa "görevliye danışın" mesajı. Art arda aramalara basit rate limit uygulanır.
- Yayınlama: çift masa planını "yayınla"yana kadar misafir tarafı masa bilgisi göstermez (taslak gizli kalır).
4. Export
- Tek PDF: sayfa 1 kroki görseli + devamında masa-masa isim listesi. Salon görevlisi/organizatör baskısı için.
İş Kuralları
- Masa adı düğün içinde benzersiz olmalı (misafir tarafında karışıklığı önlemek için).
- Atama kişi bazlıdır; birim sürükleme yalnızca UX kısayoludur.
- Yayınlanmamış plan misafir tarafında görünmez; RSVP akışı bundan bağımsız çalışır.
- İsim araması yalnızca yayınlanmış planda ve yalnızca masa ataması olan misafirler için sonuç döner.
Acceptance Criteria
- Çift kroki üzerinde masa ekleyip şekil, ad ve sandalye sayısını ayarlayabilir.
- Statik elementler eklenip taşınabilir.
- Guest list panelinden kişi ve birim sürükle-bırak ile masaya atanabilir.
- Kapasite aşımı görsel uyarı üretir, atamayı engellemez.
- Davet linkli misafir yayınlanmış planda kendi masasını kroki üzerinde vurgulu görür; başka isim görmez.
- Linksiz misafir isim aramasıyla yalnız kendi masasını görebilir.
- PDF export kroki + masa listesi içerir.
- Misafir tarafı mobilde iyi çalışır.
Metrik
- Oluşturulan masa planı sayısı · yayınlanan plan sayısı · "Masam Nerede?" sorgu sayısı.
Açık Sorular
- İsim araması eşleşme hassasiyeti (tam ad mı, benzer yazım toleransı mı) — implementasyonda netleşir.
- Rate limit eşiği — implementasyonda netleşir.