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

2.5 KiB

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.