45 lines
2.4 KiB
Kotlin
45 lines
2.4 KiB
Kotlin
package at.mocode.model
|
|
|
|
import at.mocode.enums.SparteE
|
|
import at.mocode.serializers.KotlinInstantSerializer
|
|
import at.mocode.serializers.UuidSerializer
|
|
import com.benasher44.uuid.Uuid
|
|
import com.benasher44.uuid.uuid4
|
|
import kotlinx.datetime.Clock
|
|
import kotlinx.datetime.Instant
|
|
import kotlinx.serialization.Serializable
|
|
|
|
@Serializable
|
|
data class Pruefungsaufgabe(
|
|
@Serializable(with = UuidSerializer::class)
|
|
val id: Uuid = uuid4(),
|
|
var kuerzel: String, // Eindeutiges Kürzel, z.B. "A1", "LF3", "FEI GP PSG"
|
|
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 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"
|
|
var pdfUrlExtern: String?, // Link zur offiziellen PDF-Datei (OEPS, FEI)
|
|
var pdfDateinameIntern: String?, // Falls wir die PDFs auch bei uns speichern/hochladen (Dateiname)
|
|
var anmerkungen: String?, // z.B. "Diese Aufgabe darf nur mit Leitfaden gerichtet werden"
|
|
var dauerGeschaetztMinuten: Double?, // z.B. 3.5
|
|
var anzahlMaxPunkteProRichter: Double?, // Für Dressur, falls standardisiert
|
|
var istAktiv: Boolean = true, // Kann die Aufgabe aktuell ausgewählt werden?
|
|
@Serializable(with = KotlinInstantSerializer::class)
|
|
val createdAt: Instant = Clock.System.now(),
|
|
@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 // ...
|