meldestelle/docs/99_Journal/2026-04-17_ZNS-Cloud-Suche-Integration.md
StefanMoCoAt 4b6a242372
Some checks failed
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Failing after 59s
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 6m6s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m10s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Failing after 1m13s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m51s
feat: ZNS-Cloud-Sync und manuellen Veranstalter-Button im Wizard hinzugefügt
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
2026-04-17 00:31:40 +02:00

50 lines
2.5 KiB
Markdown

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