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>
46 lines
2.2 KiB
Markdown
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.
|