meldestelle/backend/services/masterdata/docs/REITER_LIZENZEN.md
StefanMoCoAt 7bf89c58d3
Some checks are pending
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Waiting to run
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Waiting to run
Refactor license matrix and tokenizer logic: rename LicenseTable to LizenzTable, replace LicenseMatrixService with LizenzMatrixService, enhance tokenizer with normalized and fallback token handling, improve ZNS import for license extraction, and update related documentation.
2026-04-06 23:52:06 +02:00

188 lines
13 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.

# 📜 Reiter-Lizenzen & Startberechtigungen (OEPS)
Diese Dokumentation beschreibt die verschiedenen Lizenzstufen des **OEPS (Österreichischer Pferdesportverband)** und die
daraus resultierenden Startberechtigungen für die Sparten **Dressur (CDN)**, **Springen (CSN)**, **Vielseitigkeit (CCN/CCI)** und **Fahren (CAN/CAI)** gemäß ÖTO 2026.
## 1. Lizenztypen & Klassen
Lizenzen werden vom OEPS pro Kalenderjahr ausgestellt. Sie bestimmen das maximale Niveau, auf dem ein Reiter in
Prüfungen antreten darf.
| Code | Bezeichnung | Beschreibung | ZNS-Mapping |
|:--------|:-----------------|:-------------------------------------------------------|:-------------|
| **LZF** | Lizenzfrei | Nur Startkarte oder Reiterpass vorhanden. | `LIZENZFREI` |
| **R1** | Reiter-Lizenz 1 | Einstiegslizenz für Springen. | `R1` |
| **R2** | Reiter-Lizenz 2 | Fortgeschrittene (Springen bis LM/130cm). | `R2` |
| **R3** | Reiter-Lizenz 3 | Schwere Klasse (Springen bis S/145cm). | `R3` |
| **R4** | Reiter-Lizenz 4 | Höchste nationale Stufe Springen (bis 160cm). | `R4` |
| **RD1** | Dressur-Lizenz 1 | Speziallizenz nur für Dressur (Kl. A, L). | `RD1` |
| **RD2** | Dressur-Lizenz 2 | Speziallizenz nur für Dressur (Kl. LM, M). | `RD2` |
| **RD3** | Dressur-Lizenz 3 | Speziallizenz nur für Dressur (Kl. S). | `RD3` |
---
## 2. Startberechtigungen nach Sparten
> Referenz: ÖTO 2026, ATeil § 15 „Reiterlizenzen“. Eine komprimierte Matrix mit Klassen/Höhen und zulässigen Lizenzen findet sich in der ProjektReferenz: `docs/03_Domain/02_Reference/OETO_Regelwerk/OETO-2026_A-Teil-Allgemeiner-Teil_16-12-2025.md` (Kapitel „Reiterlizenzen, § 15 ÖTO“).
### 2.1 Springen (CSN)
Die Startberechtigung richtet sich nach der Hindernishöhe der jeweiligen Klasse (§ 200 B-Teil).
| Klasse | Höhe (cm) | Erforderliche Lizenz | Besonderheiten |
|:--------|:----------|:---------------------|:-------------------|
| **E0** | 60 95 | **LZF** (Startkarte) | Einsteiger-Bewerbe |
| **A** | 105 110 | **R1** oder höher | - |
| **L** | 115 120 | **R1** oder höher | - |
| **LM** | 125 130 | **R2** oder höher | - |
| **M** | 135 | **R3** oder höher | - |
| **S*** | 140 145 | **R3** oder höher | - |
| **S**** | 150 160 | **R4** | Grand Prix Niveau |
### 2.2 Dressur (CDN)
Die Startberechtigung richtet sich nach dem Aufgabenniveau (§ 100 B-Teil).
| Klasse | Niveau | Erforderliche Lizenz | Besonderheiten |
|:---------------|:--------------------|:------------------------|:-----------------------------------------|
| **lizenzfrei** | - | **LZF** (Reiterpass) | Inkl. First Ridden, Dressurreiterbewerbe |
| **A** | Leicht | **RD1** oder höher | Grundausbildung |
| **L** | Mittelleicht | **RD1** oder höher | - |
| **LM** | Leicht-Mittelschwer | **RD2** oder höher | Kandare wahlweise |
| **M** | Mittelschwer | **RD2** oder höher | Kandarenpflicht |
| **S** | Schwer | **RD3** oder höher | St. Georg bis Grand Prix |
Hinweis RD4: Das ÖTO kennt in der Tabelle Kombinationsfälle bis `RD4`. Im System ist derzeit kein `RD4`Enum modelliert; faktisch wird `RD4` wie `RD3` behandelt (Kappung auf Dressur S). Eine spätere Erweiterung um `RD4` ist vorbereitet, siehe CHANGELOG.
---
### 2.3 Vielseitigkeit (CCN/CCI)
Vielseitigkeit kombiniert Dressur, Gelände und Springen. Für die Startberechtigung gilt das Prinzip der kumulativen Mindestanforderung: Die jeweils geforderte Dressur- und Spring-Lizenz muss erfüllt sein (Details je Klasse und Ausschreibung, § 300 BTeil).
| Klasse (typ.) | Richtwert | Erforderliche Lizenzen (kumulativ) | Besonderheiten |
|:--------------|:---------------------|:-----------------------------------|:--------------|
| **E/Einsteiger** | national, Einstiegsniveau | **LZF** (Startkarte) ODER `RD1`+`R1` (wenn gefordert) | gem. Ausschreibung |
| **A** | Einsteiger/Light | `RD1` UND `R1` | — |
| **L** | Mittelleicht | `RD1` UND `R1` | — |
| **M** | Mittelschwer | `RD2` UND `R2` | — |
| **S** | Schwer | `RD3` UND `R3` | höhere Anforderungen international |
Hinweis: In der Praxis orientiert sich die Spring-Anforderung an der in der Ausschreibung angegebenen Hindernishöhe der Springprüfung; die Dressur-Anforderung am ausgeschriebenen Dressur-Niveau der Teilprüfung. Wo nationale Sonderregelungen (Ponys, Haflinger/Noriker) bestehen, gelten diese zusätzlich.
---
### 2.4 Fahren (CAN/CAI)
Für Fahren existieren im ÖTO/FEIKontext eigene Fahrlizenzen (z. B. F1F3). Im aktuellen Systemmodell sind diese noch nicht als `ReiterLizenzKlasseE` hinterlegt. Bis zur Einführung entsprechender Enums/Regeln gilt:
| Klasse (typ.) | Richtwert | Systemzustand | Teilnahmevoraussetzung (heute) |
|:--------------|:-----------------|:----------------------------------------------|:-------------------------------|
| **A/L/M/S** | national/intern. | Keine `F*`Lizenztypen im Enum vorhanden | **Startkarte** (LZF) plus Zulassung laut Ausschreibung/Verbandsvorgaben |
Geplante Erweiterung: Ergänzung der EnumWerte `F1`..`F3` und einer FahrMatrix analog Dressur/Springen (separates Ticket). Die ZNSIntegration bleibt davon unberührt, bis ZNS eigene FahrKodierungen liefert.
---
### 2.5 Übersichtstabelle gemäß § 15 (kompakt)
Zur schnellen Orientierung ist die folgende, auf die SystemEnums abgebildete Kurzfassung der §15Tabelle enthalten. „B,C“ bedeutet „Turnierkategorien B, C, CNEU zulässig“, „LP“ steht für „Lizenzprüfung erforderlich“.
| Klasse/Höhe | V 80 | 60100 | V 90 | A | 105110 | V 100 | L | 115120 | V 105 | LM | 125130 | M | 135 | V110115 | S | V120 | 140145 | 150160 |
|:-----------:|:----:|:------:|:----:|:---:|:-------:|:-----:|:---:|:-------:|:-----:|:---:|:-------:|:---:|:---:|:---------:|:---:|:----:|:-------:|:-------:|
| Sparte | V | S | V | D | S | V | D | S | V | D | S | D | S | V | D | V | S | S |
| R1 | X | X | X | B,C | B,C | X | B,C | B,C | | | | | | | | | | |
| R2 | X | X | X | X | X | X | X | X | X | X | X | LP | | | | | | |
| R3 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | X | X | |
| RD1 | | | | B,C | | | B,C | | | | | | | | | | | |
| RD2 | | | | X | | | X | | | X | | LP | | | | | | |
| RD3 | | | | X | | | X | | | X | | X | | | X | | | |
| R4 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | X | X | X |
Abbildung im System:
- Zeilen mit KombiLizenzen (z. B. `R1D2`, `RDS4`) werden als gleichzeitiger Besitz getrennter Lizenzen interpretiert (zwei Einträge in `Reiter.lizenzen`).
- `RD4` ist aktuell nicht als Enum verfügbar; bis zur Erweiterung entspricht das Verhalten `RD3`.
---
### 2.6 Kombinationsreihen (§ 15)
Die folgenden Zeilen aus der ÖTOTabelle (§ 15) bilden Kombinationsfälle ab, die sich aus gleichzeitig erfüllten
Voraussetzungen ergeben. Sie sind systemisch als Parallelbesitz mehrerer Lizenzen zu verstehen und dienen der
schnellen Orientierung. Spaltenbezeichnungen entsprechen Abschnitt 2.5.
| Klasse/Höhe | V 80 | 60100 | V 90 | A | 105110 | V 100 | L | 115120 | V 105 | LM | 125130 | M | 135 | V110115 | S | V120 | 140145 | 150160 |
|:-----------:|:----:|:------:|:----:|:---:|:-------:|:-----:|:---:|:-------:|:-----:|:---:|:-------:|:---:|:---:|:---------:|:---:|:----:|:-------:|:-------:|
| R1S2 | X | X | X | B,C | X | X | B,C | X | | | X | | | | | | | |
| R1S3 | X | X | X | B,C | X | X | B,C | X | | | X | | X | | | | X | |
| R1S4 | X | X | X | B,C | X | X | B,C | X | | | X | | X | | | | X | X |
| R2S3 | X | X | X | X | X | X | X | X | X | X | X | LP | X | | | | X | |
| R2S4 | X | X | X | X | X | X | X | X | X | X | X | LP | X | | | | X | X |
| R3S4 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | X | X | X |
Legende siehe Abschnitt 2.5 (Bedeutung von „B,C“/„LP“ sowie Spartenkürzel).
---
## 3. Spezial-Regelungen (§ 1500 ff.)
### 3.1 Haflinger & Noriker
Für Rasse-spezifische Bewerbe gelten oft abweichende (niedrigere) Lizenz-Anforderungen für höhere Klassen.
Hinweis: Abweichungen sind disziplinspezifisch zu verstehen (Dressur → `RD*`, Springen → `R*`).
* **Dressur (Haflinger):**
* Klasse L/LM: **RD1** ausreichend.
* Klasse M: **RD3** erforderlich.
* Klasse S: nationale Sonderregelungen, idR **RD3**; höhere Abweichungen gemäß Ausschreibung.
* **Springen (Haflinger):**
* 95120cm (bis Klasse M): **R1** ausreichend.
* 125135cm (Klasse S): **R2** ausreichend.
### 3.2 Pony
* In Pony-Bewerben (bis Kl. L) ist die **Startkarte Allgemein** (Voraussetzung Reiterpass) ausreichend.
* Ab Klasse LM ist eine entsprechende Lizenz erforderlich: **RD1** (Dressur) bzw. **R1** (Springen).
---
## 4. Validierungslogik & ZNS-Integration
### 4.1 Validierungslogik (Systemverhalten)
Die Eligibility wird in zwei strikt getrennten Schritten geprüft:
1) Spartenlizenz prüfen
- Für Springen sind ausschließlich `R1..R4` gültig (keine Dressur-Lizenz ausreichend).
- Für Dressur sind ausschließlich `RD1..RD3` gültig (keine Spring-Lizenz ausreichend).
- Für Vielseitigkeit müssen die Anforderungen beider Sparten erfüllt sein: Dressur-Teilprüfung (RD*) UND Spring-Teilprüfung (R*), jeweils gemäß ausgeschriebener Klasse.
- Für Fahren gibt es aktuell keine `F*`Lizenzen im System; bis zur Erweiterung wird Fahren als lizenzfrei (LZF) behandelt und organisatorisch über die Ausschreibung begrenzt.
2) Maximal erlaubte Turnierklasse ermitteln
- Innerhalb der geprüften Sparte bestimmt die höchste bezahlte Lizenz die Obergrenze der Klasse/Höhe.
- Zur internen Kappung wird ggf. ein disziplinübergreifendes Mapping verwendet (nur nach bestandener Spartenprüfung):
- `R1↔RD1`, `R2↔RD2`, `R3/R4↔RD3`.
Konsequenz: Ein Reiter mit nur `RD2` darf Dressur bis LM/M reiten, aber im Springen nur lizenzfreie Bewerbe (E0). Umgekehrt
ermöglicht eine `R2` Springen bis 130cm, aber keine Dressur-Klassen. In der Vielseitigkeit wären für eine MKlasse beide Nachweise (`RD2` UND `R2`) erforderlich.
### 4.2 ZNS-Integration (LIZENZ01.dat)
Das System mappt die Felder aus der ZNS-Datei automatisch auf die interne `LizenzKlasseE`.
* **Feld `Reiterlizenz` (Pos 137):** Enthält die primäre Lizenzangabe (z. B. `R1` oder `RD1`).
* **Feld `Lizenz-Details` (Pos 201):** Enthält die Liste aller bezahlten Lizenzen (z. B. `RD1`). Werte für Fahren (`F*`) werden aktuell ignoriert, solange keine SystemEnums existieren.
* Das System aggregiert alle Vorkommen und bestimmt je Sparte die höchste vorhandene Lizenz.
---
> 📜 **Rulebook Expert Hinweis:** Die Startberechtigung muss bei jeder Nennung gegen die aktuelle Lizenz des Reiters
> (Stichtag Nennschluss) geprüft werden. Eine Höherreihung während eines Turniers ist gemäß § 17 Abs. 6 ausgeschlossen.
---
Siehe ergänzend:
* `TURNIER_KLASSEN.md` für Klassendefinitionen und Höhen/Niveaus je Sparte.
* `GEBUEHRENORDNUNG.md` für Start-/Nenngelder und Mindest-Geldpreise.
* `ZNS_SCHNITTSTELLE.md` für Felder und Positionsangaben der LIZENZ01.dat.