(fix) Tabellendefinitionen und Modelldefinitionen für Server-Modul

This commit is contained in:
2025-06-30 19:39:40 +02:00
parent d2b51aed2c
commit bf8ba45c01
35 changed files with 1643 additions and 26 deletions
@@ -71,3 +71,79 @@ enum class RichterPositionE { C, E, H, M, B, VORSITZ, SEITENRICHTER, SONSTIGE }
enum class GeschlechtE { M, W, D, UNBEKANNT }
@Serializable
enum class GeschlechtPferdE { HENGST, STUTE, WALLACH, UNBEKANNT }
// Pruefungsaufgabe related enums
@Serializable
enum class PruefungsaufgabeNationE { NATIONAL, FEI, SONSTIGE }
@Serializable
enum class PruefungsaufgabeRichtverfahrenModusE { GM, GT, NICHT_SPEZIFIZIERT }
@Serializable
enum class PruefungsaufgabeViereckE { VIERECK_20X40, VIERECK_20X60, ANDERE, UNBEKANNT }
// Horse related enums
@Serializable
enum class PferdeFarbeE {
BRAUN, FUCHS, RAPPE, SCHIMMEL, SCHECKE, FALBE, ISABELL, CREMELLO, PERLINO,
SMOKY_CREAM, CHAMPAGNE, SILVER, DUN, BUCKSKIN, PALOMINO, GRULLA, RED_DUN,
BAY_DUN, ROAN, GREY, CHESTNUT, BLACK, BAY, SORREL, PINTO, PAINT, APPALOOSA,
SONSTIGE, UNBEKANNT
}
@Serializable
enum class PferdeRasseKategorieE {
WARMBLUT, VOLLBLUT, KALTBLUT, PONY, KLEINPFERD, HAFLINGER, NORIKER,
ARABER, FRIESE, ISLAENDER, QUARTER_HORSE, PAINT_HORSE, APPALOOSA,
SHETLAND_PONY, WELSH_PONY, CONNEMARA, NEW_FOREST, DARTMOOR,
SONSTIGE, UNBEKANNT
}
// Competition and licensing enums
@Serializable
enum class LeistungsklasseE {
E, A, L, M, S, INTER_I, INTER_II, GRAND_PRIX, KINDER, JUGEND,
JUNGE_REITER, U25, AMATEUR, PROFI, SONSTIGE
}
@Serializable
enum class QualifikationsStatusE {
GUELTIG, ABGELAUFEN, SUSPENDIERT, WIDERRUFEN, IN_BEARBEITUNG, BEANTRAGT
}
@Serializable
enum class TurnierKategorieE {
CDN_A, CDN_B, CDN_C, CDI_1STERN, CDI_2STERN, CDI_3STERN, CDI_4STERN, CDI_5STERN,
CSN_A, CSN_B, CSN_C, CSI_1STERN, CSI_2STERN, CSI_3STERN, CSI_4STERN, CSI_5STERN,
CCI_1STERN, CCI_2STERN, CCI_3STERN, CCI_4STERN, CCI_5STERN,
CAI, REGIONAL, LANDESMEISTERSCHAFT, STAATSMEISTERSCHAFT,
OESTERREICHISCHE_MEISTERSCHAFT, EUROPAMEISTERSCHAFT, WELTMEISTERSCHAFT,
OLYMPISCHE_SPIELE, SONSTIGE
}
@Serializable
enum class ErgebnisStatusE {
NICHT_GESTARTET, GESTARTET, BEENDET, DISQUALIFIZIERT, ZURUECKGEZOGEN,
AUSGESCHIEDEN, NICHT_KLASSIFIZIERT, ELIMINIERT
}
@Serializable
enum class ZahlungsStatusE {
OFFEN, BEZAHLT, TEILWEISE_BEZAHLT, UEBERFAELLIG, STORNIERT, RUECKERSTATTET
}
// Administrative enums
@Serializable
enum class DokumentTypE {
AUSSCHREIBUNG, STARTLISTE, ERGEBNISLISTE, PROTOKOLL, PARCOURSSKIZZE,
ZEITPLAN, NENNUNGSFORMULAR, RECHNUNG, LIZENZ, PASS, GESUNDHEITSZEUGNIS,
VERSICHERUNG, HAFTUNGSAUSSCHLUSS, SONSTIGE
}
@Serializable
enum class KommunikationsTypE {
EMAIL, SMS, BRIEF, TELEFON, FAX, ONLINE_PORTAL, PUSH_NOTIFICATION, SONSTIGE
}
@Serializable
enum class PrioritaetE { NIEDRIG, NORMAL, HOCH, KRITISCH }
@@ -1,6 +1,9 @@
package at.mocode.model
import at.mocode.enums.SparteE
import at.mocode.enums.PruefungsaufgabeNationE
import at.mocode.enums.PruefungsaufgabeRichtverfahrenModusE
import at.mocode.enums.PruefungsaufgabeViereckE
import at.mocode.serializers.KotlinInstantSerializer
import at.mocode.serializers.UuidSerializer
import com.benasher44.uuid.Uuid
@@ -17,9 +20,9 @@ data class Pruefungsaufgabe(
var nameLang: String, // Vollständiger Name, z.B. "Dressuraufgabe A1 (GM, 20x40m)"
var kategorieText: String?, // Übergeordnete Kategorie, z.B. "Dressuraufgaben Klasse A", "FEI Grand Prix Serie"
var sparteE: SparteE, // Primär DRESSUR, aber auch für Vielseitigkeit etc.
var nation: PruefungsaufgabeNationEnum = PruefungsaufgabeNationEnum.NATIONAL,
var richtverfahrenModusDefault: PruefungsaufgabeRichtverfahrenModusEnum?, // GM, GT - als Default für diese Aufgabe
var viereckGroesseDefault: PruefungsaufgabeViereckEnum?, // VIERECK_20x40, VIERECK_20x60 - als Default
var nation: PruefungsaufgabeNationE = PruefungsaufgabeNationE.NATIONAL,
var richtverfahrenModusDefault: PruefungsaufgabeRichtverfahrenModusE?, // GM, GT - als Default für diese Aufgabe
var viereckGroesseDefault: PruefungsaufgabeViereckE?, // VIERECK_20x40, VIERECK_20x60 - als Default
var schwierigkeitsgradText: String?, // z.B. "A", "L", "M", "S", "Grand Prix"
var aufgabenNummerInSammlung: String?, // z.B. die "1" bei "Aufgabe A1" oder spezifische FEI Nummer
var jahrgangVersion: String?, // z.B. "2011", "FEI 2023"
@@ -34,11 +37,3 @@ data class Pruefungsaufgabe(
@Serializable(with = KotlinInstantSerializer::class)
var updatedAt: Instant = Clock.System.now()
)
enum class PruefungsaufgabeNationEnum { NATIONAL, FEI, SONSTIGE }
enum class PruefungsaufgabeRichtverfahrenModusEnum { GM, GT, NICHT_SPEZIFIZIERT } // Gemeinsam, Getrennt
enum class PruefungsaufgabeViereckEnum { VIERECK_20x40, VIERECK_20x60, ANDERE, UNBEKANNT }
// Shared Serializers (Beispiel, falls noch nicht vorhanden)
// object UuidSerializer // ...
// object KotlinInstantSerializer // ...
@@ -1,3 +1,5 @@
package at.mocode.model.domaene
import at.mocode.serializers.KotlinInstantSerializer
import at.mocode.serializers.KotlinLocalDateSerializer
import at.mocode.serializers.UuidSerializer
@@ -1,3 +1,5 @@
package at.mocode.model.domaene
import at.mocode.enums.DatenQuelleE
import at.mocode.enums.PferdeGeschlechtE // NEUES ENUM
import at.mocode.serializers.KotlinInstantSerializer