meldestelle/CHANGELOG.md

7.7 KiB

Changelog — Meldestelle

Alle wesentlichen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Format basiert auf Keep a Changelog. Versionierung folgt Semantic Versioning.

Versionsschema: MAJOR.MINOR.PATCH[-QUALIFIER]

  • MAJOR — Breaking Changes / inkompatible API-Änderungen
  • MINOR — Neue Features (abwärtskompatibel)
  • PATCH — Bugfixes (abwärtskompatibel)
  • QUALIFIERSNAPSHOT (Entwicklung), beta.N (Vorversion), leer = Release

Unreleased

Hinzugefügt

  • Core: Modularisierte ZNS-Parser eingeführt (ZnsVereinParser, ZnsReiterParser, ZnsPferdParser, ZnsFunktionaerParser) zur Verbesserung der Wartbarkeit und Unterstützung von Einzelimporten.
  • Infrastructure: Datenbank-Migration V010 hinzugefügt, um das Schema final mit den Exposed-Modellen zu synchronisieren.
  • Infrastructure: Datei-Archivierung für hochgeladene ZNS-ZIP-Dateien im ZnsImportOrchestrator implementiert.
  • Infrastructure: ZnsImportService vollständig auf die neuen spezialisierten Parser umgestellt und als Spring-Bean im Backend registriert.
  • QA: Umfassende Test-Suite ZnsParserTest.kt mit realen ZNS-Daten (Hämmerle, Neuwirth, etc.) erstellt; Korrektur der Extraktions-Logik für Mitgliedsnummern (Position 147) und Funktionär-Daten (RICHT01).
  • QA: Neue Betriebsanleitung für ZNS-Importer Tests erstellt: docs/07_Infrastructure/runbooks/ZNS_Importer_Test_Manual.md.
  • Infrastructure: MasterdataDatabaseConfiguration korrigiert: Expliziter Aufruf von Database.connect() hinzugefügt, um Abstürze beim Anwendungsstart ("No database specified") zu beheben.
  • Infrastructure: application.yml im masterdata-service vervollständigt (DataSource-Konfiguration mit pg-user/pg-password und Flyway-Aktivierung).
  • Domain: Legacy-Spezifikationen für ZNS-Schnittstellen (Import/Export) formalisiert:
    • docs/03_Domain/02_Reference/Legacy_Specs/OETO-2026_Meldestelle_Pflichtenheft_V2.4.md (Basis-Satzarten A-N)
    • docs/03_Domain/02_Reference/Legacy_Specs/OETO-2026_Meldestelle_Erweiterung-Schnittstelle_2014.md (XML-Erweiterung, LinkID-Logik)
  • QA B-2: OnboardingValidator-Objekt extrahiert; OnboardingValidatorTest.kt (17 Unit-Tests: Pflichtfeld-Guard, Doppelklick-Schutz, Abbrechen-Reset, rememberSaveable-Regression)
  • QA B-3: AbteilungsRegelServiceTest.kt um 14 Tests erweitert: CSN-C-NEU ≤95 cm / ≥100 cm Pflicht-Teilung, ORGANISATORISCH, SEPARATE_SIEGEREHRUNG, Caprilli-Regression, Grenzfälle 90/110 cm
  • Domain: AbteilungsTeilungsTypE um ORGANISATORISCH und SEPARATE_SIEGEREHRUNG erweitert

Behoben

  • Masterdata: Qualifikations-Management für Funktionäre (Richter/Parcoursbauer) professionalisiert: Umstellung von unstrukturiertem Text auf offizielle ÖTO/FEI Master-Daten Referenzen (QualifikationMasterTable).

  • Masterdata: Fehlende Tabelle funktionaer_qualifikation in der Initialisierung beider Services (masterdata und zns-import) ergänzt, um PSQLException während des ZNS-Imports zu beheben.

  • Infrastructure: Start-Probleme des masterdata-service endgültig behoben: Port-Konflikt zwischen Spring Boot (Management/Actuator) und dem Gateway (8081) durch Umzug auf Port 8086 (gemäß Infrastruktur-Vorgaben) gelöst.

  • Infrastructure: Port-Konflikt im masterdata-service durch Trennung der Bind-Adressen (Spring: 127.0.0.1, Ktor: 0.0.0.0) und Bereinigung verwaister Prozesse stabilisiert.

  • Core: Veraltete ZnsLegacyParsersTest.kt entfernt; alle Tests sind nun in ZnsParserTest.kt konsolidiert.

  • Domain: Fehlschlagenden LicenseMatrixServiceTest behoben; fehlende reiterLizenz-Daten in Test-Reitern ergänzt und Fallback-Logik in LicenseMatrixServiceImpl für spartenübergreifende Lizenzen (z.B. Springlizenz für Dressur-Basis) stabilisiert.

  • Infrastructure: Fehlschlagenden RegulationSeedVerificationTest behoben; Testdaten an das neue Modell (reiterLizenz Feld) angepasst.

  • Infrastructure: Kompilierfehler 'Unresolved reference lizenzKlasse' in ReiterExposedRepository behoben; fehlendes Feld lizenzKlasse zu ReiterTable und Datenbank-Migration V010 hinzugefügt.

  • Onboarding: rememberrememberSaveable für geraetName, sharedKey, znsStatus in OnboardingScreen.kt ( Felder gingen bei Zurück-Navigation verloren)

  • AbteilungsRegelService: CSN-C-NEU Pflicht-Teilungslogik implementiert (≤95 cm: ohne/mit Lizenz; ≥100 cm: R1/R2+); SparteE-Import ergänzt

  • Desktop-Packaging konfiguriert: .deb (Linux), .msi (Windows), .dmg (macOS)

  • Zentrale Versionsdatei version.properties (Single Source of Truth für SemVer)

  • Automatisches Git-Tagging via CI/CD (release.yml Gitea Actions Workflow)

  • CHANGELOG.md eingeführt (dieses Dokument)


[1.0.2-SNAPSHOT] — 2026-04-06

Geändert

  • Data Modeling: Redundante Kontakt- und Adressdaten aus FunktionaerTable entfernt; stattdessen Verknüpfung zu ReiterTable via reiter_id hinzugefügt.
  • Import: ZNS-Importer verknüpft nun Funktionäre automatisch mit vorhandenen Reitern anhand des Namens (Nachname, Vorname).
  • Infrastructure: findByName in ReiterRepository implementiert für effiziente Suche während des Imports.
  • Datenbank: Migration V011 hinzugefügt, um das Schema zu bereinigen und die Fremdschlüsselbeziehung zu etablieren.

[1.0.1-SNAPSHOT] — 2026-04-05

Geändert

  • Masterdata: Funktionär-Datenmodell und API bereinigt und vollständig dokumentiert. Konsistente Verwendung von satzId (statt satzID) in allen Schichten (Domain, Infrastructure, API).
  • Refactoring: DomVerein zu Verein, DomReiter zu Reiter, DomPferd zu Pferd und DomFunktionaer zu Funktionaer umbenannt (Domain, Infrastructure, API, Core).
  • Domain: personId ist nun optional (nullable) bei Verein, Reiter, Pferd und Funktionaer, um ZNS-Initialimporte zu unterstützen.
  • Infrastructure: VereinTable, ReiterTable, HorseTable und FunktionaerTable synchronisiert; personId ist nun optional.
  • API: VereinController, ReiterController, HorseController und FunktionaerController (DTOs/Requests) an die neuen Modelle angepasst.
  • Doku: Ubiquitous_Language.md und MASTER_ROADMAP.md an das neue Namensschema (Reiter, Pferd, Funktionaer) angepasst.

Behoben

  • ZNS-Import: Kompatibilitätsprobleme in ZnsLegacyParsers und ZnsImportService nach Domain-Refactorings behoben (UUID-Person-Referenzen und Enum-Synchronisation).
  • Domain: Felder kurzname und oepsRegionNummer bei Verein entfernt (nicht in VEREIN01.DAT vorhanden).

1.0.0-SNAPSHOT — 2026-04-03

Hinzugefügt

  • Sprint A: Docker-Compose-Setup, Healthchecks für alle Services
  • Sprint B: CI/CD Pipeline für Compose Desktop Tests (headless, Xvfb)
  • Sprint B: Gradle-Build-Optimierungen (Cache, Parallel, Wrapper 9.4.0)
  • Sprint B: Onboarding-Wizard (Veranstalter, Verein, Turnier, Bewerb, Abteilung)
  • Sprint B: BewerbRepository, AbteilungRepository, DefaultTurnierRepository
  • Sprint B: ReiterProfilEditDialog, PferdProfilEditDialog mit MsValidationWrapper
  • Sprint B: ÖTO-Regelwerk als Regulation-as-Data (Lizenz-/Altersmatrix, V008/V009 Migrations)
  • Sprint B: Tenant-Isolation Grundstruktur (Multi-Tenant Postgres-Schemas)
  • Sprint B: Architektur-Tests (:platform:architecture-tests)

Geändert

  • Gradle Wrapper auf 9.3.1 aktualisiert
  • JVM-Toolchain auf Java 25 angehoben