feat(docs): integrate ÖTO masterdata documentation and update service README

- Added detailed ÖTO-compliant masterdata documentation (`OETO_STAMMDATEN.md`) to the `masterdata` service.
- Updated the `README.md` to reference the new documentation and provide further context.
- Consolidated age group criteria, competition classes, splitting rules, and judging methods for uniform reference.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-03-30 12:11:46 +02:00
parent 5c510208d2
commit 7f764915c5
3 changed files with 148 additions and 1 deletions
+6 -1
View File
@@ -57,7 +57,12 @@ Die APIs sind unter `/api/v1/masterdata/...` erreichbar.
## 📜 ÖTO-Konformität
Sämtliche Stammdaten (insbesondere Altersklassen und Sparten) sind strikt nach dem **ÖTO (Österreichische
Turnierordnung)** Regelwerk modelliert. Änderungen am Regelwerk müssen hier zentral eingepflegt werden, damit sie
Turnierordnung)** Regelwerk modelliert. Detaillierte Aufstellungen der verwendeten Definitionen finden sich hier:
* [ÖTO-Stammdaten Dokumentation](docs/OETO_STAMMDATEN.md) (Fachliche Logik)
* [ZNS-Schnittstellen Spezifikation](docs/ZNS_SCHNITTSTELLE.md) (Technisches Transfer-Format)
Änderungen am Regelwerk müssen hier zentral eingepflegt werden, damit sie
systemweit (z.B. in der Nennungsprüfung) wirksam werden.
---
@@ -0,0 +1,88 @@
# 📜 ÖTO-Stammdaten Definitionen (2026)
Diese Dokumentation beschreibt die fachlichen Grundlagen für die Stammdaten im `masterdata` Service, basierend auf der *
*ÖTO 2026** für die Sparten **Dressur (CDN)** und **Springen (CSN)**.
## 1. Altersklassen für Teilnehmer (§ 12 A-Teil)
Stichtag für alle Altersklassen ist der **31. Dezember des laufenden Kalenderjahres**.
| Code | Bezeichnung | Alter (von - bis) | Besonderheiten |
|:----------|:----------------------|:------------------|:-----------------------------------------------------|
| `JG` | **Jugend** | 8 15 Jahre | - |
| `JN` | **Junioren** | 16 18 Jahre | - |
| `YR` | **Junge Reiter** | 16 21 Jahre | - |
| `U25` | **U25** | 16 25 Jahre | Speziell für Dressur/Springen |
| `AK` | **Allgemeine Klasse** | ab 19 Jahre | Standard |
| `SEN` | **Senioren (Ü40)** | ab 40 Jahre | Nur wenn explizit als Senioren-Bewerb ausgeschrieben |
| `CH_D` | **Children Dressur** | 12 14 Jahre | Nur Dressur |
| `PONY_JG` | **Pony Jugend** | 8 16 Jahre | - |
| `PONY_AK` | **Pony Allg. Klasse** | ab 17 Jahre | - |
---
## 2. Klassen & Anforderungen (Höhen / Aufgaben)
### 2.1 Springen (CSN) Höhenstufen
Die Klassen definieren die maximale Hindernishöhe (§ 200 B-Teil).
| Klasse | Bezeichnung | Höhe (cm) | Zulässige Turnier-Kategorien |
|:--------|:--------------------|:----------|:-----------------------------|
| **E0** | Einsteiger | 60 95 | C-NEU, C, B |
| **A** | Leicht | 105 110 | Alle (A erst ab Kat. B/A) |
| **L** | Mittelleicht | 115 120 | Alle |
| **LM** | Leicht-Mittelschwer | 125 130 | Alle |
| **M** | Mittelschwer | 135 | B, B*, A, A* |
| **S*** | Schwer | 140 145 | B*, A, A* |
| **S**** | Schwer (GP) | 150 160 | A* |
### 2.2 Dressur (CDN) Aufgabenniveau
Dressurprüfungen werden nach offiziellen Aufgabenheften geritten (§ 100 B-Teil).
| Klasse | Niveau | Besonderheiten |
|:-------|:--------------------|:-------------------------------------------------------|
| **A** | Leicht | Grundlagen, 20x40m oder 20x60m Viereck |
| **L** | Mittelleicht | Beginnende Versammlung |
| **LM** | Leicht-Mittelschwer | Wahlweise Trense oder Kandare |
| **M** | Mittelschwer | Kandarenpflicht, Fliegende Wechsel |
| **S** | Schwer | Pirouetten, Piaffe, Passage (St. Georg bis Grand Prix) |
---
## 3. Pflicht-Teilungen (Abteilungs-Logik § 39 A-Teil)
### 3.1 Strukturelle Teilung (Unabhängig von Starterzahl)
* **Klassen A & L:** Zwingend getrennt nach **R1 (Abt. 1)** und höher (Abt. 2+).
* **Lizenzprüfung:** Getrennt nach R2/RD2 und R3/RD3.
* **Pferdeprüfungen:** Zwingend nach **Alter der Pferde** (z.B. 4-jährige vs. 5-6-jährige).
* **CSN-C-NEU:**
* Bis 95 cm: Abt. 1 (ohne Lizenz) / Abt. 2 (mit Lizenz).
* Ab 100 cm: Abt. 1 (R1) / Abt. 2 (R2 und höher).
### 3.2 Kapazitive Teilung (MUSS-Grenzen)
Eine Teilung ist verpflichtend, wenn folgende Starterzahlen überschritten werden:
* **Stil- & Springpferdeprüfungen:** > 30 Starter.
* **Standard-Springprüfungen:** > 80 Starter.
* **Dressurprüfungen:** > 30 Starter (**KANN-Bestimmung**, System gibt Warnung).
---
## 4. Richtverfahren (RV)
| Sparte | RV-Code | Kurzbeschreibung |
|:-------------|:--------|:------------------------------------------------------------|
| **Springen** | `A1` | Ohne Zeitwertung, fehlerfreie Reiter ex aequo auf Platz 1. |
| **Springen** | `A2` | Fehler und Zeit (schnellster fehlerfreier Ritt gewinnt). |
| **Springen** | `A3` | Idealzeit (nächste Zeit an der Vorgabe gewinnt). |
| **Springen** | `AM5` | Standardspringen mit einem Stechen. |
| **Dressur** | `RV_A` | Gemeinsames Richten (eine Wertnote 0-10). |
| **Dressur** | `RV_B` | Getrenntes Richten (3-5 Richter werten unabhängig, %-Satz). |
---
> 📜 **Rulebook Expert Hinweis:** Diese Werte dienen als Basis für die `Validation-Engine` und das `Nennungs-Mapping`.
> Änderungen der ÖTO durch den OEPS müssen hier zeitnah nachgepflegt werden.
@@ -0,0 +1,54 @@
---
type: Journal
status: COMPLETED
owner: Curator
last_update: 2026-03-30
---
# Session Log: Konsolidierung der ÖTO-Stammdaten Dokumentation
🧹 **[Curator]** | 30. März 2026
## Kontext
Auf Anweisung des **Rulebook Experts** wurden die fachlichen Definitionen für Stammdaten (Altersklassen, Springklassen,
Dressurniveaus, Teilungsregeln und Richtverfahren) direkt in den Kontext des `masterdata` Services verschoben. Ziel ist
es, alle technischen und fachlichen Informationen zu den Stammdaten an einem Ort zu bündeln.
## Erledigte Aufgaben
### 1. ✅ Strukturierung der Service-Dokumentation
- Erstellung des Verzeichnisses `backend/services/masterdata/docs/`.
- Anlage der Datei `OETO_STAMMDATEN.md` als fachliche Referenz für Entwickler und die Validation-Engine.
### 2. ✅ Integration der Fachdaten
- Übertragung der Altersklassen-Logik (§ 12 A-Teil).
- Dokumentation der Höhenstufen (Springen) und Aufgabenniveaus (Dressur).
- Festschreibung der Abteilungs-Teilungslogik (§ 39 A-Teil) für die spätere Implementierung in der `Validation-Engine`.
- Definition der relevanten Richtverfahren (RV).
### 3. ✅ Verknüpfung mit der Service-README
- Die `README.md` im `masterdata` Service wurde aktualisiert und verweist nun direkt auf die detaillierte
ÖTO-Fachdokumentation.
## Technische Details & Architektur
- **Ablageort:** `backend/services/masterdata/docs/OETO_STAMMDATEN.md`
- **Bezug:** ÖTO 2026 (Dressur & Springen).
- **Nutzen:** Diese Dokumentation dient als Spezifikation für das Mapping im `zns-parser` und die Regeln im
`competition-context`.
## Nächste Schritte
- Implementierung der `AltersklasseRepository` Logik basierend auf den dokumentierten Formeln.
- Vorbereitung der `Validation-Engine` zur automatischen Prüfung der Teilungsgrenzen (> 30 / > 80 Starter).
---
## Referenzen
- `backend/services/masterdata/README.md`
- `docs/03_Domain/02_Reference/OETO_Regelwerk/` (Zentrale Referenz)