meldestelle/docs/99_Journal/2026-04-20_Architektur-Cleanup-Veranstalter-Feature.md

34 lines
2.0 KiB
Markdown

# 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.