# Net durum — 03.08.2026

> ⚠ **Bu belgenin ilk hâli sabah çıkarıldı; aynı gün maddelerin tamamı kapatıldı.**
> Kapanan işler aşağıda ✅ ile işaretli, kalanlar bölüm 7'de.

*Sets'in sorusu üzerine çıkarıldı: menü neden bozuk, hangi tasarımlar kullanılmadı, şu an ne eksik. Her satır kanıtlı — bellekten değil, kodu ve `design/` dosyalarını tarayarak.*

---

## 1 · Bulunan hatalar (bu turda düzeltildi)

### 1a · ⛔ Ofis menüsünün 11 maddesi gündeme gidiyordu

`AppSidebar.vue` kendi içinde **key → adres tablosu** tutuyordu ve tablo, kendisinden sonra yazılan her ekranda eksik kaldı. Adresi olmayan madde `'/'`'e düşüyordu — yani **Gündem**. Kullanıcının gördüğü "Sorgulama'ya tıklıyorum, gündeme gidiyor" tam olarak buydu; tek madde değil, **on bir madde**:

`notifications` · `planning_calendar` · `planning_query` · `instructor_workload` · `sales_agenda` · `sales_calendar` · `quotes` · `invoices` · `accounting` · `sellers` · `approvals`

✅ **Düzeltme:** adres artık maddeyle birlikte sunucudan geliyor (`OfficeNavigation` → `href`, route'un kendisinden). Menünün ayrı bir adres tablosu yok; bir daha eksik kalamaz. Portal menüsü zaten böyleydi (`PortalNavigation`), o yüzden orada bu hata yoktu.

---

## 2 · Tasarımcının verdiği, kullanılmayan dosyalar

### 2a · ✅ `03 Grafikler` — yazıldı ve bağlandı (03.08.2026)

Tasarımcı yedi grafik/veri durumu çizmiş: **aylık gelir** (çubuk), **aylık eğitim adedi**, **gelir dağılımı — eğitim türü**, **teklif hunisi**, **bölgesel talep matrisi**, **il bazında süresi dolan personel**, **KPI sparkline** ve "Henüz veri yok" durumları.

`resources/js/charts/`: `ChartCard` (başlık + dönem seçici + **üç veri durumu**: veri yok / 3'ten az nokta / yükleniyor), `BarChart` (gruplu + yığılmış), `HorizontalBarChart`, `LineAreaChart`, `DonutChart` (6 dilim + katlanan "Diğer"), `FunnelChart`, `HeatMatrix`, `Sparkline`.

Bağlandığı yerler: **muhasebe** (aylık gelir çizgisi + gelir dağılımı donut'u — ikisi de yanındaki rakamla aynı faturaları okur), **satış kokpiti** (teklif hunisi, her aşama kaybını taşır). Planlama gündemindeki talep matrisi zaten çizili ve tıklanabilirdi; bileşene taşımak parite için churn olurdu, bırakıldı.

### 2b · ⚠ `06 Desen Ekleri` — kısmen

| Desen | Durum |
|---|---|
| Segmented control | ✓ `SegmentedControl` |
| Referans kodu chip'i | ✓ `Chip` + mono kod |
| Kilit açıklama deseni | ✓ `LockMark` / `LockNote` |
| Öneri / tespit kartı | ⚠ sinyal şeritleri var, ortak bileşen yok |
| Görev satırı (smart todo) | ⚠ `Tasks/Index` içinde gömülü |
| Collapsible satır (e-posta / uzun içerik) | ❌ yok |
| Grup / satır-kalem kartı | ⚠ teklif kalemlerinde gömülü |
| Yön / tür mini rozetleri | ✓ `Badge` tonları |

### 2c · ⚠ `05 Navigasyon` — topbar bilinçli olarak yok

Katalogda topbar (breadcrumb + genel arama + bildirim zili) çizili; kompoze ekranların hiçbiri onu kullanmıyor, breadcrumb sayfa başlığında duruyor. **Bu bir karardı** (Sets, 28.07.2026) ve `AppSidebar` içinde yazılı. ⚠ Ama sonucu şu: **genel arama ve bildirim zili hiçbir yerde yok** — bildirimlere yalnız menüden gidiliyor.

### 2d · ✓ `00`, `01`, `02`, `04` — kullanılıyor

Tokenlar, form elemanları (25 atom), tablo standardı (`DataTable`: sıralama, sayfalama, boş hâl, 375px kart listesi, kayıtlı görünümler) ve geri bildirim (`Toast`, `ConfirmModal`, `Banner`, `SlideOver`, `EmptyState`, `Spinner`) yerinde.

⚠ `02`'nin **çoklu seçim + bulk bar**'ı yalnız sorgulama ekranında var; başka listelerde yok.

---

## 3 · Hiç yazılmamış ekranlar

| Tasarım | Ne | Durum |
|---|---|---|
| `50 Katilimci Paneli` | Katılımcının kendi ekranı | ✅ **Yazıldı** (03.08.2026): kendi günü, oturum beyanı (başlayınca açılır, damgalı, tek sefer), KVKK rızası (metin + sürüm + dil + an), kendi sertifikaları, ankete bağlantı. TCKN son-4 kimlik teyidi zaten auth katmanında çalışıyordu |
| `10 Ortak Auth` (müşteri yarısı) | Müşteri kullanıcısı için **güvenlik sayfası** | ✅ **Yazıldı**: `/portal/guvenlik` — 2FA, şifre, oturumlar; hepsi şifre penceresi arkasında |
| `21 Planlamaci Sihirbaz` | 5 adımlı planlama sihirbazı | ⛔ **Bilinçli kapsam dışı** (Sets kararı: planlamacı bütünü kaybediyordu; tek sayfa planlama yazıldı) |

---

## 4 · "Admin-tanımlı" denip ekranı olmayan ayarlar

✅ **Kapatıldı (03.08.2026).** On ikisinin de artık backoffice'te alanı var; ayrıca `Settings`'in okuduğu her anahtarın bir ekranda alanı olduğunu doğrulayan test yazıldı. Ek olarak aynı ekranda **çizili ama hiç kaydedilmeyen** üç alan (antet, teklif şartları, anket eşiği) düzeltildi.

Kapanmadan önceki liste — kırmızı çizgi 9 "iş kuralı admin-tanımlı olmalı" diyor, aşağıdaki 12 ayar `config/business.php` + `Settings` üzerinden okunuyor — yani koda gömülü değil — ama **backoffice ayar ekranında alanı yok**; değiştirmek için config düzenlemek gerekiyor:

```
auth.invitation_valid_hours          customer.compliance_warning_days
customer.hire_training_grace_months  instructor.max_authorised_institutions
instructor.ministry_notification_days planning.approval_rule
training.announcement_gap_days       training.day_starts_at
training.house_capacity_ceiling      training.low_occupancy_ratio
training.notification_warning_days   training.roster_closes_hours
```

⚠ `customer.compliance_warning_days` firmanın kendi ekranından değiştirilebiliyor (portal → organizasyon); eksik olan 3E'nin **varsayılanı**.

---

## 5 · Yarım kalan uçlar (küçük)

| # | Ne | Nerede |
|---|---|---|
| 30-b | Takvimden görüşme ekleme / sürükleme | `Office/Sales/Calendar.vue` |
| 30-c | Ay özetinde "müşteri eğitim günü" sayacı | `SalesCalendar::summary()` |
| 32-f | Müşteri kartında "tüm eğitimler" bağlantısı | `Office/Customers/Show.vue` |
| 62-c | e-Fatura entegratörü | Entegratör seçilene kadar kapsam dışı |
| — | Duyurunun **ticari elektronik ileti (6563/İYS)** sayılıp sayılmadığı | ✅ **Kapandı:** duyuru yalnız uygulama içi, e-posta yok — soru sorulmuyor |
| — | `/portal/bildirimler` ekranının **tasarımı yok** | Ofis bildirim ekranının kompozisyonu taşındı |

---

## 6 · Aynı gün bulunan ve kapatılan ek hatalar

| Hata | Nasıl bulundu | Durum |
|---|---|---|
| Ofis kökü (`/`) **boş bir sayfa** gösteriyordu; dört gerçek gündemin ikisi (**planlama** `/planlama`, **operasyon** `/yonetim`) hiçbir menüde yoktu | rol denetimi | ✅ Kök artık kişiyi kendi gündemine yönlendiriyor; iki gündem + anket sonuçları menüye girdi |
| Anket ekranı (`51`) **hiç render olamazdı** — rota kök şablonunu bildirmiyordu, Inertia var olmayan `app` shell'ine düşüyordu; hiçbir test render etmediği için görülmemişti | katılımcı paneli | ✅ Düzeltildi + testi yazıldı |
| Antet / teklif şartları / anket eşiği ekranda **kaydediliyor görünüp kaydedilmiyordu** | ayar denetimi | ✅ Düzeltildi |

## 7 · Neden sürekli backlog çıkıyor

Ölçülen üç sebep, üçü de mekanizma eksikliği:

1. **İki yerde tutulan bilgi.** Menü adresi hem route'ta hem sidebar'da yazılıydı; ikincisi güncellenmedi. Düzeltildi — artık tek yerde.
2. **Kapsama matrisi yalnız o turun tasarımı için çıkarılıyor.** `03 Grafikler` gibi *sayfa olmayan* katalog dosyaları hiçbir turun matrisine girmedi, çünkü hiçbir ekranın "upstream"i sayılmadı.
3. **"Admin-tanımlı" ile "ekranı var" aynı şey sanıldı.** Ayar `Settings`'e eklenince kural kapanmış sayıldı; ekran alanı ayrı iş olarak yazılmadı.

⚠ 2 ve 3 için öneri: bir tur biterken **tek satırlık kontrol** — (a) yeni ekran menüye bağlandı mı, (b) yeni ayarın backoffice alanı var mı, (c) dokunulan tasarımın katalog dosyaları (`02`, `03`, `06`) kullanıldı mı.
