chore: refactor Veranstalter screens and ViewModels to decouple from Koin, implement hoisting for better testability, consolidate legacy shell logic into modern components, and add mock repositories for previews
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Journal-Eintrag: Architektur-Cleanup Veranstalter-Feature
|
||||
|
||||
**Datum:** 20. April 2026
|
||||
**Agent:** 🏗️ [Lead Architect] & 👷 [Backend Developer]
|
||||
|
||||
## Zielsetzung
|
||||
Vollständige Umsetzung der Plug-and-Play Architektur (ADR-0024) für das `veranstalter-feature` sowie die Konsolidierung der Screens in der Desktop-Shell.
|
||||
|
||||
## Durchgeführte Änderungen
|
||||
|
||||
### 1. ViewModel-Hoisting (Entkopplung von Koin)
|
||||
- **VeranstalterAuswahlScreen**: Der Screen erhält sein ViewModel nun als Parameter. Die direkte Injektion via `koinInject()` wurde entfernt. Dies erhöht die Testbarkeit und Unabhängigkeit der Komponente.
|
||||
- **VeranstalterDetailScreen**: Ebenfalls auf ViewModel-Hoisting umgestellt.
|
||||
|
||||
### 2. Einführung des VeranstalterDetailViewModel
|
||||
- Ein neues `VeranstalterDetailViewModel` wurde erstellt, um die Logik und den Zustand der Detailansicht zu verwalten.
|
||||
- Die Abhängigkeit vom veralteten `FakeVeranstaltungStore` wurde durch die Integration in das ViewModel-UDF-Pattern (State/Intent) ersetzt.
|
||||
- Registrierung der neuen ViewModels (`VeranstalterViewModel`, `VeranstalterDetailViewModel`) im `VeranstalterModule` via Koin `factory`.
|
||||
|
||||
### 3. Shell-Konsolidierung (Altlasten-Entfernung)
|
||||
- Die manuell in der Desktop-Shell (`VeranstalterScreens.kt`) gepflegten Screens wurden durch saubere Delegates ersetzt, welche die modernisierten Komponenten aus dem Feature-Modul einbinden.
|
||||
- Der direkte Zugriff auf den alten `Store` in der Shell wurde eliminiert.
|
||||
|
||||
### 4. Preview-Aktualisierung
|
||||
- Die `ScreenPreviews.kt` in der Desktop-Shell wurden an die neuen Konstruktoren angepasst.
|
||||
- Mock-Repositories wurden implementiert, um funktionsfähige Previews ohne aktiven Koin-Container zu ermöglichen.
|
||||
|
||||
## Verifizierung
|
||||
- Erfolgreicher Gradle-Build: `:frontend:shells:meldestelle-desktop:compileKotlinJvm`.
|
||||
- Manuelle Code-Prüfung auf Einhaltung der ADR-0024 Kriterien.
|
||||
|
||||
## Status
|
||||
🟢 **Abgeschlossen.** Das Veranstalter-Management ist nun vollständig architektonisch bereinigt und folgt dem Plug-and-Play Design.
|
||||
Reference in New Issue
Block a user