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>
2.2 KiB
2.2 KiB
Journal: ZNS-Cloud-Sync Integration
Datum: 17. April 2026 Badge: 🏗️ [Lead Architect] & 🎨 [Frontend Expert] & 👷 [Backend Developer]
🎯 Zielsetzung
Verbesserung des Datenflusses im Veranstaltungs-Wizard durch eine explizite Synchronisations-Möglichkeit mit den Cloud-Stammdaten (Masterdata-Service). Dies ersetzt die bisherige manuelle Suche durch einen "Sync-Button"-Ansatz, der die Offline-First-Philosophie (lokale Datenhoheit mit Cloud-Backup) besser verdeutlicht.
🛠️ Änderungen
1. Domain-Modell (frontend:core:domain)
ZnsImportStatewurde umlastSyncVersion(String) undisSyncing(Boolean) erweitert.ZnsImportProviderInterface erhielt die neue MethodesyncFromCloud(onResult: (List<ZnsRemoteVerein>) -> Unit). Die Nutzung eines Callbacks vermeidet zirkuläre Abhängigkeiten zum Desktop-Store innerhalb des Shared-Feature-Moduls.
2. Feature-Logik (frontend:features:zns-import-feature)
- Implementierung von
syncFromCloudimZnsImportViewModel. - Abruf von bis zu 1000 Vereinen aus dem
masterdata-servicevia API-Gateway. - Generierung eines Zeitstempels für die
lastSyncVersionbei erfolgreichem Abschluss.
3. UI-Anpassung (frontend:shells:meldestelle-desktop)
- Der Veranstaltungs-Wizard (Schritt 1) wurde umgestaltet:
- Entfernung des Cloud-Suchfeldes.
- Hinzufügen eines prominenten Buttons "ZNS-Daten-Sync" (Secondary Color).
- Implementierung einer Status-Anzeige: "ZNS-Daten geladen [Version dd.MM.yyyy HH:mm]".
- Bei Klick auf den Sync-Button werden die empfangenen Daten automatisch in den lokalen
StoreV2gemergt ( Idempotenz-Check via OEPS-Nummer).
🧪 Verifizierung
- Code-Review der Schnittstellen und des Datenflusses.
- Sicherstellung, dass der Sync-Status (Loading Spinner) korrekt im UI reflektiert wird.
- Prüfung der zeitstempelbasierten Versionsanzeige.
💡 Ausblick
Der Sync-Mechanismus könnte in Zukunft auf ein differentielles Update (Delta-Sync) umgestellt werden, sobald das Backend
entsprechende Header (If-Modified-Since) unterstützt. Aktuell werden pauschal die ersten 1000 Einträge geladen, was
für die aktuelle Projektphase (Österreich-weit ~1400 Vereine) ausreichend performant ist.