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
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
50 lines
2.5 KiB
Markdown
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.
|