--- type: Session Log date: 2026-03-24 agent: ÖTO/FEI Rulebook Expert status: ABGESCHLOSSEN --- # Session Log: Warn-Logik-Spezifikation `competition-context` 🧹 **[Curator]** | 24. März 2026 --- ## Aufgabe Spezifikation der `competition-context` Warn-Logik für Abteilungs-Schwellenwerte (MASTER_ROADMAP Phase 4, ÖTO/FEI Rulebook Expert). ## Ergebnis ### Neues Dokument erstellt **`docs/03_Domain/02_Reference/OETO_Regelwerk/Warn-Logik-Spezifikation-competition-context.md`** Verbindliche Implementierungs-Spezifikation für die Warn-Logik im `competition-context`. ### Inhalt der Spezifikation **6 Warn-Codes definiert:** | Warn-Code | Typ | |--------------------------------------------|----------------------------------------------| | `WARN_PFLICHT_TEILUNG_UEBERSCHRITTEN` | Starter-Schwellenwert überschritten | | `WARN_KANN_TEILUNG_EMPFOHLEN` | Kann-Teilung empfohlen (Dressur) | | `WARN_ABTEILUNG_ZU_GROSS` | Abteilung nach Teilung > 80 Starter | | `WARN_ABTEILUNG_MAX_UEBERSCHRITTEN` | Konfiguriertes Starter-Limit überschritten | | `WARN_STRUKTURELLE_TEILUNG_FEHLT` | Strukturelle Pflicht-Teilung nicht vorhanden | | `WARN_STRUKTURELLE_TEILUNG_UNVOLLSTAENDIG` | Strukturelle Teilung unvollständig | **3 Warn-Typen mit vollständigem Entscheidungsbaum:** 1. Starter-Schwellenwerte (`DomBewerb.validateAbteilungsSchwellenwerte`) 2. Abteilungs-Größe nach Teilung (`DomAbteilung.validateStarterLimit`) 3. Strukturelle Pflicht-Teilungen (`DomBewerb.validateStrukturellesTeilung`) – NEU **Strukturelle Prüfungen abgedeckt:** - CSN Stil-/Idealzeitspringen ≤ 95 cm: ohne Lizenz vs. R1 (§ 200 Abs. 5.3) - Springpferdeprüfung 95–110 cm / Dressurpferdeprüfung Kl. A: Pferdealter 4 vs. 5–6 (§ 200 Abs. 6 / § 100 Abs. 5) - CSN-C-NEU ≤ 95 cm: ohne Lizenz vs. mit Lizenz (§ 231) - CSN-C-NEU ≥ 100 cm: R1 vs. R2+ (§ 231) - CCN-C-NEU Gelände ≤ 80 cm: 3 Abteilungen (§ 300) - CCN-C-NEU Gelände ≥ 90 cm: 2 Abteilungen (§ 300) - CCN Welcome / 80 cm: R2+ eigene Abteilung (§ 301 Abs. 1.4) - Caprilli: lizenzfrei vs. RD1+ (§ 803 Abs. 2) - Fahren/Fahrertreffen: F1+ eigene Abteilung (§ 850 Abs. 9) **Implementierungs-Vorgaben:** - Typisiertes Value Object `AbteilungsWarnung` (statt roher Strings) - `AbteilungsWarnungCodeE` Enum - `AbteilungsWarnungOverrideEvent` mit Pflicht-Begründungsfeld - `AbteilungsSchwellenwertConfig` (konfigurierbare Schwellenwerte, nicht hard-coded) - Aufruf-Zeitpunkte (Trigger) definiert ### Aktualisierte Dokumente - `docs/01_Architecture/MASTER_ROADMAP.md` – Task als `[x]` markiert, Referenz ergänzt, Referenz-Tabelle aktualisiert ## Offene Fragen (weiterhin offen) | # | Frage | |---|--------------------------------------------------------------------| | 1 | Gelten § 39-Schwellenwerte auch für Reitertreffen? | | 2 | Pflicht-Teilung bei kombinierten Turnieren (§ 4)? | | 3 | Voltigieren (CVN): Eigene Abteilungs-Trennungsregeln? | | 4 | Fahren (CAN): Eigene Starter-Schwellenwerte? | | 5 | Abbildung „Geldpreise > Doppeltes Gebührenordnung" im Datenmodell? | --- *Session: 2026-03-24 | Agent: ÖTO/FEI Rulebook Expert + Curator (Junie)*