From 7f764915c5d847c77dd035285c13ca8b0b055d61 Mon Sep 17 00:00:00 2001 From: Stefan Mogeritsch Date: Mon, 30 Mar 2026 12:11:46 +0200 Subject: [PATCH] =?UTF-8?q?feat(docs):=20integrate=20=C3=96TO=20masterdata?= =?UTF-8?q?=20documentation=20and=20update=20service=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- backend/services/masterdata/README.md | 7 +- .../masterdata/docs/OETO_STAMMDATEN.md | 88 +++++++++++++++++++ ...ssion_Log_Masterdata_OETO_Consolidation.md | 54 ++++++++++++ 3 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 backend/services/masterdata/docs/OETO_STAMMDATEN.md create mode 100644 docs/99_Journal/2026-03-30_Session_Log_Masterdata_OETO_Consolidation.md diff --git a/backend/services/masterdata/README.md b/backend/services/masterdata/README.md index 7b3d34fb..2476c6b9 100644 --- a/backend/services/masterdata/README.md +++ b/backend/services/masterdata/README.md @@ -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. --- diff --git a/backend/services/masterdata/docs/OETO_STAMMDATEN.md b/backend/services/masterdata/docs/OETO_STAMMDATEN.md new file mode 100644 index 00000000..e441cc31 --- /dev/null +++ b/backend/services/masterdata/docs/OETO_STAMMDATEN.md @@ -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. diff --git a/docs/99_Journal/2026-03-30_Session_Log_Masterdata_OETO_Consolidation.md b/docs/99_Journal/2026-03-30_Session_Log_Masterdata_OETO_Consolidation.md new file mode 100644 index 00000000..65b28bc5 --- /dev/null +++ b/docs/99_Journal/2026-03-30_Session_Log_Masterdata_OETO_Consolidation.md @@ -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)