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

46 lines
2.2 KiB
Markdown

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