chore: refactor TurnierDetailScreen and related components, remove unused parameters, centralize date validation logic, implement TurnierStammdatenViewModel, and eliminate reflection dependencies
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Journal-Eintrag: Architektonische Bereinigung turnier-feature (Plug-and-Play)
|
||||
|
||||
**Datum:** 20. April 2026
|
||||
**Agent:** Junie (Lead Architect / Backend Developer)
|
||||
|
||||
## 🎯 Zielsetzung
|
||||
Vollständige Umsetzung der Plug-and-Play Architektur gemäß **ADR-0024** im `turnier-feature`. Dies umfasst die Entfernung von Reflection-Altlasten und die Entkoppelung von Feature-Komponenten von der Shell.
|
||||
|
||||
## 🛠 Durchgeführte Änderungen
|
||||
|
||||
### 1. Entfernung von Reflection-Altlasten
|
||||
* **Problem:** `TurnierStammdatenTab.kt` griff via Reflection auf den `TurnierStore` in der Desktop-Shell zu.
|
||||
* **Lösung:**
|
||||
* Neues `TurnierStammdatenViewModel` im Feature-Modul erstellt.
|
||||
* Anbindung an das `TurnierRepository` (Interface-basiert).
|
||||
* `StammdatenTabContent` nutzt nun dieses ViewModel für State-Management und Persistenz.
|
||||
|
||||
### 2. ViewModel-Hoisting im TurnierDetailScreen
|
||||
* **Problem:** `TurnierDetailScreen` nutzte `koinInject` direkt in der Composable-Struktur, was die Testbarkeit erschwerte und eine harte Abhängigkeit zu Koin innerhalb der UI-Komponente schuf.
|
||||
* **Lösung:**
|
||||
* Refactoring von `TurnierDetailScreen`: ViewModels (`BewerbViewModel`, `TurnierNennungViewModel`, `TurnierStammdatenViewModel`) werden nun als Parameter übergeben.
|
||||
* Die Desktop-Shell (`DesktopMainLayout.kt`) übernimmt die Injektion und Delegation der ViewModels.
|
||||
|
||||
### 3. DI-Konfiguration
|
||||
* **Änderung:** Das `TurnierStammdatenViewModel` wurde im `TurnierFeatureModule.kt` als Factory registriert.
|
||||
|
||||
### 4. Code-Hygiene & Previews
|
||||
* **Änderung:** Die `ScreenPreviews.kt` in der Desktop-Shell wurden aktualisiert, um mit den neuen Parameter-Anforderungen des `TurnierDetailScreen` kompatibel zu sein (Mock-Injektion).
|
||||
|
||||
## ✅ Verifizierung
|
||||
* **Build:** `./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm` erfolgreich.
|
||||
* **Architektur:** Keine direkten Koppelungen von `turnier-feature` zur Shell mehr vorhanden.
|
||||
|
||||
## 🧹 Curator-Check
|
||||
* ADR-0024 Konformität: **Erreicht**.
|
||||
* V2-Altlasten: **Vollständig entfernt**.
|
||||
* MASTER_ROADMAP Status: **Aktualisiert**.
|
||||
@@ -0,0 +1,33 @@
|
||||
# Journal: Code-Cleanup & Smell-Entfernung
|
||||
|
||||
**Datum:** 20. April 2026
|
||||
**Agent:** 🧐 [QA Specialist] & 🏗️ [Lead Architect]
|
||||
|
||||
## 🎯 Ziel
|
||||
Beseitigung von Code-Smells, ungenutzten Parametern und Code-Duplikaten in den kürzlich refactorten Turnier-Komponenten.
|
||||
|
||||
## 🛠️ Durchgeführte Änderungen
|
||||
|
||||
### 1. TurnierDetailScreen & Shell-Integration
|
||||
- **Problem:** Parameter `onBack` in `TurnierDetailScreen` wurde nicht verwendet.
|
||||
- **Lösung:** Parameter entfernt und alle Aufrufstellen in `DesktopMainLayout.kt` sowie `ScreenPreviews.kt` angepasst.
|
||||
- **Grund:** Leaner Code-Design und Vermeidung von Verwirrung bei der API-Nutzung.
|
||||
|
||||
### 2. DesktopMainLayout (Navigation)
|
||||
- **Problem:** Der Zweig `is AppScreen.Vereine` war redundant und teilweise nicht erreichbar.
|
||||
- **Lösung:** Redundanten Zweig entfernt. Die Navigation zu Vereinen wird bereits weiter oben im `when`-Block (Z. 668) abgehandelt.
|
||||
|
||||
### 3. TurnierStammdatenTab (Refactoring)
|
||||
- **Problem:** Ungenutzter Parameter `veranstalterName`. Mehrfache Code-Duplikate bei der Datumsvalidierung und den DatePicker-Dialogen.
|
||||
- **Lösung:**
|
||||
- Parameter `veranstalterName` entfernt.
|
||||
- Neue Hilfsfunktion `isDateRangeValid(von, bis, eventVon, eventBis)` erstellt, um die Validierungslogik zu zentralisieren.
|
||||
- Neue Composable-Funktion `TurnierDatePickerDialog` erstellt, um die redundante Dialog-Struktur zu eliminieren.
|
||||
- **Ergebnis:** Reduzierung der Dateigröße und deutlich bessere Wartbarkeit.
|
||||
|
||||
## ✅ Verifikation
|
||||
- **Build:** `./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm` war erfolgreich.
|
||||
- **Code-Check:** Manuelle Prüfung der bereinigten Stellen auf Konsistenz.
|
||||
|
||||
---
|
||||
*Status: Abgeschlossen. Codebase ist nun sauber für die weitere Feature-Entwicklung.*
|
||||
Reference in New Issue
Block a user