From 84403287a1e96eb14dfcc1cc472c3c978e75a8c0 Mon Sep 17 00:00:00 2001 From: StefanMoCoAt Date: Wed, 8 Apr 2026 23:00:00 +0200 Subject: [PATCH] Extend `Bewerb` table and add `BewerbRichterEinsatz` table: introduce new properties, indexes, and mappings to support richer domain model and scheduling capabilities. --- .../persistence/BewerbRichterEinsatzTable.kt | 18 ++++++++ .../service/persistence/BewerbTable.kt | 42 +++++++++++++++---- 2 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbRichterEinsatzTable.kt diff --git a/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbRichterEinsatzTable.kt b/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbRichterEinsatzTable.kt new file mode 100644 index 00000000..46ad9c00 --- /dev/null +++ b/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbRichterEinsatzTable.kt @@ -0,0 +1,18 @@ +package at.mocode.entries.service.persistence + +import org.jetbrains.exposed.v1.core.Table +import org.jetbrains.exposed.v1.core.java.javaUUID + +object BewerbRichterEinsatzTable : Table("bewerb_richter_einsaetze") { + val id = javaUUID("id").autoGenerate() + val bewerbId = javaUUID("bewerb_id").references(BewerbTable.id) + val funktionaerId = javaUUID("funktionaer_id") + val position = varchar("position", 100) + + override val primaryKey = PrimaryKey(id) + + init { + index(false, bewerbId) + index(false, funktionaerId) + } +} diff --git a/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbTable.kt b/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbTable.kt index e9e0a57d..35d9360b 100644 --- a/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbTable.kt +++ b/backend/services/entries/entries-service/src/main/kotlin/at/mocode/entries/service/persistence/BewerbTable.kt @@ -2,16 +2,44 @@ package at.mocode.entries.service.persistence import org.jetbrains.exposed.v1.core.Table import org.jetbrains.exposed.v1.core.java.javaUUID +import org.jetbrains.exposed.v1.datetime.date +import org.jetbrains.exposed.v1.datetime.time import org.jetbrains.exposed.v1.datetime.timestamp object BewerbTable : Table("bewerbe") { - val id = javaUUID("id").autoGenerate() - val turnierId = javaUUID("turnier_id") - val klasse = varchar("klasse", 50) - val hoeheCm = integer("hoehe_cm").nullable() - val bezeichnung = text("bezeichnung") - val createdAt = timestamp("created_at") - val updatedAt = timestamp("updated_at") + val id = javaUUID("id").autoGenerate() + val turnierId = javaUUID("turnier_id") + val klasse = varchar("klasse", 50) + val hoeheCm = integer("hoehe_cm").nullable() + val bezeichnung = text("bezeichnung") + + // Abteilungs-Konfiguration + val teilungsTyp = varchar("teilungs_typ", 50).nullable() + + // Text & Details + val beschreibung = text("beschreibung").nullable() + val aufgabe = varchar("aufgabe", 100).nullable() + val aufgabenNummer = varchar("aufgaben_nummer", 50).nullable() + val paraGrade = varchar("para_grade", 50).nullable() + + // Ort & Funktionäre + val austragungsplatzId = javaUUID("austragungsplatz_id").nullable() + + // Zeitplan + val geplantesDatum = date("geplantes_datum").nullable() + val beginnZeitTyp = varchar("beginn_zeit_typ", 20).nullable() + val beginnZeit = time("beginn_zeit").nullable() + val reitdauerMinuten = integer("reitdauer_minuten").nullable() + val umbauMinuten = integer("umbau_minuten").nullable() + val besichtigungMinuten = integer("besichtigung_minuten").nullable() + val stechenGeplant = bool("stechen_geplant").default(false) + + // Finanzen + val startgeldCent = long("startgeld_cent").nullable() + val geldpreisAusbezahlt = bool("geldpreis_ausbezahlt").default(false) + + val createdAt = timestamp("created_at") + val updatedAt = timestamp("updated_at") override val primaryKey = PrimaryKey(id)