Add Zeitplan fields to domain and DTO models, implement UpdateZeitplan intent and API integration, and update ViewModel for Zeitplan state consistency.

This commit is contained in:
2026-04-11 20:42:36 +02:00
parent 52bc8f3fbe
commit bc46054412
9 changed files with 108 additions and 25 deletions
@@ -3,26 +3,27 @@
## 📅 Session Info
- **Datum:** 2026-04-11
- **Agenten:** 🏗️ Lead Architect, 👷 Backend Developer, 🎨 Frontend Expert, 🧹 Curator
- **Fokus:** Implementierung Zeitplan-Optimierung (Frontend Prototyp)
- **Fokus:** Integration Zeitplan-Optimierung & Datenanbindung
## 🏗️ Architektur-Entscheidungen
- **Komponente:** `TurnierZeitplanTab.kt` wurde als zentraler Ort für die visuelle Zeitplanung geschaffen.
- **Layout:** 14-Stunden-Raster (07:00 - 21:00) mit feststehender Zeitachse und scrollbarem Gitter.
- **Interaktion:** Vertikales Drag & Drop mit 5-Minuten-Snapping zur präzisen Planung.
- **Datenfluss:** `TurnierZeitplanTab.kt` wurde erfolgreich an das `BewerbViewModel` angebunden.
- **DI:** Das `BewerbViewModel` wird nun zentral im `TurnierDetailScreen` via Koin injiziert und an die Tabs (Bewerbe & Zeitplan) verteilt, um State-Konsistenz zu gewährleisten.
- **Domäne:** Das Domänenmodell `Bewerb` im Frontend wurde um Zeitplan-Felder (`beginnZeit`, `geplantesDatum`, etc.) erweitert, um das Mapping zum Backend zu vervollständigen.
## 👷 Backend/Integration (Status)
- **Backend:** Logik in `BewerbService` bereits vorhanden (vorherige Sessions).
- **Frontend-Store:** Aktuell noch Mock-Daten (`ZeitplanItemUi`), Anbindung an `BewerbViewModel` steht noch aus.
## 👷 Backend/Integration
- **API:** Unterstützung für `PATCH /bewerbe/{id}/zeitplan` im `DefaultBewerbRepository` implementiert.
- **ViewModel:** Neuer Intent `BewerbIntent.UpdateZeitplan` zur persistierung von Zeitänderungen.
## 🎨 Frontend (Details)
- **Modul:** `frontend:features:turnier-feature`
- **Datei:** `TurnierZeitplanTab.kt` (Neu)
- **Anpassung:** `TurnierDetailScreen.kt` um Tab "ZEITPLAN" erweitert.
- **Mapping:** Automatisches Mapping von `Bewerb` (Domain) auf `ZeitplanItemUi` (Visual) inkl. dynamischer Farbwahl nach Sparte.
- **Interaktion:** Drag & Drop Änderungen triggern nun echte API-Calls und laden den State neu.
- **UI:** Integration des "Bewerbe"-Tabs im `TurnierDetailScreen` vervollständigt (war vorher ein Platzhalter).
## 🧹 Curator Status & Cleanup
-Neue UI-Komponente erstellt und syntaktisch korrigiert.
-Navigation im Turnier-Detail angepasst.
- 📂 Nächster Schritt: Mapping von `BewerbUiModel` auf `ZeitplanItemUi`.
-Datenmodelle und Mapper erweitert.
-Repository-Anbindung vervollständigt.
- ✅ ViewModel-Integration im UI-Layer abgeschlossen.
- 📂 Nächster Schritt: Implementierung der automatischen Konfliktprüfung im Zeitplan (Rulebook-Validierung).
---
*Erstellt durch den Curator.*