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>
This commit is contained in:
@@ -88,3 +88,353 @@ enum class BearbeitungsStatusE {
|
||||
ABGEBROCHEN,
|
||||
FEHLER
|
||||
}
|
||||
|
||||
/**
|
||||
* Sportliche Sparten gemäß ÖTO § 3 Abs. 2 und FEI-Kurzbezeichnungen.
|
||||
* Nationale Turniere verwenden das Präfix "N" (z.B. CDN = Dressur national).
|
||||
*/
|
||||
@Serializable
|
||||
enum class SparteE {
|
||||
/** Dressur national (CDN) */
|
||||
DRESSUR,
|
||||
|
||||
/** Springen national (CSN) */
|
||||
SPRINGEN,
|
||||
|
||||
/** Vielseitigkeit national (CCN) */
|
||||
VIELSEITIGKEIT,
|
||||
|
||||
/** Fahren national (CAN) */
|
||||
FAHREN,
|
||||
|
||||
/** Voltigieren national (CVN) */
|
||||
VOLTIGIEREN,
|
||||
|
||||
/** Distanzreiten national (CEN) */
|
||||
DISTANZREITEN,
|
||||
|
||||
/** Westernreiten national (CWN) */
|
||||
WESTERNREITEN,
|
||||
|
||||
/** Reining national (CWRN) */
|
||||
REINING
|
||||
}
|
||||
|
||||
/**
|
||||
* Turnierkategorie gemäß ÖTO § 3 Abs. 4.
|
||||
* Bestimmt das Niveau und die Teilnahmeberechtigung.
|
||||
*/
|
||||
@Serializable
|
||||
enum class TurnierkategorieE {
|
||||
C_NEU,
|
||||
C,
|
||||
B_STERN,
|
||||
B,
|
||||
A,
|
||||
A_STERN
|
||||
}
|
||||
|
||||
/**
|
||||
* Typ einer pferdesportlichen Veranstaltung gemäß ÖTO § 2 Abs. 1.
|
||||
*/
|
||||
@Serializable
|
||||
enum class VeranstaltungsTypE {
|
||||
/** Turnier mit OEPS-Genehmigung und Turniernummer (§ 2 Abs. 2) */
|
||||
TURNIER,
|
||||
|
||||
/** Reitertreffen für Vereinsmitglieder und geladene Gäste (§ 2 Abs. 3) */
|
||||
REITERTREFFEN,
|
||||
|
||||
/** Sonderprüfung zur Erlangung von Abzeichen/Lizenzen (§ 2 Abs. 4) */
|
||||
SONDERPRUEFUNG,
|
||||
|
||||
/** Pferde-Sport & Spiel (§ 2 Abs. 5) */
|
||||
PS_UND_S,
|
||||
|
||||
/** Turnierartige Veranstaltung mit Sondergenehmigung (§ 2 Abs. 6) */
|
||||
TURNIERARTIG
|
||||
}
|
||||
|
||||
/**
|
||||
* Lizenzklasse eines Reiters gemäß ÖTO Teilnahmeberechtigung.
|
||||
*/
|
||||
@Serializable
|
||||
enum class LizenzKlasseE {
|
||||
/** Lizenzfrei – keine Lizenz erforderlich */
|
||||
LIZENZFREI,
|
||||
|
||||
/** Reiter-Lizenz Klasse 1 */
|
||||
R1,
|
||||
|
||||
/** Reiter-Lizenz Klasse 2 */
|
||||
R2,
|
||||
|
||||
/** Reiter-Lizenz Klasse 3 */
|
||||
R3,
|
||||
|
||||
/** Dressur-Reiter Klasse 1 */
|
||||
RD1,
|
||||
|
||||
/** Dressur-Reiter Klasse 2 */
|
||||
RD2,
|
||||
|
||||
/** Dressur-Reiter Klasse 3 */
|
||||
RD3,
|
||||
|
||||
/** Jugend/Nachwuchs */
|
||||
JN,
|
||||
|
||||
/** Junioren */
|
||||
JG,
|
||||
|
||||
/** Young Rider */
|
||||
YR
|
||||
}
|
||||
|
||||
/**
|
||||
* Status einer Nennung im registration-context.
|
||||
*/
|
||||
@Serializable
|
||||
enum class NennungsStatusE {
|
||||
/** Nennung eingegangen, noch nicht bestätigt */
|
||||
EINGEGANGEN,
|
||||
|
||||
/** Nennung bestätigt und aktiv */
|
||||
BESTAETIGT,
|
||||
|
||||
/** Nennung nach Nennschluss (Nachnennung) */
|
||||
NACHNENNUNG,
|
||||
|
||||
/** Nennung wurde transferiert (Reiter/Pferd getauscht) */
|
||||
TRANSFERIERT,
|
||||
|
||||
/** Nennung zurückgezogen */
|
||||
ZURUECKGEZOGEN,
|
||||
|
||||
/** Reiter/Pferd gestartet */
|
||||
GESTARTET,
|
||||
|
||||
/** Nicht angetreten */
|
||||
NICHT_ANGETRETEN
|
||||
}
|
||||
|
||||
/**
|
||||
* Startwunsch eines Reiters bezüglich seiner Position in der Startliste.
|
||||
*/
|
||||
@Serializable
|
||||
enum class StartwunschE {
|
||||
VORNE,
|
||||
HINTEN,
|
||||
KEIN_WUNSCH
|
||||
}
|
||||
|
||||
/**
|
||||
* Rolle eines Funktionärs bei einer Veranstaltung gemäß ÖTO Funktionärs-Qualifikation.
|
||||
* Bestimmt, welche Aufgaben eine Person bei einem Turnier übernehmen darf.
|
||||
*/
|
||||
@Serializable
|
||||
enum class FunktionaerRolleE {
|
||||
/** Turnierbeauftragter (TBA) – hat bei Regelkonflikten das letzte Wort (ÖTO § 24/§ 25) */
|
||||
TBA,
|
||||
|
||||
/** Richter / Kampfrichter */
|
||||
RICHTER,
|
||||
|
||||
/** Parcoursbauer (Springen) */
|
||||
PARCOURSBAUER,
|
||||
|
||||
/** Streckendesigner (Vielseitigkeit, Distanzreiten) */
|
||||
STRECKENDESIGNER,
|
||||
|
||||
/** Tierarzt */
|
||||
TIERARZT,
|
||||
|
||||
/** Steward */
|
||||
STEWARD,
|
||||
|
||||
/** Starter */
|
||||
STARTER,
|
||||
|
||||
/** Zeitnehmer */
|
||||
ZEITNEHMER,
|
||||
|
||||
/** Protokollführer */
|
||||
PROTOKOLLFUEHRER,
|
||||
|
||||
/** Sonstige Funktion */
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
/**
|
||||
* Qualifikationsstufe eines Richters gemäß ÖTO/ZNS-Klassifikation (RICHT01.dat).
|
||||
* Bestimmt, für welche Turnierkategorien und Sparten ein Richter zugelassen ist.
|
||||
*/
|
||||
@Serializable
|
||||
enum class RichterQualifikationE {
|
||||
/** Grundausbildung / Anfänger */
|
||||
GA,
|
||||
|
||||
/** Gruppe 3 (niedrigste offizielle Stufe) */
|
||||
G3,
|
||||
|
||||
/** Gruppe 2 */
|
||||
G2,
|
||||
|
||||
/** Gruppe 1 (höchste nationale Stufe) */
|
||||
G1,
|
||||
|
||||
/** Internationaler Richter (FEI-Lizenz) */
|
||||
INTERNATIONAL,
|
||||
|
||||
/** Sonstige / unbekannte Qualifikation */
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
/**
|
||||
* Typ einer Prüfung / eines Bewerbs gemäß ÖTO-Klassifikation.
|
||||
* Relevant für die Abteilungs-Schwellenwerte (§ 39 A-Teil).
|
||||
*/
|
||||
@Serializable
|
||||
enum class PruefungsTypE {
|
||||
/** Stilspringprüfung (Schwellenwert: > 30 Starter → Pflicht-Teilung) */
|
||||
STIL_SPRINGEN,
|
||||
|
||||
/** Springpferdeprüfung (Schwellenwert: > 30 Starter → Pflicht-Teilung) */
|
||||
SPRINGPFERDE,
|
||||
|
||||
/** Dressurpferdeprüfung (Schwellenwert: > 30 Starter → Kann-Teilung) */
|
||||
DRESSURPFERDE,
|
||||
|
||||
/** Vielseitigkeitsprüfung (Schwellenwert: > 40 Starter → Pflicht-Teilung) */
|
||||
VIELSEITIGKEIT,
|
||||
|
||||
/** Übrige Springprüfung (Standard, Zweiphasen, Punkte, Risiko; Schwellenwert: > 80 Starter) */
|
||||
SPRINGEN_UEBRIG,
|
||||
|
||||
/** Dressurprüfung (Schwellenwert: > 30 Starter → Kann-Teilung) */
|
||||
DRESSUR,
|
||||
|
||||
/** Caprilli-Prüfung (strukturelle Pflicht-Teilung nach Lizenz, § 803) */
|
||||
CAPRILLI,
|
||||
|
||||
/** Fahrprüfung / Fahrertreffen (CAN, § 850 ff.) */
|
||||
FAHREN,
|
||||
|
||||
/** Voltigierprüfung (CVN, § 400 ff.) */
|
||||
VOLTIGIEREN,
|
||||
|
||||
/** Sonstiger Prüfungstyp */
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
/**
|
||||
* Typ der Abteilungs-Teilung gemäß ÖTO § 39.
|
||||
* Bestimmt, nach welchem Kriterium ein Bewerb in Abteilungen aufgeteilt wird.
|
||||
*/
|
||||
@Serializable
|
||||
enum class AbteilungsTeilungsTypE {
|
||||
/** Keine Teilung (Bewerb läuft als eine Einheit) */
|
||||
KEINE,
|
||||
|
||||
/** Teilung nach Lizenzstufe (Standard-Fallback gemäß § 39) */
|
||||
NACH_LIZENZ,
|
||||
|
||||
/** Teilung nach Startplatznummer / Plätzen */
|
||||
NACH_PLATZ,
|
||||
|
||||
/** Teilung nach Pferdealter (z.B. Springpferdeprüfung 95–110 cm) */
|
||||
NACH_PFERDEALTER,
|
||||
|
||||
/** Strukturelle Pflicht-Teilung (z.B. CSN-C-NEU, Caprilli) */
|
||||
STRUKTURELL,
|
||||
|
||||
/** Teilung nach Ausschreibungs-Kriterium (Altersklasse, Geschlecht etc.) */
|
||||
NACH_AUSSCHREIBUNG
|
||||
}
|
||||
|
||||
/**
|
||||
* Status einer Startliste gemäß Turnier-Workflow.
|
||||
*/
|
||||
@Serializable
|
||||
enum class StartlistenStatusE {
|
||||
/** Startliste noch nicht erstellt */
|
||||
NICHT_ERSTELLT,
|
||||
|
||||
/** Startliste in Bearbeitung (Entwurf) */
|
||||
ENTWURF,
|
||||
|
||||
/** Startliste veröffentlicht (für Reiter sichtbar) */
|
||||
VEROEFFENTLICHT,
|
||||
|
||||
/** Startliste gesperrt (keine Änderungen mehr möglich, Turnier läuft) */
|
||||
GESPERRT,
|
||||
|
||||
/** Startliste archiviert (Turnier abgeschlossen) */
|
||||
ARCHIVIERT
|
||||
}
|
||||
|
||||
/**
|
||||
* Status einer Veranstaltung im Planungs- und Durchführungs-Workflow.
|
||||
*/
|
||||
@Serializable
|
||||
enum class VeranstaltungsStatusE {
|
||||
/** Veranstaltung in Planung (noch nicht genehmigt) */
|
||||
IN_PLANUNG,
|
||||
|
||||
/** Ausschreibung eingereicht, wartet auf Genehmigung */
|
||||
EINGEREICHT,
|
||||
|
||||
/** Veranstaltung genehmigt, Nennungen möglich */
|
||||
GENEHMIGT,
|
||||
|
||||
/** Nennschluss abgelaufen, Startlisten in Erstellung */
|
||||
NENNSCHLUSS_ABGELAUFEN,
|
||||
|
||||
/** Veranstaltung läuft aktiv */
|
||||
AKTIV,
|
||||
|
||||
/** Veranstaltung abgeschlossen */
|
||||
ABGESCHLOSSEN,
|
||||
|
||||
/** Veranstaltung abgesagt */
|
||||
ABGESAGT
|
||||
}
|
||||
|
||||
/**
|
||||
* Status eines Turniers innerhalb einer Veranstaltung.
|
||||
*/
|
||||
@Serializable
|
||||
enum class TurnierStatusE {
|
||||
/** Turnier geplant, noch nicht gestartet */
|
||||
GEPLANT,
|
||||
|
||||
/** Turnier läuft aktiv */
|
||||
AKTIV,
|
||||
|
||||
/** Turnier abgeschlossen, Ergebnisse vorhanden */
|
||||
ABGESCHLOSSEN,
|
||||
|
||||
/** Turnier abgesagt */
|
||||
ABGESAGT
|
||||
}
|
||||
|
||||
/**
|
||||
* Status einer Ausschreibung gemäß ÖTO-Genehmigungsworkflow.
|
||||
*/
|
||||
@Serializable
|
||||
enum class AusschreibungsStatusE {
|
||||
/** Ausschreibung im Entwurf */
|
||||
ENTWURF,
|
||||
|
||||
/** Ausschreibung eingereicht beim Verband */
|
||||
EINGEREICHT,
|
||||
|
||||
/** Ausschreibung genehmigt */
|
||||
GENEHMIGT,
|
||||
|
||||
/** Ausschreibung abgelehnt (Überarbeitung erforderlich) */
|
||||
ABGELEHNT,
|
||||
|
||||
/** Ausschreibung veröffentlicht (für Reiter sichtbar) */
|
||||
VEROEFFENTLICHT
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user