- Introduced `license_height_matrix` for mapping minimum license requirements to jump heights (ÖTO § 231). - Added `horse_min_age_matrix` for defining minimum horse ages by discipline, height, or level (ÖTO § 103, FEI GR Art. 136). - Populated both tables with ÖTO 2026 and FEI-compliant seed data. - Updated Flyway V008 to remove incorrect `RD4` entry and annotated corrected enum references. - Created Flyway V009 for introducing the new tables and their seeds. - Aligned documentation, validation rules, and roadmaps for backend implementation handover. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
3.7 KiB
3.7 KiB
| date | sprint | agent | status |
|---|---|---|---|
| 2026-04-03 | B-2 | Rulebook Expert | TEILWEISE ABGESCHLOSSEN |
Session-Log: B-2 Regulation-as-Data Backend-Übergabe
Ziel der Session
Lizenz-/Altersmatrix als Regulation-as-Data an 👷 Backend übergeben; Lizenz×Bewerb-Tabellen für Fachfreigabe vorbereiten.
Durchgeführte Arbeiten
1. Enum-Korrektur: LizenzKlasseE (core-domain)
- Problem:
R4fehlte im Enum, obwohl Flyway V008 bereitsR4inserierte → Mismatch. - Fix:
R4incore/core-domain/src/commonMain/kotlin/at/mocode/core/domain/model/Enums.ktergänzt. - Vollständiger Katalog jetzt:
LIZENZFREI, R1, R2, R3, R4, RD1, RD2, RD3, JN, JG, YR
2. Flyway V008 korrigiert
- Problem:
RD4in Dressur-Lizenz-Matrix inseriert — existiert nicht im ÖTO-Regelwerk und nicht im Enum. - Fix:
RD4-Zeile entfernt; Kommentar mit Enum-Key-Konvention ergänzt. - Datei:
backend/services/masterdata/masterdata-service/src/main/resources/db/migration/V008__Seed_OETO_2026_Data.sql
3. Flyway V009 neu angelegt
Zwei neue Tabellen als Regulation-as-Data:
| Tabelle | Inhalt |
|---|---|
license_height_matrix |
Höhenbereich (cm) × erlaubte Lizenzklassen (Springen, ÖTO § 231) |
horse_min_age_matrix |
Mindestalter Pferd je Sparte + Höhe/Niveau (national ÖTO + FEI GR Art. 136) |
- Datei:
backend/services/masterdata/masterdata-service/src/main/resources/db/migration/V009__Add_HorseAge_And_LicenseHeight_Matrix.sql
4. B-2-Übergabe-Spezifikation erstellt
- Vollständige Spezifikation für 👷 Backend mit: Enum-Katalog, DB-Tabellen, Abfrage-Patterns, Pseudocode, REST-Endpunkt-Empfehlungen, Abweichungen Backend↔Frontend, Fachfreigabe-Checkliste.
- Datei:
docs/03_Domain/02_Reference/OETO_Regelwerk/B2-Backend-Uebergabe-Regulation-as-Data.md
5. Validierungsregeln.md aktualisiert (v0.3 → v0.4)
LZF→LIZENZFREIin allen Vorkommen korrigiert (Enum ist SSoT).- Verweis auf B2-Übergabe-Spezifikation ergänzt.
- Version auf 0.4 (2026-04-03) angehoben.
6. Roadmap aktualisiert
- Sprint B von 🔴 auf 🟡 gesetzt (Übergabe abgeschlossen, Fachfreigabe + Backend-Impl. offen).
- Abgeschlossene Teilaufgaben abgehakt.
Offene Punkte (Übergabe an nächste Session)
| # | Aufgabe | An wen | Priorität |
|---|---|---|---|
| 1 | Fachfreigabe Lizenz×Bewerb-Tabellen beim ÖTO-Fachreferat einholen | 📜 Rulebook Expert | 🔴 |
| 2 | Backend-Endpunkte /api/regulation/* implementieren |
👷 Backend | 🔴 |
| 3 | Frontend LZF-Key im Code prüfen (nicht nur Doku) |
🎨 Frontend | 🟠 |
| 4 | Serverseitige Validierung prüfen (nach Backend-Impl.) | 📜 Rulebook Expert | 🟠 |
| 5 | AltersklasseRechner (C-1) spezifizieren und implementieren |
👷 + 📜 | 🟠 |
Entscheidungen & Erkenntnisse
LIZENZFREIist der kanonische Enum-Key — nichtLZF. Alle Dokumente und Code müssen diesen Key verwenden.RD4existiert nicht im ÖTO-Regelwerk 2026. Höchste Dressur-Lizenz istRD3.- Aufwärts-Kompatibilität ist explizit modelliert: Höhere Lizenz darf immer in niedrigerer Klasse starten.
- Fachfreigabe ist Voraussetzung für STABLE-Status der Tabellen — bis dahin bleibt alles DRAFT.