# 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) -> 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.