meldestelle/docs/99_Journal/2026-03-24_Session_Log_Warn-Logik-Spezifikation.md
Stefan Mogeritsch 354bd49de6 feat: integrate new desktop shell and extend backend & ADRs
- Added `meldestelle-desktop` module using JVM/Compose Desktop, registered in `settings.gradle.kts`.
- Integrated new screens and desktop navigation into core: `Veranstaltungen`, `TurnierDetail`, etc.
- Expanded backend with `ExposedFunktionaerRepository` in `officials-infrastructure`.
- Completed ADRs for bounded context mapping (`ADR-0014`) and context map (`ADR-0015`).
- Updated and extended project documentation with session logs and architecture decisions.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-24 18:22:15 +01:00

3.3 KiB
Raw Blame History

type date agent status
Session Log 2026-03-24 ÖTO/FEI Rulebook Expert 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 95110 cm / Dressurpferdeprüfung Kl. A: Pferdealter 4 vs. 56 (§ 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)