# Journal: 17. April 2026 - ZNS Cloud-Suche Integration ## 🏗️ Status Quo Bisher konnten ZNS-Daten (Vereine/Veranstalter) im "Neue Veranstaltung" Wizard nur durch den manuellen Upload einer .zip oder .dat Datei importiert werden. Da die ZNS-Daten bereits im Backend (Masterdata-Service) vorhanden sind, war ein direkter Zugriff aus dem Wizard heraus wünschenswert, um den Workflow zu vereinfachen. ## ✅ Änderungen ### 1. Domain & Core (Frontend) - **Datei:** `frontend/core/domain/src/commonMain/kotlin/at/mocode/frontend/core/domain/zns/ZnsImportProvider.kt` - **Erweiterung:** Das `ZnsImportProvider` Interface wurde um `searchRemote(query: String)` erweitert. - **Datenmodell:** `ZnsImportState` enthält nun `remoteResults: List` und `isSearching: Boolean`. ### 2. Feature: ZNS-Import (Frontend) - **Datei:** `frontend/features/zns-import-feature/src/jvmMain/kotlin/at/mocode/zns/feature/ZnsImportViewModel.kt` - **Implementierung:** Die `searchRemote` Methode nutzt den `httpClient`, um den Endpunkt `/api/v1/masterdata/verein/search` des API-Gateways abzufragen. - **Serialisierung:** Ein internes `VereinRemoteDto` wurde hinzugefügt, um die Backend-Antwort korrekt zu mappen. ### 3. Shell: Desktop App (Frontend) - **Datei:** `frontend/shells/meldestelle-desktop/src/jvmMain/kotlin/at/mocode/desktop/v2/VeranstaltungScreens.kt` - **UI-Integration:** - Im ersten Schritt des Veranstaltungs-Wizards wurde ein neues Suchfeld "ZNS Cloud-Suche" integriert. - Die Suchergebnisse werden in einer horizontalen `LazyRow` als Cards angezeigt. - Bei Klick auf ein Ergebnis wird der Verein automatisch in den lokalen `StoreV2` übernommen (falls noch nicht vorhanden) und als aktiver Veranstalter für den Wizard gesetzt. - **Imports:** Notwendige UI-Komponenten (`LazyRow`, `TextOverflow`, `Icons.Default.Cloud`) wurden ergänzt. ## 🚀 UX-Vorteil Der User muss nun keine ZNS-Dateien mehr manuell verwalten, wenn die Daten bereits einmal zentral importiert wurden. Die "Cloud-Suche" fungiert als globale Stammdaten-Quelle, die nahtlos mit dem lokalen Offline-Store synchronisiert wird, sobald ein Eintrag ausgewählt wird. ## 🧹 Curator Hinweis Die Session wurde mit der erfolgreichen Implementierung der hybriden Datenquelle (Lokal + Cloud) für den Veranstaltungs-Wizard abgeschlossen. Dies stärkt den "Offline-First" Ansatz bei gleichzeitiger Nutzung zentraler Cloud-Ressourcen. **Nächste Schritte:** - Erweiterung der Cloud-Suche auf Reiter und Pferde (für spätere Wizard-Schritte). - Performance-Optimierung (Debounce) für die Remote-Suche.