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