Files
meldestelle/CHANGELOG.md
T

9.1 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

  • Basis-Infrastruktur & Domain-Definition:
    • DDD-Modelle für Veranstaltung, Turnier, Bewerb und Abteilung gemäß ÖTO definiert.
    • ZNS-Parser Prototyp für Dateiformate (VEREIN01, LIZENZ01, PFERD01, RICHT01).
    • Plan-B Mail-Service (Spring Boot) für Nennungs-Versand via World4You.
    • Desktop-App Skelett mit Navigation und UI-Hüllen (Compose Desktop).

Reality-Reset (28.04.2026)

  • Korrektur: Vormalige Einträge über "abgeschlossene" Billing-, Results- und Zeitplan-Features wurden entfernt, da diese im Code nicht funktional hinterlegt waren.
  • Status: Fokus zurück auf die Kern-Hierarchie (Veranstaltung -> Turnier -> Bewerb).

[1.0.6-SNAPSHOT] — 2026-04-10

Hinzugefügt

  • Entries-Domain: Strukturiertes Abteilungs-Warnungssystem gemäß ÖTO § 39 implementiert.
    • Neues Value Object AbteilungsWarnung und Enum AbteilungsWarnungCodeE für präzise Fehlermeldungen und ÖTO-Referenzen.
    • Erweiterung von Bewerb um die Methode validateStrukturellesTeilung zur Prüfung vorgeschriebener Abteilungsstrukturen (z.B. Lizenz-Trennung bei CSN-C-NEU, Stilspringen, Caprilli).
    • Umstellung des CompetitionWarningService und AbteilungsRegelService auf das neue strukturierte Warnungsmodell.
  • Entries-Service: Erweiterung der REST-API (BewerbeController) um die Auslieferung von Warnungen in den DTOs (BewerbResponse).
  • Frontend (Turnier-Feature): Visuelle Integration der Abteilungs-Warnungen in der Bewerbe-Liste.
    • Anzeige eines Warn-Icons (gelb) bei Regelverstößen.
    • Tooltip-Funktionalität zur Anzeige der detaillierten Warnungstexte und ÖTO-Paragraphen.
    • Erweiterung des BewerbUiModel und Repositories zur Unterstützung der Warnungs-Metadaten.

Geändert

  • QA: AbteilungsRegelServiceTest und BewerbTest auf das neue Warnungssystem aktualisiert und um Tests für strukturelle Teilungen (CSN Stilspringen, Caprilli) erweitert.
  • KMP: Korrektur von veralteten Instant-Deprecations in Testklassen (kotlin.time.Instant).

[1.0.5-SNAPSHOT] — 2026-04-06

Geändert

  • Masterdata: Bereinigung und Standardisierung von Masterdaten-Tabellen (Mehrzahl-Konvention):
    • bundesland -> bundeslaender
    • qualifikation_master -> funktionaers_qualifikationen
    • reiter_lizenz -> reit_lizenzen
    • turnierklasse -> turnier_klassen
  • Seeding: Umfassende Erweiterung der Seeder für Funktionärs-Qualifikationen, Turnierklassen und Turnier-Sparten gemäß ÖTO.
  • Data Modeling: Einführung der Tabelle turnier_sparten und Entfernung der redundanten reiter_sparte.
  • Infrastructure: Datenbank-Migration V013 implementiert alle Schema-Änderungen und Umbenennungen.

[1.0.4-SNAPSHOT] — 2026-04-06

Hinzugefügt

  • Reiter-Lizenzen: Strukturierte Speicherung von Lizenzen (STARTKARTE, REITERLIZENZ, FAHRLIZENZ) in einer 1:n Relation (ReiterLizenzTable).
  • Altersklassen: Einführung von Enums (ReiterAltersKlasseE) für präzise Filterung und Validierung im Domain-Modell und Parser.
  • Mitgliedsnummer: Validierungs-Logik gemäß ÖTO-Spezifikation (Bundesland-Präfix 1-9) in Reiter.kt implementiert.
  • ZNS-Import: ZnsReiterParser erweitert, um Lizenzen und Altersklassen-Enums direkt aus LIZENZ01.DAT zu extrahieren.
  • Persistenz: ReiterExposedRepository unterstützt nun das transaktionale Speichern und Laden der 1:n Lizenzen.

[1.0.3-SNAPSHOT] — 2026-04-06

Hinzugefügt

  • Masterdata: Refactoring der Reiter-Stammdaten (LIZENZ01.DAT). Bundesland, Verein und Nation werden nun über Master-Tabellen referenziert.
  • Domain: Validierungslogik für die 8-stellige OEPS-Mitgliedsnummer im Reiter-Modell implementiert.
  • Infrastructure: Neue Tabellen reiter_lizenz (1:n Beziehung) und Migration V012 zur Schemaanpassung und Datenbereinigung eingeführt.
  • ZNS-Import: Automatisches Auflösen von Relationen (Verein nach Name, Bundesland nach Nummer, Nation nach ISO-Code) während des Reiter-Imports.

Behoben

  • Infrastruktur: Consul Health-Check für masterdata-service korrigiert (Port 8086 für Actuator).
  • Masterdaten: MasterdataSeeder für Nationen und Bundesländer hinzugefügt, um Datenvollständigkeit nach Volume-Cleanup sicherzustellen.
  • Datenintegrität: Heilungs-Logik (fixReiterForeignKeys) implementiert, die Reiter-Datensätze nachträglich mit Masterdaten verknüpft.
  • Code-Qualität: Redundante BundeslandTable Definition in ReiterTable.kt entfernt.
  • Infrastruktur: BeanDefinitionOverrideException im zns-import-service durch Konsolidierung der Repositories in RepositoryConfiguration behoben.
  • Service-Discovery: Fehlende Consul-Registrierung des masterdata-service durch Hinzufügen der Discovery-Dependency und Konfiguration behoben.
  • Build: Kompilierfehler in BundeslandExposedRepository.kt behoben (inkonsistente Rückgabetypen im BundeslandRepository-Interface).
  • Infrastruktur: Fehlendes Autowiring im zns-import-service durch explizite Bean-Definitionen für alle Repositories in ZnsImportServiceApplication.kt behoben.
  • Domain: Kompilierfehler in Bundesland.kt behoben (uninitialisierte Eigenschaft bundeslandId entfernt).
  • Migration: SQL-Syntaxfehler in V012 behoben (korrekter Fremdschlüssel-Constraint für reiter_lizenz und Wiederherstellung des DO $$-Blocks).

[1.0.2-SNAPSHOT] — 2026-04-06

Geändert

  • ZNS-Import: ZnsImportService stabilisiert (ZipInputStream-Management korrigiert), um sequentielle Imports in Tests zu ermöglichen.
  • Test-Vollständigkeit: ZnsImportServiceTest korrigiert (Mocking für Reiter-Suche ergänzt, Testdaten für Funktionäre an Int-Parser angepasst). Alle 9 Tests nun grün.
  • Data Modeling: Redundante Kontakt- und Adressdaten aus FunktionaerTable entfernt; stattdessen Verknüpfung zu ReiterTable via reiter_id hinzugefügt. (Bereinigung der Felder erfolgte in V010).
  • 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 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