daten Klassen im shared Ordner erstellt und gradle überarbeitet
This commit is contained in:
parent
490e86bf9d
commit
b513643b02
|
|
@ -3,7 +3,10 @@ kotlin.code.style=official
|
||||||
kotlin.daemon.jvmargs=-Xmx2048M
|
kotlin.daemon.jvmargs=-Xmx2048M
|
||||||
|
|
||||||
#Gradle
|
#Gradle
|
||||||
org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8
|
org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 -XX:+UseParallelGC
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.caching=true
|
||||||
|
org.gradle.configureondemand=true
|
||||||
|
|
||||||
#Ktor
|
#Ktor
|
||||||
io.ktor.development=true
|
io.ktor.development=true
|
||||||
|
|
|
||||||
|
|
@ -1,39 +1,54 @@
|
||||||
[versions]
|
[versions]
|
||||||
androidx-lifecycle = "2.8.4"
|
# Kotlin and related libraries
|
||||||
compose-multiplatform = "1.7.3"
|
|
||||||
junit = "4.13.2"
|
|
||||||
kotlin = "2.1.20"
|
kotlin = "2.1.20"
|
||||||
kotlinx-coroutines = "1.10.1"
|
kotlinx-coroutines = "1.10.1"
|
||||||
|
kotlinx-serialization = "1.8.1"
|
||||||
|
kotlinx-datetime = "0.6.1"
|
||||||
|
|
||||||
|
# UI frameworks
|
||||||
|
compose-multiplatform = "1.7.3"
|
||||||
|
androidx-lifecycle = "2.8.4"
|
||||||
|
|
||||||
|
# Ktor
|
||||||
ktor = "3.1.2"
|
ktor = "3.1.2"
|
||||||
ktor-tests = "2.3.13"
|
|
||||||
logback = "1.5.18"
|
# Database
|
||||||
junit-jupiter = "5.12.0"
|
|
||||||
junit-jupiter-version = "5.8.1"
|
|
||||||
exposed = "0.52.0"
|
exposed = "0.52.0"
|
||||||
postgresql = "42.7.3"
|
postgresql = "42.7.3"
|
||||||
hikari = "5.1.0"
|
hikari = "5.1.0"
|
||||||
h2 = "2.2.224"
|
h2 = "2.2.224"
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
logback = "1.5.18"
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
junit = "4.13.2"
|
||||||
|
junit-jupiter = "5.12.0"
|
||||||
|
|
||||||
|
# Utilities
|
||||||
|
uuid = "0.8.4"
|
||||||
|
bignum = "0.3.10"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
# Kotlin and related libraries
|
||||||
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
||||||
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
|
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
|
||||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
||||||
|
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
|
||||||
|
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" }
|
||||||
|
|
||||||
|
# UI frameworks
|
||||||
androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
|
androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
|
||||||
androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
||||||
kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
|
||||||
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
# Ktor
|
||||||
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
|
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
|
||||||
ktor-server-netty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktor" }
|
ktor-server-netty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktor" }
|
||||||
ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "ktor-tests" }
|
|
||||||
ktor-server-html-builder = { module = "io.ktor:ktor-server-html-builder", version.ref = "ktor" }
|
ktor-server-html-builder = { module = "io.ktor:ktor-server-html-builder", version.ref = "ktor" }
|
||||||
|
|
||||||
junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit-jupiter" }
|
|
||||||
jupiter-junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit-jupiter" }
|
|
||||||
|
|
||||||
# ... andere libraries ...
|
|
||||||
ktor-server-config-yaml = { module = "io.ktor:ktor-server-config-yaml", version.ref = "ktor" }
|
ktor-server-config-yaml = { module = "io.ktor:ktor-server-config-yaml", version.ref = "ktor" }
|
||||||
junit-junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit-jupiter-version" }
|
ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "ktor" }
|
||||||
|
|
||||||
|
# Database
|
||||||
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
|
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
|
||||||
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
|
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
|
||||||
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
|
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
|
||||||
|
|
@ -41,9 +56,21 @@ postgresql-driver = { module = "org.postgresql:postgresql", version.ref = "postg
|
||||||
hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
|
hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
|
||||||
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
|
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||||
|
junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit-jupiter" }
|
||||||
|
|
||||||
|
# Utilities
|
||||||
|
uuid = { group = "com.benasher44", name = "uuid", version.ref = "uuid" }
|
||||||
|
bignum = { group = "com.ionspin.kotlin", name = "bignum", version.ref = "bignum" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
|
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
||||||
|
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
||||||
|
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
||||||
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
|
||||||
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
||||||
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
||||||
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
|
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
|
||||||
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,11 @@
|
||||||
"@jridgewell/resolve-uri" "^3.1.0"
|
"@jridgewell/resolve-uri" "^3.1.0"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||||
|
|
||||||
|
"@js-joda/core@3.2.0":
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-3.2.0.tgz#3e61e21b7b2b8a6be746df1335cf91d70db2a273"
|
||||||
|
integrity sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg==
|
||||||
|
|
||||||
"@leichtgewicht/ip-codec@^2.0.1":
|
"@leichtgewicht/ip-codec@^2.0.1":
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
|
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,6 @@ dependencies {
|
||||||
testImplementation(libs.ktor.server.tests)
|
testImplementation(libs.ktor.server.tests)
|
||||||
testImplementation(libs.kotlin.test.junit)
|
testImplementation(libs.kotlin.test.junit)
|
||||||
testImplementation(libs.junit.jupiter)
|
testImplementation(libs.junit.jupiter)
|
||||||
testImplementation(libs.jupiter.junit.jupiter)
|
|
||||||
|
|
||||||
testImplementation(libs.junit.junit.jupiter)
|
|
||||||
|
|
||||||
// Exposed für Datenbankzugriff (Core, DAO-Pattern, JDBC-Implementierung)
|
// Exposed für Datenbankzugriff (Core, DAO-Pattern, JDBC-Implementierung)
|
||||||
implementation(libs.exposed.core)
|
implementation(libs.exposed.core)
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
package at.mocode.model
|
|
||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class Nennung(
|
|
||||||
// Wir brauchen die Turnier-ID, um die Nennung zuzuordnen
|
|
||||||
val turnierId: String,
|
|
||||||
// Einfache Felder für den Start
|
|
||||||
val riderName: String = "", // Standardwerte für leeres Formular
|
|
||||||
val horseName: String = "",
|
|
||||||
val email: String = "",
|
|
||||||
val comments: String? = null
|
|
||||||
// Hier kommen später Felder hinzu: Verein, Lizenznr., Tel,
|
|
||||||
// und vor allem: die Auswahl der Prüfungen!
|
|
||||||
)
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
package at.mocode.model
|
|
||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class Turnier(
|
|
||||||
val id: String, // Eine eindeutige ID für das Turnier (z.B. eine UUID als String)
|
|
||||||
val name: String, // Der Name, z.B. "CDN-C Edelhof April 2025"
|
|
||||||
val datum: String, // Das Datum oder der Zeitraum, erstmal als Text, z.B. "14.04.2025 - 15.04.2025"
|
|
||||||
val logoUrl: String? = null, // Optional: Link zum Logo des Veranstalters
|
|
||||||
val ausschreibungUrl: String? = null // Optional: Link zur Ausschreibungs-PDF
|
|
||||||
// Hier können später viele weitere Felder hinzukommen:
|
|
||||||
// Ort, Veranstalter, Status (geplant, läuft, beendet), Disziplinen etc.
|
|
||||||
)
|
|
||||||
21
server/src/main/kotlin/at/mocode/tables/TurniereTable.kt
Normal file
21
server/src/main/kotlin/at/mocode/tables/TurniereTable.kt
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
package at.mocode.tables
|
||||||
|
|
||||||
|
/*
|
||||||
|
object TurniereTable: Table("turniere") {
|
||||||
|
|
||||||
|
val id: Column<String> = varchar("id", 36).uniqueIndex()
|
||||||
|
|
||||||
|
val veranstaltungId: Column<String> = varchar("veranstaltungId", 36).uniqueIndex()
|
||||||
|
|
||||||
|
val oepsTurnierNr: Column<String> = varchar("oepsTurnierNr", 255)
|
||||||
|
|
||||||
|
val titel: Column<String> = varchar("titel", 255)
|
||||||
|
|
||||||
|
val untertitel: Column<String?> = varchar("titel", 255).nullable()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Definiert die Spalte 'id' als Primärschlüssel für diese Tabelle
|
||||||
|
override val primaryKey = PrimaryKey(id)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.kotlinMultiplatform)
|
alias(libs.plugins.kotlinMultiplatform)
|
||||||
kotlin("plugin.serialization") version libs.versions.kotlin.get()
|
alias(libs.plugins.kotlinSerialization)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
|
@ -29,20 +29,20 @@ kotlin {
|
||||||
sourceSets {
|
sourceSets {
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
// put your Multiplatform dependencies here
|
// Multiplatform dependencies
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.1")
|
implementation(libs.kotlinx.serialization.json)
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")
|
implementation(libs.kotlinx.datetime)
|
||||||
implementation("com.benasher44:uuid:0.8.1")
|
implementation(libs.uuid)
|
||||||
implementation("com.ionspin.kotlin:bignum:0.3.8")
|
implementation(libs.bignum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val jvmMain by getting {
|
// val jvmMain by getting {
|
||||||
dependsOn(commonMain)
|
// dependsOn(commonMain)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
val wasmJsMain by getting {
|
// val wasmJsMain by getting {
|
||||||
dependsOn(commonMain)
|
// dependsOn(commonMain)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package at.mocode
|
|
||||||
|
|
||||||
class Greeting {
|
|
||||||
private val platform = getPlatform()
|
|
||||||
|
|
||||||
fun greet(): String {
|
|
||||||
return "Hello, ${platform.name}!"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
package at.mocode
|
|
||||||
|
|
||||||
interface Platform {
|
|
||||||
val name: String
|
|
||||||
}
|
|
||||||
|
|
||||||
expect fun getPlatform(): Platform
|
|
||||||
|
|
@ -1,14 +1,19 @@
|
||||||
package at.mocode.model.entitaeten
|
package at.mocode.model.entitaeten
|
||||||
|
|
||||||
import at.mocode.model.serializer.BigDecimalSerializer
|
import at.mocode.model.serializers.BigDecimalSerializer
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.KotlinInstantSerializer
|
||||||
import at.mocode.model.serializer.KotlinInstantSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
|
import com.ionspin.kotlin.bignum.decimal.BigDecimal
|
||||||
|
import kotlinx.datetime.Clock
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Artikel(
|
data class Artikel(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var bezeichnung: String,
|
var bezeichnung: String,
|
||||||
@Serializable(with = BigDecimalSerializer::class) // Beispiel für Serializer
|
@Serializable(with = BigDecimalSerializer::class) // Beispiel für Serializer
|
||||||
var preis: BigDecimal,
|
var preis: BigDecimal,
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
package at.mocode.model.entitaeten
|
package at.mocode.model.entitaeten
|
||||||
|
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class MeisterschaftReferenz(
|
data class MeisterschaftReferenz(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var meisterschaftId: UUID, // FK zu einer Meisterschafts-Entität
|
var meisterschaftId: Uuid, // FK zu einer Meisterschafts-Entität
|
||||||
var name: String,
|
var name: String,
|
||||||
var betrifftBewerbNummern: List<Int>,
|
var betrifftBewerbNummern: List<Int>,
|
||||||
var berechnungsstrategie: String?,
|
var berechnungsstrategie: String?,
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
package at.mocode.model.entitaeten
|
package at.mocode.model.entitaeten
|
||||||
|
|
||||||
import at.mocode.model.enums.PlatzTyp
|
import at.mocode.model.enums.PlatzTyp
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Platz(
|
data class Platz(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var name: String,
|
var name: String,
|
||||||
var dimension: String?,
|
var dimension: String?,
|
||||||
var boden: String?,
|
var boden: String?,
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,22 @@
|
||||||
package at.mocode.model.entitaeten
|
package at.mocode.model.entitaeten
|
||||||
|
|
||||||
// Hinweis: In einem Kotlin Multiplatform-Projekt können JVM-spezifische Klassen wie
|
|
||||||
// java.math.BigDecimal und java.util.UUID nicht im commonMain-Quellcode verwendet werden.
|
|
||||||
// Stattdessen werden multiplatformfähige Alternativen verwendet:
|
|
||||||
// - com.benasher44.uuid.Uuid anstelle von java.util.UUID
|
|
||||||
// - com.ionspin.kotlin.bignum.decimal.BigDecimal anstelle von java.math.BigDecimal
|
|
||||||
// Diese Klassen bieten ähnliche Funktionalität, sind aber auf allen Plattformen verfügbar.
|
|
||||||
//
|
|
||||||
// Für JVM-spezifischen Code können diese Klassen im jvmMain-Quellset verwendet werden.
|
|
||||||
// Siehe: shared/src/jvmMain/kotlin/at/mocode/model/JvmSerializer.kt
|
|
||||||
|
|
||||||
import at.mocode.model.enums.NennungsArt
|
import at.mocode.model.enums.NennungsArt
|
||||||
import at.mocode.model.serializer.*
|
import at.mocode.model.serializers.*
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
import com.ionspin.kotlin.bignum.decimal.BigDecimal
|
import com.ionspin.kotlin.bignum.decimal.BigDecimal
|
||||||
import kotlinx.datetime.Clock
|
import kotlinx.datetime.Clock
|
||||||
import kotlinx.datetime.Instant
|
import kotlinx.datetime.Instant
|
||||||
import kotlinx.datetime.LocalDate
|
import kotlinx.datetime.LocalDate
|
||||||
import kotlinx.datetime.LocalDateTime
|
import kotlinx.datetime.LocalDateTime
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import com.benasher44.uuid.Uuid as UUID
|
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Turnier(
|
data class Turnier(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var veranstaltungId: UUID,
|
var veranstaltungId: Uuid,
|
||||||
var oepsTurnierNr: String,
|
var oepsTurnierNr: String,
|
||||||
var titel: String,
|
var titel: String,
|
||||||
var untertitel: String?,
|
var untertitel: String?,
|
||||||
|
|
@ -44,17 +35,17 @@ data class Turnier(
|
||||||
var startgeldStandard: BigDecimal?,
|
var startgeldStandard: BigDecimal?,
|
||||||
var austragungsplaetze: List<Platz> = emptyList(),
|
var austragungsplaetze: List<Platz> = emptyList(),
|
||||||
var vorbereitungsplaetze: List<Platz> = emptyList(),
|
var vorbereitungsplaetze: List<Platz> = emptyList(),
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var turnierleiterId: UUID?, // FK zu Person
|
var turnierleiterId: Uuid?, // FK zu Person
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var turnierbeauftragterId: UUID?, // FK zu Person
|
var turnierbeauftragterId: Uuid?, // FK zu Person
|
||||||
var richterIds: List<@Serializable(with = JavaUUIDSerializer::class)UUID> = emptyList(), // Pool an Richtern
|
var richterIds: List<@Serializable(with = UuidSerializer::class) Uuid> = emptyList(), // Pool an Richtern
|
||||||
var parcoursbauerIds: List<@Serializable(with = JavaUUIDSerializer::class)UUID> = emptyList(), // FKs zu Person
|
var parcoursbauerIds: List<@Serializable(with = UuidSerializer::class) Uuid> = emptyList(), // FKs zu Person
|
||||||
var parcoursAssistentIds: List<@Serializable(with = JavaUUIDSerializer::class)UUID> = emptyList(), // FKs zu Person
|
var parcoursAssistentIds: List<@Serializable(with = UuidSerializer::class) Uuid> = emptyList(), // FKs zu Person
|
||||||
var tierarztInfos: String?,
|
var tierarztInfos: String?,
|
||||||
var hufschmiedInfo: String?,
|
var hufschmiedInfo: String?,
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var meldestelleVerantwortlicherId: UUID?, // FK zu Person
|
var meldestelleVerantwortlicherId: Uuid?, // FK zu Person
|
||||||
var meldestelleTelefon: String?,
|
var meldestelleTelefon: String?,
|
||||||
var meldestelleOeffnungszeiten: String?,
|
var meldestelleOeffnungszeiten: String?,
|
||||||
var ergebnislistenUrl: String?, // Wird später meist system-generiert
|
var ergebnislistenUrl: String?, // Wird später meist system-generiert
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,20 @@
|
||||||
package at.mocode.model.entitaeten
|
package at.mocode.model.entitaeten
|
||||||
|
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.enums.VeranstalterTyp
|
||||||
import at.mocode.model.serializer.KotlinInstantSerializer
|
import at.mocode.model.serializers.KotlinInstantSerializer
|
||||||
|
import at.mocode.model.serializers.KotlinLocalDateSerializer
|
||||||
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
|
import kotlinx.datetime.Clock
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
|
import kotlinx.datetime.LocalDate
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Veranstaltung(
|
data class Veranstaltung(
|
||||||
@Serializable(with = JavaUUIDSerializer::class) // Beispiel für Serializer, falls nötig
|
@Serializable(with = UuidSerializer::class) // Beispiel für Serializer, falls nötig
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var name: String,
|
var name: String,
|
||||||
@Serializable(with = KotlinLocalDateSerializer::class) // Beispiel für Serializer
|
@Serializable(with = KotlinLocalDateSerializer::class) // Beispiel für Serializer
|
||||||
var datumVon: LocalDate,
|
var datumVon: LocalDate,
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package at.mocode.model.serializer
|
|
||||||
|
|
||||||
import com.ionspin.kotlin.bignum.decimal.BigDecimal
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
|
|
||||||
object BigDecimalSerializer : KSerializer<BigDecimal> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BigDecimal", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: BigDecimal) = encoder.encodeString(value.toStringExpanded())
|
|
||||||
override fun deserialize(decoder: Decoder): BigDecimal = BigDecimal.parseString(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
package at.mocode.model.serializer
|
|
||||||
|
|
||||||
import com.benasher44.uuid.Uuid
|
|
||||||
import kotlinx.serialization.*
|
|
||||||
import kotlinx.serialization.descriptors.*
|
|
||||||
import kotlinx.serialization.encoding.*
|
|
||||||
|
|
||||||
object JavaUUIDSerializer : KSerializer<Uuid> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("UUID", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: Uuid) = encoder.encodeString(value.toString())
|
|
||||||
override fun deserialize(decoder: Decoder): Uuid = Uuid.fromString(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package at.mocode.model.serializer
|
|
||||||
|
|
||||||
import kotlinx.datetime.Instant
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
|
|
||||||
object KotlinInstantSerializer : KSerializer<Instant> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Instant", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: Instant) = encoder.encodeString(value.toString())
|
|
||||||
override fun deserialize(decoder: Decoder): Instant = Instant.parse(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package at.mocode.model.serializer
|
|
||||||
|
|
||||||
import kotlinx.datetime.LocalDate
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
|
|
||||||
object KotlinLocalDateSerializer : KSerializer<LocalDate> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalDate", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: LocalDate) = encoder.encodeString(value.toString())
|
|
||||||
override fun deserialize(decoder: Decoder): LocalDate = LocalDate.parse(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package at.mocode.model.serializer
|
|
||||||
|
|
||||||
import kotlinx.datetime.LocalDateTime
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
|
|
||||||
object KotlinLocalDateTimeSerializer : KSerializer<LocalDateTime> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalDateTime", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: LocalDateTime) = encoder.encodeString(value.toString())
|
|
||||||
override fun deserialize(decoder: Decoder): LocalDateTime = LocalDateTime.parse(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package at.mocode.model.serializers
|
||||||
|
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuidFrom
|
||||||
|
import com.ionspin.kotlin.bignum.decimal.BigDecimal
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
|
import kotlinx.datetime.LocalDate
|
||||||
|
import kotlinx.datetime.LocalDateTime
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.descriptors.PrimitiveKind
|
||||||
|
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
||||||
|
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.encoding.Encoder
|
||||||
|
|
||||||
|
object BigDecimalSerializer : KSerializer<BigDecimal> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BigDecimal", PrimitiveKind.STRING)
|
||||||
|
override fun serialize(encoder: Encoder, value: BigDecimal) = encoder.encodeString(value.toStringExpanded())
|
||||||
|
override fun deserialize(decoder: Decoder): BigDecimal = BigDecimal.parseString(decoder.decodeString())
|
||||||
|
}
|
||||||
|
|
||||||
|
object UuidSerializer : KSerializer<Uuid> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("UUID", PrimitiveKind.STRING)
|
||||||
|
override fun serialize(encoder: Encoder, value: Uuid) = encoder.encodeString(value.toString())
|
||||||
|
override fun deserialize(decoder: Decoder): Uuid = uuidFrom(decoder.decodeString())
|
||||||
|
}
|
||||||
|
|
||||||
|
object KotlinInstantSerializer : KSerializer<Instant> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Instant", PrimitiveKind.STRING)
|
||||||
|
override fun serialize(encoder: Encoder, value: Instant) = encoder.encodeString(value.toString())
|
||||||
|
override fun deserialize(decoder: Decoder): Instant = Instant.parse(decoder.decodeString())
|
||||||
|
}
|
||||||
|
|
||||||
|
object KotlinLocalDateSerializer : KSerializer<LocalDate> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalDate", PrimitiveKind.STRING)
|
||||||
|
override fun serialize(encoder: Encoder, value: LocalDate) = encoder.encodeString(value.toString())
|
||||||
|
override fun deserialize(decoder: Decoder): LocalDate = LocalDate.parse(decoder.decodeString())
|
||||||
|
}
|
||||||
|
|
||||||
|
object KotlinLocalDateTimeSerializer : KSerializer<LocalDateTime> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalDateTime", PrimitiveKind.STRING)
|
||||||
|
override fun serialize(encoder: Encoder, value: LocalDateTime) = encoder.encodeString(value.toString())
|
||||||
|
override fun deserialize(decoder: Decoder): LocalDateTime = LocalDateTime.parse(decoder.decodeString())
|
||||||
|
}
|
||||||
|
|
@ -2,7 +2,7 @@ package at.mocode.model.stammdaten
|
||||||
|
|
||||||
import at.mocode.model.enums.LizenzTyp
|
import at.mocode.model.enums.LizenzTyp
|
||||||
import at.mocode.model.enums.Sparte
|
import at.mocode.model.enums.Sparte
|
||||||
import at.mocode.model.serializer.KotlinLocalDateSerializer
|
import at.mocode.model.serializers.KotlinLocalDateSerializer
|
||||||
import kotlinx.datetime.LocalDate
|
import kotlinx.datetime.LocalDate
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,20 @@ package at.mocode.model.stammdaten
|
||||||
|
|
||||||
import at.mocode.model.enums.FunktionaerRolle
|
import at.mocode.model.enums.FunktionaerRolle
|
||||||
import at.mocode.model.enums.Geschlecht
|
import at.mocode.model.enums.Geschlecht
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.KotlinInstantSerializer
|
||||||
import at.mocode.model.serializer.KotlinInstantSerializer
|
import at.mocode.model.serializers.KotlinLocalDateSerializer
|
||||||
import at.mocode.model.serializer.KotlinLocalDateSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
|
import kotlinx.datetime.Clock
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
import kotlinx.datetime.LocalDate
|
import kotlinx.datetime.LocalDate
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Person(
|
data class Person(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var oepsSatzNr: String?,
|
var oepsSatzNr: String?,
|
||||||
var nachname: String,
|
var nachname: String,
|
||||||
var vorname: String,
|
var vorname: String,
|
||||||
|
|
@ -25,8 +29,8 @@ data class Person(
|
||||||
var adresse: String?,
|
var adresse: String?,
|
||||||
var plz: String?,
|
var plz: String?,
|
||||||
var ort: String?,
|
var ort: String?,
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var stammVereinId: UUID?, // FK zum Verein
|
var stammVereinId: Uuid?, // FK zum Verein
|
||||||
var mitgliedsNummerIntern: String?,
|
var mitgliedsNummerIntern: String?,
|
||||||
var letzteZahlungJahr: Int?,
|
var letzteZahlungJahr: Int?,
|
||||||
var feiId: String?,
|
var feiId: String?,
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
package at.mocode.model.stammdaten
|
package at.mocode.model.stammdaten
|
||||||
|
|
||||||
import at.mocode.model.enums.GeschlechtPferd
|
import at.mocode.model.enums.GeschlechtPferd
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.KotlinInstantSerializer
|
||||||
import at.mocode.model.serializer.KotlinInstantSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
|
import kotlinx.datetime.Clock
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Pferd(
|
data class Pferd(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var oepsKopfNr: String?,
|
var oepsKopfNr: String?,
|
||||||
var oepsSatzNr: String?,
|
var oepsSatzNr: String?,
|
||||||
var name: String,
|
var name: String,
|
||||||
|
|
@ -21,12 +25,12 @@ data class Pferd(
|
||||||
var vaterName: String?,
|
var vaterName: String?,
|
||||||
var mutterName: String?,
|
var mutterName: String?,
|
||||||
var mutterVaterName: String?,
|
var mutterVaterName: String?,
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var besitzerId: UUID?, // FK Person
|
var besitzerId: Uuid?, // FK Person
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var verantwortlichePersonId: UUID?, // FK Person
|
var verantwortlichePersonId: Uuid?, // FK Person
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
var heimatVereinId: UUID?, // FK Verein
|
var heimatVereinId: Uuid?, // FK Verein
|
||||||
var letzteZahlungJahrOeps: Int?,
|
var letzteZahlungJahrOeps: Int?,
|
||||||
var stockmassCm: Int?,
|
var stockmassCm: Int?,
|
||||||
var istAktiv: Boolean = true,
|
var istAktiv: Boolean = true,
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,17 @@
|
||||||
package at.mocode.model.stammdaten
|
package at.mocode.model.stammdaten
|
||||||
|
|
||||||
import at.mocode.model.serializer.JavaUUIDSerializer
|
import at.mocode.model.serializers.KotlinInstantSerializer
|
||||||
import at.mocode.model.serializer.KotlinInstantSerializer
|
import at.mocode.model.serializers.UuidSerializer
|
||||||
import com.benasher44.uuid.UUID
|
import com.benasher44.uuid.Uuid
|
||||||
|
import com.benasher44.uuid.uuid4
|
||||||
|
import kotlinx.datetime.Clock
|
||||||
|
import kotlinx.datetime.Instant
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Verein(
|
data class Verein(
|
||||||
@Serializable(with = JavaUUIDSerializer::class)
|
@Serializable(with = UuidSerializer::class)
|
||||||
val id: UUID = UUID.randomUUID(),
|
val id: Uuid = uuid4(),
|
||||||
var oepsVereinsNr: String,
|
var oepsVereinsNr: String,
|
||||||
var name: String,
|
var name: String,
|
||||||
var kuerzel: String?,
|
var kuerzel: String?,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
package at.mocode
|
|
||||||
|
|
||||||
class JVMPlatform: Platform {
|
|
||||||
override val name: String = "Java ${System.getProperty("java.version")}"
|
|
||||||
}
|
|
||||||
|
|
||||||
actual fun getPlatform(): Platform = JVMPlatform()
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
package at.mocode.model
|
|
||||||
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
import java.math.BigDecimal
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
object JavaUUIDSerializer : KSerializer<UUID> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("UUID", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: UUID) = encoder.encodeString(value.toString())
|
|
||||||
override fun deserialize(decoder: Decoder): UUID = UUID.fromString(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
||||||
object BigDecimalSerializer : KSerializer<BigDecimal> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BigDecimal", PrimitiveKind.STRING)
|
|
||||||
override fun serialize(encoder: Encoder, value: BigDecimal) = encoder.encodeString(value.toPlainString())
|
|
||||||
override fun deserialize(decoder: Decoder): BigDecimal = BigDecimal(decoder.decodeString())
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
package at.mocode
|
|
||||||
|
|
||||||
class WasmPlatform: Platform {
|
|
||||||
override val name: String = "Web with Kotlin/Wasm"
|
|
||||||
}
|
|
||||||
|
|
||||||
actual fun getPlatform(): Platform = WasmPlatform()
|
|
||||||
Loading…
Reference in New Issue
Block a user