# Tasarım brief'i — Sözleşmeler ve onay kapısı

*03.08.2026 · Sets kararı · müşteri portalı (`panel.<domain>`) + ofis ve eğitmen panelleri*

---

## 0. Bir cümlede

Kullanıcının imzaladığı, kabul ettiği ve okuduğu **her hukuki metnin tek adresi**; ve yeni sürüm çıktığında kullanıcıyı durduran **onay kapısı**.

---

## 1. Neden bu ekran var

Bugün hukuki metinlerin gösterildiği tek yer katılımcı panelindeki tek bir rıza kartı. Oysa hazırlanan sette **12 metin** var ve dört ayrı kitleye bakıyor: katılımcı, müşteri firma personeli, eğitmen, ofis personeli. Bunların bir kısmı onay ister, bir kısmı yalnız okutulur.

Sets'in kararı ikiye ayırıyor:

- **Onay gerektirenler** → kullanıcının karşısına çıkar, onaylamadan devam edemez.
- **Gerektirmeyenler** (aydınlatma metinleri, politikalar) → bu sayfada yaşar, istediğinde okur.

> *"Onaysız içeride tutmayalım yasal sorumluluk olan evrakta."*

---

## 2. Metin türleri — dördü farklı davranır

| Tür | Onay ister mi | Geri çekilebilir mi | Nerede görünür |
|---|---|---|---|
| **Aydınlatma metni** (KVKK m.10) | ❌ Hayır — bildirimdir, rıza değil | — | Sözleşmeler sayfası + ilgili akışın ayak bilgisi |
| **Açık rıza** (ör. video kaydı) | ✅ Evet | ✅ Evet (KVKK m.7) | Onay kapısı + Sözleşmeler sayfası |
| **Kullanım koşulları** | ✅ Evet | ❌ Hayır (kullanmayı bırakmak dışında) | Onay kapısı + Sözleşmeler sayfası |
| **Çerçeve sözleşme** (3E ↔ firma) | ✅ Evet, **firma düzeyinde** | ❌ Hayır (fesih ayrı bir süreç) | Onay kapısı (yalnız yetkili kişiye) + Sözleşmeler sayfası |

⚠ Tür rozeti sayfada görünür olmalı: kullanıcı "bunu neden onaylıyorum" sorusunun cevabını ekranda bulmalı.

---

## 3. Ekran A — Sözleşmeler sayfası

### Kim görür
Dört panelde de var: müşteri portalı, ofis, eğitmen, katılımcı. **Gördüğü liste kitlesine göre değişir** — eğitmen, müşteri aydınlatma metnini görmez.

### İstenen bölümler

**A1 · Başlık şeridi**
Başlık + tek cümlelik açıklama. Sağda, varsa, **"N belge onayınızı bekliyor"** amber rozeti — tıklayınca onay kapısına gider.

**A2 · Onayladıklarım**
Her satırda: belge adı · tür rozeti · **onayladığım sürüm** · onay tarihi · "Görüntüle". Yürürlükteki sürüm daha yenisiyse satır amber olur ve **"Yeni sürüm var — onayınız bekleniyor"** yazar.

⚠ Sürüm numarası kullanıcıya görünmeli. "v2 · 12.07.2026'da onayladınız" bir hak iddiasının dayanağıdır; "onaylandı" tek başına değildir.

**A3 · Bilgilendirme metinleri**
Onay istemeyenler. Satırda: belge adı · yürürlük tarihi · "Görüntüle". Onay kutusu **yok** — bu ayrım görsel olarak net olmalı, iki liste karışmamalı.

**A4 · Geri çekilebilir rızalarım**
Yalnız açık rızalar. Her satırda mevcut durum (verildi / geri çekildi) ve **"Rızamı geri çek"** eylemi. Geri çekme sonucu doğuran bir eylemdir: onay penceresi + sonucun ne olacağını söyleyen cümle ("kaydınız silinmez; bundan sonraki eğitimlerde video kaydı yapılmaz" gibi).

**A5 · Firma sözleşmesi** *(yalnız müşteri portalı, yalnız yetkili kişi)*
Çerçeve sözleşmenin durumu: yürürlükte / bekliyor / yok · sürüm · kabul eden kişi ve tarih · **kabul yöntemi** (portalda elektronik kabul / ıslak imzalı nüsha). Islak imza yolunda yüklenen nüshaya bağlantı.

⛔ **Islak imza yolu kilitlemez ve tek kapılı değildir** *(Sets, 03.08.2026)*. Bu kart üç şeyi birden karşılamalı:

| Yol | Kim yapar | Ekranda ne görünür |
|---|---|---|
| Elektronik kabul | Firmanın yetkili kişisi | "Portalda Onayla" — okuma kilitli onay akışı |
| Nüshayı indir → imzala → yükle | Firmanın yetkili kişisi | "Sözleşmeyi İndir (PDF)" + "İmzalı Nüshayı Yükle" |
| Satışçı toplar | **Satışçı, ofis tarafından** | Portalda yalnız *durum* görünür: "İmzalı nüsha bekleniyor — satış temsilciniz: [ad]" |

⚠ Üç yol da aynı kaydı doldurur; ekran **hangisiyle geldiğini** yazar. Sözleşme beklemede diye portalda hiçbir şey kapanmaz — bekleme yalnız teklif onayı anında karşımıza çıkar (bkz. §8).

**A5-b · Ofis tarafı karşılığı** *(satışçı ve operasyon ekranı — müşteri kartında)*
Satışçı ziyaretten imzalı nüshayla döndüğünde yükleyeceği yer. İstenen: sözleşme durumu rozeti · "İmzalı Nüshayı Yükle" · kim/ne zaman yükledi izi · yanlış firmaya yüklemeyi zorlaştıran firma adı teyidi.

**A6 · Belge görüntüleyici**
Metin uzun (5-6 bin karakter). Kaydırılabilir gövde, üstte sabit başlık, altta "Kapat". Yazdırma bağlantısı olmalı — kullanıcı kendi kaydını almak isteyecek.

---

## 4. Ekran B — Onay kapısı *(kritik)*

Yeni sürüm yayımlandığında kullanıcı giriş yaptıktan sonra **bu ekranla karşılaşır ve geçemez.** Force logout ile aynı mantık.

### İstenen davranış

- Tam sayfa. **Menü, ray, kaçış yolu yok.** Tek çıkış: onayla, ya da çık.
- Birden fazla belge bekliyorsa **sırayla** gösterilir: "1 / 3".
- Gövde sonuna kadar kaydırılmadan onay kutusu **etkinleşmez** (portaldaki teklif onayında bu desen zaten var: `ScrollToAccept`).
- Okuma ilerlemesi görünür (üstte ince şerit).
- **Neyin değiştiği gösterilir.** Kullanıcı v1'i onayladıysa ve v2 geldiyse, "v1'den farkları gör" bağlantısı — teklif sürüm karşılaştırmasındaki desen.
- Onay cümlesi metnin türüne göre değişir: *"Okudum, kabul ediyorum"* (kullanım koşulu) ≠ *"Açık rıza veriyorum"* (rıza).
- Alt satırda: onayın kayda geçeceği ve zaman damgası alacağı bilgisi.

### Kenar hâller

| Hâl | Ne görünür |
|---|---|
| Reddederse | "Onaylamadan devam edemezsiniz" + tek eylem: **Çıkış yap** |
| Firma sözleşmesi bekliyor ama kişi yetkili değil | Kapı **çıkmaz**; bunun yerine bilgi şeridi: "Firmanızın çerçeve sözleşmesi onay bekliyor — yetkili: [ad]" |
| Rıza geri çekilmiş, tekrar isteniyor | Kapı çıkar, ama metinde "daha önce geri çekmiştiniz" bilgisi |
| Metin yükleniyor / erişilemiyor | Kullanıcı **kilitlenmemeli**: hata hâli + tekrar dene; destek adresi |

---

## 5. 375px

⚠ Onay kapısı mobilde birincil hâldir — katılımcı paneline telefondan girilir. Gövde iç kaydırma **olmadan** sayfanın kendisi olarak akar, onay şeridi altta sabit durur (`38 Kenar Haller` C2'deki desenin aynısı).

---

## 6. Bu ekranın ÇİZMEYECEĞİ şeyler

- **Metin düzenleme.** Sürüm yazma ve yayımlama backoffice işidir; bu ekranlar yalnız okur ve onay alır.
- **PDF üretimi.** Yazdırma tarayıcının işi.
- **İmza çizme/e-imza.** Islak imza yolunda yalnız **yüklenen nüsha** vardır; ekranda imza atılmaz.

---

## 7. Tasarımcıya notlar

- Mevcut katalog kullanılacak: `ScrollToAccept` (okuma kilidi), `StatusBadge` (tür ve durum), `Banner` (uyarı şeritleri), `ConfirmModal` (geri çekme), `EmptyState`.
- **Eksik olabilecek atom:** sürüm karşılaştırma satırı bugün yalnız teklif ekranında var; hukuki metin için sürüm farkı **metin bloğu** karşılaştırması gerekiyor (teklifteki kalem tablosu değil). Gerekiyorsa yeni bir desen çizilmeli.
- Onay kapısı **hiçbir menüye bağlı değildir** — kendi kabuğu olmalı, `AuthLayout`'a yakın ama içeriye ait.
- ⛔ Ton: bu ekran korkutucu olmamalı. Kullanıcı bir engelle değil, bir bilgilendirmeyle karşılaştığını hissetmeli.

---

## 8. Teklif onayı + çerçeve sözleşme — tek akış

*(Sets kararı, 03.08.2026: engellemeyin, birleştirin.)*

Çerçeve sözleşmesi henüz kabul edilmemiş bir firma teklif onaylamaya geldiğinde **durdurulmaz**. Teklif onay ekranı iki kabulü tek adımda ister:

- Üstte çerçeve sözleşme bloğu — okuma kilitli, kendi onay kutusuyla.
- Altında teklifin kendi onayı (bugünkü akış aynen kalır).
- **Birincil buton her ikisi de işaretlenmeden etkinleşmez**; buton metni bunu söyler: *"Sözleşmeyi ve Teklifi Onayla"*.
- Sözleşme zaten yürürlükteyse blok **hiç çizilmez** — ekran bugünkü hâline döner.

⚠ Kabul eden kişi firmayı bağlayabilen kişi olmalı. Yetkisi olmayan biri teklifi onaylamaya gelirse: teklif onayı çalışır, sözleşme bloğu yerine bilgi şeridi çıkar — *"Çerçeve sözleşme yetkilinizin onayını bekliyor: [ad]"* — ve teklif onayı o tamamlanana kadar beklemeye alınır.

⛔ Islak imza yolu buraya da uzanır: firma "biz nüshayı imzalayıp göndereceğiz" diyorsa akış kilitlenmez, teklif "sözleşme bekliyor" durumunda durur ve satışçı nüshayı yüklediğinde kendiliğinden ilerler.
