2.1 KiB
2.1 KiB
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.ktgriff via Reflection auf denTurnierStorein der Desktop-Shell zu. - Lösung:
- Neues
TurnierStammdatenViewModelim Feature-Modul erstellt. - Anbindung an das
TurnierRepository(Interface-basiert). StammdatenTabContentnutzt nun dieses ViewModel für State-Management und Persistenz.
- Neues
2. ViewModel-Hoisting im TurnierDetailScreen
- Problem:
TurnierDetailScreennutztekoinInjectdirekt 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.
- Refactoring von
3. DI-Konfiguration
- Änderung: Das
TurnierStammdatenViewModelwurde imTurnierFeatureModule.ktals Factory registriert.
4. Code-Hygiene & Previews
- Änderung: Die
ScreenPreviews.ktin der Desktop-Shell wurden aktualisiert, um mit den neuen Parameter-Anforderungen desTurnierDetailScreenkompatibel zu sein (Mock-Injektion).
✅ Verifizierung
- Build:
./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvmerfolgreich. - Architektur: Keine direkten Koppelungen von
turnier-featurezur Shell mehr vorhanden.
🧹 Curator-Check
- ADR-0024 Konformität: Erreicht.
- V2-Altlasten: Vollständig entfernt.
- MASTER_ROADMAP Status: Aktualisiert.