meldestelle/docs/99_Journal/2026-04-22_Masterdata_DI_and_Consul_Fix.md
StefanMoCoAt 98c241fc64 ### feat: erweitere Stammdaten-Integration
- **Repositories:** Implementiere und integriere `KtorPferdRepository` und `KtorFunktionaerRepository`.
- **SQLite:** Erweitere Schema um `LocalPferd` und `LocalFunktionaer` mit passenden Queries.
- **ViewModels:** Passe `PferdeViewModel` und `FunktionaerViewModel` an, um Flows und Repository-Injektion zu nutzen.
- **DI-Module:** Aktualisiere `PferdeModule` und `FunktionaerModule` für Backend-Anbindung.
2026-04-22 12:25:43 +02:00

2.6 KiB

Session-Journal: 22. April 2026 - Masterdata DI & Consul Fix

🎯 Status & Highlights

  • DI-Stabilität: Koin-Abstürze in der Desktop-App behoben durch explizite Injektion des apiClient.
  • Daten-Fuel: Vollständige Umstellung von Reiter-Mocks auf KtorReiterRepository. Die 48.753 Reiter sind nun via API erreichbar.
  • Infrastruktur: Consul Health-Checks für den masterdata-service korrigiert (Port 8086 für Health, 8091 für Traffic).
  • ZNS-Korrektur: Verifizierung der Import-Mengen (21.206 Pferde erfolgreich importiert).
  • Vollständige Stammdaten-Integration: Pferde und Funktionäre sind nun vollständig an SQLite und Backend-API angebunden.

🛠️ Durchgeführte Änderungen

Frontend (Desktop & Common)

  • MeldestelleDb.sq: Erweiterung des SQLite-Schemas um LocalPferd und LocalFunktionaer.
  • Repositories: KtorPferdRepository und KtorFunktionaerRepository implementiert (commonMain).
  • DI (PferdeModule, FunktionaerModule): Umstellung auf reale Repository-Injektion mit dem apiClient.
  • ViewModels: PferdeViewModel und FunktionaerViewModel für reaktive Daten-Anbindung (Flows) angepasst.
  • DesktopMasterdataRepository: Persistierungs-Logik für Pferde und Funktionäre implementiert; getStats() liefert nun korrekte SQLite-Zahlen für alle Stammdaten-Typen.
  • VereinFeatureModule & ReiterModule: Umstellung auf named("apiClient"), um den authentifizierten Ktor-Client zu nutzen.
  • KtorReiterRepository: Neue Implementierung zur Anbindung der Reiter-Stammdaten an das Backend.
  • SQLite: User hat die DB gelöscht; Schema wird beim nächsten Start automatisch mit allen neuen Tabellen (LocalVerein, LocalReiter, LocalPferd, LocalFunktionaer) neu erstellt.

Backend & DevOps

  • masterdata-service (application.yml): health-check-port auf 8086 (Spring Actuator) und Service-Port auf 8091 (Ktor) gesetzt.
  • dc-backend.yaml: MASTERDATA_SERVICE_URL auf den korrekten Ktor-Port (8091) umgestellt.

🧐 QA & Verifizierung

  • Build: ./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm ist GRÜN.
  • Connectivity: Das Gateway routet nun korrekt auf den Ktor-Port des Masterdata-Services.

🚀 Next Steps

  1. Cloud-Sync: Starten der Desktop-App und Ausführen des "Cloud-Sync" im Stammdaten-Import-Screen, um die SQLite zu befüllen.
  2. Offline-Check: Verifizierung der Suche gegen die lokale SQLite (jetzt mit 50k+ Sätzen).
  3. Pferde-Schema: Erweiterung der SQLite um LocalPferd (für die 21k Pferde).

🏗️ [Lead Architect] | 👷 [Backend Developer] | 🎨 [Frontend Expert]