meldestelle/docs/99_Journal/2026-04-17_ZNS-Cloud-Sync-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.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)

  • ZnsImportState wurde um lastSyncVersion (String) und isSyncing (Boolean) erweitert.
  • ZnsImportProvider Interface erhielt die neue Methode syncFromCloud(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 syncFromCloud im ZnsImportViewModel.
  • Abruf von bis zu 1000 Vereinen aus dem masterdata-service via API-Gateway.
  • Generierung eines Zeitstempels für die lastSyncVersion bei 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 StoreV2 gemergt ( 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.