- 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>
Zweck: Vollständige Spezifikation der Lizenz-/Altersmatrix als Regulation-as-Data für das Backend (
Masterdata-SCS).
Dieses Dokument ist die verbindliche Übergabe vom 📜 Rulebook Expert an 👷 Backend Developer.
Nach Fachfreigabe durch das ÖTO-Fachreferat wird der Status von DRAFT auf STABLE angehoben.
⚠️Wichtig:RD4 existiert nicht im ÖTO-Regelwerk. Der bisherige Seed V008 enthielt RD4 fälschlicherweise —
wurde in V008 korrigiert (entfernt). Höchste Dressur-Lizenz ist RD3.
2.2 Schlüssel-Konvention (SSoT)
Doku-Label
Enum-Key (SSoT)
Hinweis
„ohne Lizenz" / „lizenzfrei"
LIZENZFREI
Nicht LZF — Enum ist maßgeblich
„mit Lizenz" / „R1"
R1
„R2 und höher"
R2, R3, R4
Aufwärts-kompatibel
3. Datenbank-Tabellen (Regulation-as-Data)
3.1 Bestehende Tabellen (V005/V008)
Tabelle
Zweck
turnierklasse
Klassen-Codes (E, A, L, LM, M, S) je Sparte mit max_hoehe
license_matrix
Max. Turnierklasse je Lizenz (1 Zeile pro Lizenz × Sparte)
altersklasse
Altersklassen der Reiter (Kinder, Jugend, Junioren, YR, AK, Senioren)
3.2 Neue Tabellen (V009)
license_height_matrix
Granulare Höhen-Lizenz-Zuordnung für Springen (eine Zeile pro Höhenbereich × erlaubte Lizenz).
-- Abfrage: Welche Lizenzen sind für 110 cm erlaubt?
SELECTlizenz_klasseFROMlicense_height_matrixWHEREsparte='SPRINGEN'ANDhoehe_von_cm<=110ANDhoehe_bis_cm>=110ANDist_aktiv=true;-- Ergebnis: R1, R2, R3, R4
horse_min_age_matrix
Mindestalter des Pferdes (Stichtag 1. Jänner) je Sparte + Höhenbereich oder Aufgabenniveau.
-- Abfrage: Mindestalter für Springen 125 cm?
SELECTmin_alter_jahreFROMhorse_min_age_matrixWHEREsparte='SPRINGEN'ANDhoehe_von_cm<=125ANDhoehe_bis_cm>=125ANDist_aktiv=true;-- Ergebnis: 5