Add domain models: Austragungsplatz, TurnierArtikel, and RichterEinsatz.
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
|
||||
|
||||
package at.mocode.entries.domain.model
|
||||
|
||||
import at.mocode.core.domain.serialization.UuidSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
/**
|
||||
* Value Object für den Einsatz eines Richters (Funktionärs) in einem Bewerb.
|
||||
*
|
||||
* Beschreibt, welcher Funktionär in welcher Funktion/Position bei einem Bewerb eingesetzt wird
|
||||
* (z.B. Richter C, Aufsicht, Parcoursbauer).
|
||||
*
|
||||
* @property funktionaerId Referenz auf den Funktionär (UUID aus masterdata-context).
|
||||
* @property position Positions-Bezeichnung gemäß ÖTO (z.B. "C", "M", "B", "Aufsicht").
|
||||
*/
|
||||
@Serializable
|
||||
data class RichterEinsatz(
|
||||
@Serializable(with = UuidSerializer::class)
|
||||
val funktionaerId: Uuid,
|
||||
val position: String
|
||||
)
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
|
||||
|
||||
package at.mocode.events.domain.model
|
||||
|
||||
import at.mocode.core.domain.model.SparteE
|
||||
import at.mocode.core.domain.serialization.UuidSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
/**
|
||||
* Domain-Modell für einen Austragungsplatz innerhalb einer Veranstaltung.
|
||||
*
|
||||
* Ein Austragungsplatz ist ein physischer Ort (Platz, Arena, Halle), auf dem Bewerbe
|
||||
* stattfinden. Er kann als Austragungsplatz (Wettkampf) oder Vorbereitungsplatz
|
||||
* (Einreiten) klassifiziert sein.
|
||||
*
|
||||
* @property id Eindeutige interne ID (UUID).
|
||||
* @property name Bezeichnung des Platzes (z.B. "Waldarena", "Vorbereitungsplatz Nord").
|
||||
* @property typ Klassifikation: "Austragungsplatz" oder "Vorbereitungsplatz".
|
||||
* @property sparte Optionale Sparten-Zuordnung (z.B. nur für Springen genutzt).
|
||||
*/
|
||||
@Serializable
|
||||
data class Austragungsplatz(
|
||||
@Serializable(with = UuidSerializer::class)
|
||||
val id: Uuid = Uuid.random(),
|
||||
val name: String,
|
||||
val typ: String,
|
||||
val sparte: SparteE? = null
|
||||
)
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
|
||||
|
||||
package at.mocode.events.domain.model
|
||||
|
||||
import at.mocode.core.domain.serialization.UuidSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
/**
|
||||
* Domain-Modell für einen Turnier-Artikel im Billing-Context.
|
||||
*
|
||||
* Ein TurnierArtikel repräsentiert eine abrechenbare Leistung oder ein Produkt,
|
||||
* das im Rahmen einer Veranstaltung angeboten wird (z.B. Ansage, Heu, Startgeld).
|
||||
* Preise werden in Cent gespeichert (Long), um Gleitkomma-Fehler zu vermeiden.
|
||||
*
|
||||
* @property id Eindeutige interne ID (UUID).
|
||||
* @property name Bezeichnung des Artikels (z.B. "Ansage", "Heu", "Startgeld").
|
||||
* @property preis Preis in Cent (z.B. 1500 = 15,00 €).
|
||||
* @property typ Klassifikation: "AUTOMATISCH" (systemseitig) oder "MANUELL" (manuell erfasst).
|
||||
*/
|
||||
@Serializable
|
||||
data class TurnierArtikel(
|
||||
@Serializable(with = UuidSerializer::class)
|
||||
val id: Uuid = Uuid.random(),
|
||||
val name: String,
|
||||
val preis: Long,
|
||||
val typ: String
|
||||
)
|
||||
Reference in New Issue
Block a user