# 🎨 [Frontend Expert] — Zwischenbericht zur Besprechung vom 3. April 2026 > **Datum:** 3. April 2026, ca. 13:00 Uhr > **Rolle:** KMP, Compose Desktop, State-Management, Navigation, Backend-Anbindung --- ## ✅ Was wurde erreicht? ### Sprint A — vollständig abgeschlossen - **ViewModel-Architektur (A-1):** MVVM mit UDF als verbindliches Muster festgelegt. `Intent`/`State`-Struktur mit Sealed Classes definiert. `VeranstalterViewModel` als vollständige Referenz-Implementierung. Muster-Dokument in `docs/06_Frontend/` abgelegt. - **Abteilungs-Logik im Bewerb-Dialog (A-2):** CSN-C-NEU Automatik-Teilung mit 4 Abteilungen, AssistChip „Pflicht-Teilung vorgeschlagen", Abteilungs-Typen `SEPARATE_SIEGEREHRUNG` / `ORGANISATORISCH` in der UI verankert. ### Sprint B (teilweise) — ViewModels & Navigation vollständig - **ViewModels für alle V3-Screens (B-1):** `TurnierViewModel`, `BewerbViewModel`, `PferdProfilViewModel`, `ReiterProfilViewModel`, `VereinsViewModel`, `FunktionaerViewModel`, `AbteilungViewModel` (Startliste, Ergebnisse) — alle fertig. - **Zusätzlich erledigt (02.04.2026):** Navigation V2 / Back-Stack-System, Profil-Cards mit Edit-Dialogen (Veranstalter, Pferd, Reiter, Verein, Funktionär), Onboarding mit `rememberSaveable`, Veranstaltungs-Wizard mit Bestätigungs-Dialog, Breadcrumbs und Zurück-Navigation korrigiert. - **Backend-Anbindung (B-2 teilweise):** `HttpClient`-Factory zentral konfiguriert. `VeranstalterRepository`, `BewerbRepository`, `AbteilungRepository`, `DefaultTurnierRepository` implementiert. DTOs + Mapper in commonMain. Koin Feature-Modul `turnierFeatureModule` verdrahtet. Fehler-Mapping HTTP → Domain-Errors einheitlich. - **Validierungs-Live-Feedback (B-3 teilweise):** `MsValidationWrapper` vorhanden. OEPS-Nummer- und FEI-ID-Live-Validierung in `ReiterProfilViewModel` und `PferdProfilViewModel`. Lizenzklasse-Validierung im ReiterProfilViewModel. `ReiterProfilEditDialog` und `PferdProfilEditDialog` vollständig mit `MsValidationWrapper` ausgestattet. --- ## 🔄 Was ist noch offen? ### Sprint B — offen (höchste Priorität) - **B-2 Rest:** `AuthApiClient`-Integration, `StoreV2` Feature-für-Feature ablösen, Akzeptanz-Tests (Mock Engine), Dokumentation `Networking.md`. - **B-3 Rest:** Lizenzklasse × Bewerbs-Klasse Warnung, Altersklasse Pferd × Bewerb Warnung — benötigen Bewerb-Kontext und Rulebook-Spezifikation. - **B-4 Kassa-Screen:** Gesamt-Saldo-Ansicht, turnier-übergreifender Zahlvorgang, Rechnungsvorschau — wartet auf Backend B-2 und UI/UX-Wireframes. ### Sprint C — geplant - **C-1** `StoreV2` vollständig ablösen - **C-2** VeranstalterNeu: Vereinssuche & Daten-Übernahme - **C-3** LAN-Sync-UI vorbereiten (ADR-0022 ✅ freigegeben) - **C-4** Lint-Bereinigung & Code-Qualität --- ## 🔗 Abhängigkeiten | Warte auf | Von wem | Betrifft | |-------------------------------------|-------------------|-----------------------------------| | Rulebook Validierungs-Spezifikation | 📜 Rulebook B-2 | B-3 Bewerb-Kontext-Validierung | | Kassa-Service API | 👷 Backend B-2 | B-4 Kassa-Screen | | Wireframes Bewerb-Dialog / Kassa | 🖌️ UI/UX B-2/B-3 | B-4 Implementierung (✅ vorhanden) | --- ## 💬 Botschaft an die Runde Die Desktop-App hat eine vollständige ViewModel-Schicht und Navigation. Die Backend-Anbindung ist in vollem Gange — Repositories für alle Kern-Entitäten sind angelegt. Der größte offene Punkt ist die **`StoreV2`-Ablösung** und die Live-Validierung mit **Bewerb-Kontext** (B-3). Der **Kassa-Screen (B-4)** kann erst starten, wenn das Backend den Kassa-Service liefert. Die UI/UX-Wireframes für Kassa und Bewerb-Dialog sind bereits vorhanden und warten auf Implementierung.