- 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>
88 lines
4.3 KiB
Markdown
88 lines
4.3 KiB
Markdown
# 📜 [ÖTO/FEI Rulebook Expert] — Zwischenstand & Roadmap
|
||
|
||
> **Stand:** 3. April 2026 (Session 2)
|
||
> **Rolle:** Regelwerks-Wächter, Validierungs-Spezialist, Compliance (ÖTO, FEI)
|
||
|
||
---
|
||
|
||
## ✅ Erledigte Sprints
|
||
|
||
### Sprint A — Abgeschlossen
|
||
|
||
- [x] **A-1** | Validierungs-Spezifikation erstellen (v0.3 DRAFT)
|
||
- [x] Paragraphen-Pins ergänzt (Springen § 231, Dressur § 103, CCN §§ 3xx)
|
||
- [x] Einheitliche Label-Konventionen: `ohne Lizenz`, `mit Lizenz`, `R2 und höher`; Keys: `LZF_ONLY`, `R1_PLUS`,
|
||
`R1_ONLY`, `R2_PLUS`
|
||
- [x] Optionale Jugend-/Jahrgangsteilungen als Regulation-as-Data modelliert (keine systemweite Pflicht)
|
||
- [x] Abteilungs-Trennungs-Schwellenwerte dokumentiert →
|
||
`docs/03_Domain/02_Reference/OETO_Regelwerk/Abteilungs-Trennungs-Schwellenwerte.md`
|
||
- [x] Warn-Logik-Spezifikation →
|
||
`docs/03_Domain/02_Reference/OETO_Regelwerk/Warn-Logik-Spezifikation-competition-context.md`
|
||
- [x] CVN (Voltigieren): § 39 Abs. 2 als Fallback; eigene OEPS-CVN-Regeln gelten
|
||
- [x] CAN (Fahren): § 39 Abs. 2 als Fallback; § 850 Abs. 9 für F1+ Fahrertreffen
|
||
- [x] `OetoValidators` (KMP) implementiert; `OetoValidatorsTest.kt` grün
|
||
|
||
### Sprint B (Teilweise) — Abgeschlossen
|
||
|
||
- [x] **B-1** | Validierungs-Implementierung Frontend begleiten
|
||
- [x] Spezifikation v0.3 DRAFT an 🎨 Frontend übergeben
|
||
- [x] Implementierung geprüft: Live-Validierung entspricht Regelwerks-Anforderungen
|
||
- [x] Fehlermeldungs-Texte auf Korrektheit und Verständlichkeit geprüft
|
||
- [x] Session-Log → `docs/99_Journal/2026-04-03_Rulebook_B1_Validierung_Frontend.md`
|
||
|
||
---
|
||
|
||
## 🟡 Sprint B — Teilweise offen
|
||
|
||
- [ ] **B-2** | Validierungs-Implementierung Backend begleiten
|
||
- [x] FEI Legacy→Numeric Resolver implementiert (`/api/fei/resolve/{id}`) — erste Version in Masterdata-SCS
|
||
- [x] Lizenz-/Altersmatrix als Regulation-as-Data an 👷 Backend übergeben
|
||
- [x] `LizenzKlasseE`-Enum: `R4` ergänzt, `RD4`-Fehler in V008 korrigiert
|
||
- [x] Flyway V009: `license_height_matrix` + `horse_min_age_matrix` angelegt und befüllt
|
||
- [x] B-2-Übergabe-Spezifikation →
|
||
`docs/03_Domain/02_Reference/OETO_Regelwerk/B2-Backend-Uebergabe-Regulation-as-Data.md`
|
||
- [x] `Validierungsregeln.md`: `LZF` → `LIZENZFREI` korrigiert, Version 0.4, Verweis auf B2-Spec ergänzt
|
||
- [ ] Serverseitige Validierung prüfen: Werden alle Regeln korrekt durchgesetzt?
|
||
- [ ] Backend-Endpunkte `/api/regulation/*` implementieren (👷 Backend)
|
||
- [ ] Abweichungen Backend ↔ Frontend-Validierung dokumentieren und klären
|
||
- [ ] Lizenz×Bewerb-Tabellen (Springen + Dressur) von DRAFT auf STABLE anheben (nach Fachfreigabe)
|
||
|
||
---
|
||
|
||
## 🟠 Sprint C — Priorität 2 (nächste Woche)
|
||
|
||
- [ ] **C-1** | `AltersklasseRechner` implementieren und testen
|
||
- [ ] Altersklassen-Berechnung für Pferd (Jahrgang → Kategorie) umsetzen
|
||
- [ ] Grenzfälle: Pferd im Geburtsjahr, Jahreswechsel, Stichtag-Regeln
|
||
- [ ] Unit-Tests mit `OetoValidatorsTest.kt`-Grenzfällen als Basis
|
||
|
||
- [ ] **C-2** | Regelwerk-Enums vervollständigen
|
||
- [ ] Alle Lizenzklassen-Übergänge formal prüfen (R1→R2→R3→R4, LZF-Sonderfall)
|
||
- [ ] FEI-Kategorien-Mapping auf ÖTO-Lizenzklassen vervollständigen
|
||
- [ ] Enums in KMP-Modul `core:domain` als SSoT festlegen
|
||
|
||
- [ ] **C-3** | Compliance-Dokumentation: Series-Context vorbereiten
|
||
- [ ] Regelwerk-Grundlagen für Cups/Serien/Meisterschaften recherchieren
|
||
- [ ] Anforderungen an konfigurierbare Reglements (Phase 2+) dokumentieren
|
||
|
||
---
|
||
|
||
## 📌 Abhängigkeiten
|
||
|
||
| Meine Aufgabe | Blockiert wen |
|
||
|-------------------------|---------------------------------------------------|
|
||
| B-2 Spec an Backend | 👷 Backend: A-3 Sonderregeln, B-3 ÖTO-Validierung |
|
||
| B-1 ✅ Spec an Frontend | 🎨 Frontend: B-3 Live-Validierung |
|
||
| C-1 AltersklasseRechner | 🧐 QA: C-3 Validierungs-Tests |
|
||
|
||
---
|
||
|
||
## 💡 Empfehlungen (nach Priorität)
|
||
|
||
1. **B-2 Backend-Übergabe** — Lizenz-/Altersmatrix als Regulation-as-Data an Backend übergeben; Backend wartet auf diese
|
||
Spezifikation für A-3 und B-3.
|
||
2. **Lizenz×Bewerb DRAFT → STABLE** — Fachfreigabe einholen, damit Backend und Frontend auf stabiler Basis arbeiten
|
||
können.
|
||
3. **C-1 AltersklasseRechner** — Grenzfälle (Jahrgang, Stichtag) sind komplex und müssen vor Backend-Implementierung
|
||
spezifiziert sein.
|