(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
@@ -0,0 +1,27 @@
package at.mocode.tables.domaene
import at.mocode.tables.PersonenTable
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.kotlin.datetime.date
import org.jetbrains.exposed.sql.kotlin.datetime.timestamp
object DomLizenzTable : Table("dom_lizenzen") {
val lizenzId = uuid("lizenz_id")
val personId = uuid("person_id").references(PersonenTable.id)
val lizenzTypGlobalId = uuid("lizenz_typ_global_id") // FK to LizenzTypGlobal when implemented
val gueltigBisJahr = integer("gueltig_bis_jahr").nullable()
val ausgestelltAm = date("ausgestellt_am").nullable()
val istAktivBezahltOeps = bool("ist_aktiv_bezahlt_oeps").default(false)
val notiz = text("notiz").nullable()
val createdAt = timestamp("created_at")
val updatedAt = timestamp("updated_at")
override val primaryKey = PrimaryKey(lizenzId)
init {
index(false, personId)
index(false, lizenzTypGlobalId)
index(false, gueltigBisJahr)
index(false, istAktivBezahltOeps)
}
}
@@ -0,0 +1,55 @@
package at.mocode.tables.domaene
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.kotlin.datetime.date
import org.jetbrains.exposed.sql.kotlin.datetime.timestamp
object DomPersonTable : Table("dom_personen") {
val personId = uuid("person_id")
val oepsSatzNr = varchar("oeps_satz_nr", 10).nullable().uniqueIndex()
val nachname = varchar("nachname", 255)
val vorname = varchar("vorname", 255)
val titel = varchar("titel", 100).nullable()
val geburtsdatum = date("geburtsdatum").nullable()
val geschlechtE = varchar("geschlecht", 20).nullable()
val nationalitaetLandId = uuid("nationalitaet_land_id").nullable() // FK to LandDefinition when implemented
val feiId = varchar("fei_id", 50).nullable()
val telefon = varchar("telefon", 50).nullable()
val email = varchar("email", 255).nullable()
// Adresse
val strasse = varchar("strasse", 255).nullable()
val plz = varchar("plz", 20).nullable()
val ort = varchar("ort", 255).nullable()
val adresszusatzZusatzinfo = varchar("adresszusatz_zusatzinfo", 255).nullable()
val stammVereinId = uuid("stamm_verein_id").nullable() // FK to DomVerein when implemented
val mitgliedsNummerBeiStammVerein = varchar("mitglieds_nummer_bei_stamm_verein", 50).nullable()
val istGesperrt = bool("ist_gesperrt").default(false)
val sperrGrund = varchar("sperr_grund", 500).nullable()
val altersklasseOepsCodeRaw = varchar("altersklasse_oeps_code_raw", 10).nullable()
val istJungerReiterOepsFlag = bool("ist_junger_reiter_oeps_flag").default(false)
val kaderStatusOepsRaw = varchar("kader_status_oeps_raw", 10).nullable()
val datenQuelle = varchar("daten_quelle", 50).default("MANUELL")
val istAktiv = bool("ist_aktiv").default(true)
val notizenIntern = text("notizen_intern").nullable()
val createdAt = timestamp("created_at")
val updatedAt = timestamp("updated_at")
override val primaryKey = PrimaryKey(personId)
init {
index(false, nachname)
index(false, vorname)
index(false, oepsSatzNr)
index(false, feiId)
index(false, stammVereinId)
index(false, istGesperrt)
index(false, istAktiv)
index(false, datenQuelle)
}
}
@@ -0,0 +1,50 @@
package at.mocode.tables.domaene
import at.mocode.enums.DatenQuelleE
import at.mocode.enums.PferdeGeschlechtE
import at.mocode.tables.PersonenTable
import at.mocode.tables.VereineTable
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.kotlin.datetime.timestamp
object DomPferdTable : Table("dom_pferde") {
val pferdId = uuid("pferd_id")
val oepsSatzNrPferd = varchar("oeps_satz_nr_pferd", 15).uniqueIndex().nullable()
val oepsKopfNr = varchar("oeps_kopf_nr", 10).nullable()
val name = varchar("name", 255)
val lebensnummer = varchar("lebensnummer", 20).nullable()
val feiPassNr = varchar("fei_pass_nr", 20).nullable()
val geburtsjahr = integer("geburtsjahr").nullable()
val geschlecht = enumerationByName("geschlecht", 20, PferdeGeschlechtE::class).nullable()
val farbe = varchar("farbe", 50).nullable()
val rasse = varchar("rasse", 100).nullable()
val abstammungVaterName = varchar("abstammung_vater_name", 255).nullable()
val abstammungMutterName = varchar("abstammung_mutter_name", 255).nullable()
val abstammungMutterVaterName = varchar("abstammung_mutter_vater_name", 255).nullable()
val abstammungZusatzInfo = text("abstammung_zusatz_info").nullable()
val besitzerPersonId = uuid("besitzer_person_id").references(PersonenTable.id).nullable()
val verantwortlichePersonId = uuid("verantwortliche_person_id").references(PersonenTable.id).nullable()
val heimatVereinId = uuid("heimat_verein_id").references(VereineTable.id).nullable()
val letzteZahlungPferdegebuehrJahrOeps = integer("letzte_zahlung_pferdegebuehr_jahr_oeps").nullable()
val stockmassCm = integer("stockmass_cm").nullable()
val datenQuelle = enumerationByName("daten_quelle", 20, DatenQuelleE::class).default(DatenQuelleE.MANUELL)
val istAktiv = bool("ist_aktiv").default(true)
val notizenIntern = text("notizen_intern").nullable()
val createdAt = timestamp("created_at")
val updatedAt = timestamp("updated_at")
override val primaryKey = PrimaryKey(pferdId)
init {
index(false, name)
index(false, oepsSatzNrPferd)
index(false, lebensnummer)
index(false, besitzerPersonId)
index(false, verantwortlichePersonId)
index(false, heimatVereinId)
index(false, rasse)
index(false, geburtsjahr)
index(false, istAktiv)
index(false, datenQuelle)
}
}
@@ -0,0 +1,27 @@
package at.mocode.tables.domaene
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.kotlin.datetime.date
import org.jetbrains.exposed.sql.kotlin.datetime.timestamp
object DomQualifikationTable : Table("dom_qualifikationen") {
val qualifikationId = uuid("qualifikation_id")
val personId = uuid("person_id") // FK to DomPerson when implemented
val qualTypId = uuid("qual_typ_id") // FK to QualifikationsTyp when implemented
val bemerkung = text("bemerkung").nullable()
val gueltigVon = date("gueltig_von").nullable()
val gueltigBis = date("gueltig_bis").nullable()
val istAktiv = bool("ist_aktiv").default(true)
val createdAt = timestamp("created_at")
val updatedAt = timestamp("updated_at")
override val primaryKey = PrimaryKey(qualifikationId)
init {
index(false, personId)
index(false, qualTypId)
index(false, istAktiv)
index(false, gueltigVon)
index(false, gueltigBis)
}
}
@@ -0,0 +1,40 @@
package at.mocode.tables.domaene
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.kotlin.datetime.timestamp
object DomVereinTable : Table("dom_vereine") {
val vereinId = uuid("verein_id")
val oepsVereinsNr = varchar("oeps_vereins_nr", 10).nullable().uniqueIndex()
val name = varchar("name", 255)
val kuerzel = varchar("kuerzel", 50).nullable()
val adresseStrasse = varchar("adresse_strasse", 255).nullable()
val plz = varchar("plz", 20).nullable()
val ort = varchar("ort", 255).nullable()
val bundeslandId = uuid("bundesland_id").nullable() // FK to BundeslandDefinition when implemented
val landId = uuid("land_id") // FK to LandDefinition when implemented
val emailAllgemein = varchar("email_allgemein", 255).nullable()
val telefonAllgemein = varchar("telefon_allgemein", 50).nullable()
val webseiteUrl = varchar("webseite_url", 500).nullable()
val datenQuelle = varchar("daten_quelle", 50).default("OEPS_ZNS")
val istAktiv = bool("ist_aktiv").default(true)
val notizenIntern = text("notizen_intern").nullable()
val createdAt = timestamp("created_at")
val updatedAt = timestamp("updated_at")
override val primaryKey = PrimaryKey(vereinId)
init {
index(false, name)
index(false, oepsVereinsNr)
index(false, bundeslandId)
index(false, landId)
index(false, istAktiv)
index(false, datenQuelle)
}
}