Files
meldestelle/docs/99_Journal/2026-03-24_Session_Log_Warn-Logik-Spezifikation.md
T
stefan 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

83 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 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)*