Feature PRD — RSVP
Durum: Taslak v1
Amaç
Misafirin hesap açmadan, minimum veriyle katılım durumunu bildirmesi; çiftin bu yanıtları temiz bir misafir listesi olarak görmesi.
Veri modeli (davet birimi, misafir) ve onay kuyruğu → guest-list.md.
Kavramsal Model (özet)
- Davet birimi: 1+ misafir içeren, unique link/QR taşıyan davet kaydı (aile, çift, tek kişi). Detay → guest-list.md.
- İki link türü:
- Davet linki (ana akış) — birime özel, unique. Kimlik taşır.
- Ortak düğün linki (fallback) — listede olmayan misafirler için; yanıt onay kuyruğuna düşer.
Akış 1 — Davet Linki (ana akış)
- Misafir linki açar → davetiye/düğün sitesi görünümü + RSVP bölümü.
- Birimdeki kişiler listelenir.
- Yanıt: "Hepimiz katılıyoruz" kısayolu veya kişi kişi katılıyor/katılmıyor seçimi.
- "+ kişi ekle": misafir, linkte tanımlı olmayan kişiyi ad yazarak ekleyebilir. Eklenen kişi aynı birime bağlanır, panelde kaynak = "misafir ekledi" görünür.
- Opsiyonel not alanı.
- Gönderim sonrası teşekkür/özet ekranı.
Yanıt düzenleme: aynı link tekrar açıldığında mevcut yanıt görünür ve değiştirilebilir. Çift RSVP'yi kapatana kadar açıktır. Son yanıt geçerlidir (upsert).
Akış 2 — Ortak Link (fallback)
- Misafir ortak linki açar (davetiyede/sitede paylaşılan genel link).
- Form: ad soyad + yanındakiler (opsiyonel adlar) + katılım + not.
- Yanıt onay kuyruğuna düşer → çift panelde eşleştirir / kabul eder / reddeder (guest-list.md).
- Misafir "yanıtın iletildi" mesajı görür.
Fallback yanıtı düzenlenemez (kimlik yok). Değişiklik = yeni yanıt; çift kuyrukta birleştirir.
Tutulan Veri
Misafirden yalnızca: ad + katılım durumu + not (ops.). Telefon, e-posta, hesap istenmez. Bkz. data-privacy.md.
İş Kuralları
- Davet linki tahmin edilemez token içerir (düğün slug'ı + rastgele kod).
- Aynı linkten gelen yeni yanıt öncekini günceller.
- Çift RSVP'yi manuel kapatabilir; kapalıyken her iki akış da yanıt almaz, bilgi mesajı gösterir.
- Otomatik deadline MVP dışı.
- Yemek tercihi / alerji alanı MVP dışı (veri minimizasyonu).
- Salon kapasite kontrolü MVP dışı; toplam katılımcı sayısı dashboard'da gösterilir.
Acceptance Criteria
- Misafir davet linkinden hesap açmadan, birimindeki her kişi için ayrı katılım durumu bildirebilir.
- "Hepimiz katılıyoruz" kısayolu tek adımda tüm birimi "katılıyor" yapar.
- Misafir birime yeni kişi ekleyebilir; panelde kaynağı ayırt edilir.
- Davet linki tekrar açıldığında önceki yanıt görünür ve düzenlenebilir.
- Ortak linkten gelen yanıt guest list'e doğrudan yazılmaz, onay kuyruğuna düşer.
- RSVP kapatıldığında misafir tarafı yanıt kabul etmez.
- Akış mobil cihazlarda iyi çalışır.
Metrik
RSVP dönüş oranı = yanıt veren davet birimi / link üretilen davet birimi.
Açık Sorular
- Davet linki token formatı (uzunluk, okunabilirlik) — implementasyonda netleşir.
- "+ kişi ekle" için birim başına üst sınır gerekli mi?