### feat: erweitere ZNS und SQLDelight-Integration
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Has been cancelled

- **SQLDelight:** Füge neue Queries (`countVereine`, `maxUpdated...`) zur SQLite-Datenbank hinzu und aktualisiere `DesktopMasterdataRepository`.
- **ZNS-Sync:** Passe `ZnsImportState` an, um Pferde- und Funktionärsdaten zu unterstützen.
- **Cloud-Sync:** Entferne redundante Auth-Header und setze Limits für Massensynchronisation auf 50.000 Datensätze.
- **Masterdata-Service:** Stabilisiere Consul Health-Checks und implementiere Limit-Beschränkungen auf Controller-Ebene.
This commit is contained in:
2026-04-22 14:14:33 +02:00
parent 98c241fc64
commit beb20e0cf7
16 changed files with 287 additions and 99 deletions
@@ -12,6 +12,8 @@ data class ZnsImportState(
val isFinished: Boolean = false,
val remoteResults: List<ZnsRemoteVerein> = emptyList(),
val remoteReiterResults: List<ZnsRemoteReiter> = emptyList(),
val remoteHorseResults: List<ZnsRemotePferd> = emptyList(),
val remoteFunktionaerResults: List<ZnsRemoteFunktionaer> = emptyList(),
val isSearching: Boolean = false,
val lastSyncVersion: String? = null,
val isSyncing: Boolean = false,
@@ -59,17 +61,21 @@ interface ZnsImportProvider {
fun onFileSelected(path: String)
fun startImport(mode: String = "FULL")
fun searchRemote(query: String)
fun syncFromCloud(onResult: (
List<ZnsRemoteVerein>,
List<ZnsRemoteReiter>,
List<ZnsRemotePferd>,
List<ZnsRemoteFunktionaer>
) -> Unit)
fun syncFromCloud(
onResult: (
List<ZnsRemoteVerein>,
List<ZnsRemoteReiter>,
List<ZnsRemotePferd>,
List<ZnsRemoteFunktionaer>
) -> Unit
)
fun addSyncResults(
vereine: List<ZnsRemoteVerein>,
reiter: List<ZnsRemoteReiter>,
pferde: List<ZnsRemotePferd>,
funktionaere: List<ZnsRemoteFunktionaer>
)
fun reset()
}
@@ -151,3 +151,27 @@ DELETE FROM LocalPferd;
deleteAllFunktionaere:
DELETE FROM LocalFunktionaer;
countVereine:
SELECT COUNT(*) FROM LocalVerein;
countReiter:
SELECT COUNT(*) FROM LocalReiter;
countPferde:
SELECT COUNT(*) FROM LocalPferd;
countFunktionaere:
SELECT COUNT(*) FROM LocalFunktionaer;
maxUpdatedVerein:
SELECT MAX(last_updated) FROM LocalVerein;
maxUpdatedReiter:
SELECT MAX(last_updated) FROM LocalReiter;
maxUpdatedPferd:
SELECT MAX(last_updated) FROM LocalPferd;
maxUpdatedFunktionaer:
SELECT MAX(last_updated) FROM LocalFunktionaer;