chore: remove deprecated horses, clubs, officials, and persons services

- Deleted obsolete modules related to horses, clubs, officials, and persons services, including their configurations, build files, and database provisioning scripts.
- Cleaned up associated references in the project structure (e.g., `settings.gradle.kts`).
- Removed unused database tables and Spring beans related to these domains.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-03-28 16:50:49 +01:00
parent 2cb3f0b125
commit c806660685
181 changed files with 4121 additions and 8694 deletions
@@ -3,7 +3,7 @@
package at.mocode.core.domain.event
import at.mocode.core.domain.model.*
import at.mocode.core.domain.serialization.KotlinxInstantSerializer
import at.mocode.core.domain.serialization.InstantSerializer
import kotlinx.serialization.Serializable
import kotlin.time.Clock as KtClock
import kotlin.time.Instant
@@ -33,7 +33,7 @@ abstract class BaseDomainEvent(
override val version: EventVersion,
override val eventId: EventId = EventId(Uuid.random()),
@Serializable(with = KotlinxInstantSerializer::class)
@Serializable(with = InstantSerializer::class)
override val timestamp: Instant,
override val correlationId: CorrelationId? = null,
override val causationId: CausationId? = null
@@ -1,10 +1,9 @@
package at.mocode.core.domain.model
import at.mocode.core.domain.serialization.KotlinxInstantSerializer
import kotlinx.serialization.Serializable
import at.mocode.core.domain.serialization.InstantSerializer
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlinx.serialization.Serializable
/**
* Marker-Interface für alle Data-Transfer-Objekte (DTO).
@@ -18,10 +17,10 @@ interface BaseDto
abstract class EntityDto : BaseDto {
abstract val id: EntityId
@Serializable(with = KotlinxInstantSerializer::class)
@Serializable(with = InstantSerializer::class)
abstract val createdAt: Instant
@Serializable(with = KotlinxInstantSerializer::class)
@Serializable(with = InstantSerializer::class)
abstract val updatedAt: Instant
}
@@ -43,19 +42,17 @@ data class ApiResponse<T>(
val data: T?,
val success: Boolean,
val errors: List<ErrorDto> = emptyList(),
@Serializable(with = KotlinxInstantSerializer::class)
@Serializable(with = InstantSerializer::class)
val timestamp: Instant
) {
companion object {
@OptIn(ExperimentalTime::class)
fun <T> success(data: T): ApiResponse<T> =
ApiResponse(
data = data,
success = true,
timestamp = Instant.parse(Clock.System.now().toString())
timestamp = Clock.System.now()
)
@OptIn(ExperimentalTime::class)
fun <T> error(
code: ErrorCode,
message: String,
@@ -65,7 +62,7 @@ data class ApiResponse<T>(
data = null,
success = false,
errors = listOf(ErrorDto(code = code, message = message, field = field)),
timestamp = Instant.parse(Clock.System.now().toString())
timestamp = Clock.System.now()
)
}
@@ -77,13 +74,12 @@ data class ApiResponse<T>(
return error(ErrorCode(code), message, field)
}
@OptIn(ExperimentalTime::class)
fun <T> error(errors: List<ErrorDto>): ApiResponse<T> {
return ApiResponse(
data = null,
success = false,
errors = errors,
timestamp = Instant.parse(Clock.System.now().toString())
timestamp = Clock.System.now()
)
}
}
@@ -438,3 +438,21 @@ enum class AusschreibungsStatusE {
/** Ausschreibung veröffentlicht (für Reiter sichtbar) */
VEROEFFENTLICHT
}
/**
* Definiert den Typ eines Platzes auf einer Turnieranlage.
*/
@Serializable
enum class PlatzTypE {
/** Hauptplatz für Wettbewerbe */
AUSTRAGUNG,
/** Vorbereitungsplatz / Abreiteplatz */
VORBEREITUNG,
/** Longierplatz */
LONGIEREN,
/** Sonstige Fläche */
SONSTIGE
}
@@ -0,0 +1,30 @@
package at.mocode.core.domain.model
import kotlinx.serialization.Serializable
/**
* Representiert das Ergebnis einer Validierung.
*/
@Serializable
sealed class ValidationResult {
/**
* Gibt an, ob die Validierung erfolgreich war.
*/
abstract fun isValid(): Boolean
/**
* Repräsentiert eine erfolgreiche Validierung.
*/
@Serializable
object Valid : ValidationResult() {
override fun isValid(): Boolean = true
}
/**
* Repräsentiert eine fehlgeschlagene Validierung mit einer Liste von Fehlern.
*/
@Serializable
data class Invalid(val errors: List<ValidationError>) : ValidationResult() {
override fun isValid(): Boolean = false
}
}
@@ -1,32 +0,0 @@
package at.mocode.core.domain.serialization
import kotlinx.datetime.LocalDate
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerializationException
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
/**
* Kotlinx Serialization serializer for kotlinx.datetime.LocalDate.
* Serializes as ISO-8601 date string (yyyy-MM-dd).
*/
object KotlinLocalDateSerializer : KSerializer<LocalDate> {
override val descriptor: SerialDescriptor =
PrimitiveSerialDescriptor("KotlinLocalDate", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: LocalDate) {
encoder.encodeString(value.toString())
}
override fun deserialize(decoder: Decoder): LocalDate {
val text = decoder.decodeString()
return try {
LocalDate.parse(text)
} catch (e: Exception) {
throw SerializationException("Invalid LocalDate format: '$text'", e)
}
}
}
@@ -1,25 +0,0 @@
package at.mocode.core.domain.serialization
import kotlin.time.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
/**
* Serializer for kotlin.time.Instant.
* Uses ISO-8601 string representation.
*/
object KotlinxInstantSerializer : KSerializer<Instant> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("KotlinxInstant", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: Instant) {
encoder.encodeString(value.toString())
}
override fun deserialize(decoder: Decoder): Instant {
return Instant.parse(decoder.decodeString())
}
}
@@ -1,99 +1,59 @@
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
package at.mocode.core.domain.serialization
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlin.time.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
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
/**
* Serializer für kotlin.time. Instant Objekte.
* Konvertiert Instant zu/von ISO-8601 String-Repräsentation.
* Serializer für kotlin.time.Instant Objekte.
*/
@OptIn(ExperimentalTime::class)
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 {
return Instant.parse(decoder.decodeString())
}
object InstantSerializer : 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())
}
// Note: Serializer for kotlinx.datetime.Instant is defined in a separate file
/**
* Serializer für UUID Objekte.
* Konvertiert UUID zu/von String-Repräsentation.
* Serializer für kotlin.uuid.Uuid Objekte.
*/
@OptIn(ExperimentalUuidApi::class)
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 {
return Uuid.parse(decoder.decodeString())
}
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.parse(decoder.decodeString())
}
/**
* Serializer für kotlinx.datetime.LocalDate Objekte.
* Konvertiert LocalDate zu/von ISO-8601 String-Repräsentation.
*/
object LocalDateSerializer : 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 {
return LocalDate.parse(decoder.decodeString())
}
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())
}
/**
* Serializer für kotlinx.datetime. LocalDateTime Objekte.
* Konvertiert LocalDateTime zu/von ISO-8601 String-Repräsentation.
* Serializer für kotlinx.datetime.LocalDateTime Objekte.
*/
object LocalDateTimeSerializer : 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 {
return LocalDateTime.parse(decoder.decodeString())
}
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())
}
/**
* Serializer für kotlinx.datetime.LocalTime Objekte.
* Konvertiert LocalTime zu/von ISO-8601 String-Repräsentation.
*/
object LocalTimeSerializer : KSerializer<LocalTime> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalTime", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: LocalTime) {
encoder.encodeString(value.toString())
}
override fun deserialize(decoder: Decoder): LocalTime {
return LocalTime.parse(decoder.decodeString())
}
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LocalTime", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: LocalTime) = encoder.encodeString(value.toString())
override fun deserialize(decoder: Decoder): LocalTime = LocalTime.parse(decoder.decodeString())
}
@@ -15,8 +15,8 @@ class SerializersTest {
@Test
fun `Instant roundtrip`() {
val instant = kotlin.time.Instant.parse("2024-01-01T00:00:00Z")
val json = Json.encodeToString(KotlinInstantSerializer, instant)
val decoded = Json.decodeFromString(KotlinInstantSerializer, json)
val json = Json.encodeToString(InstantSerializer, instant)
val decoded = Json.decodeFromString(InstantSerializer, json)
assertEquals(instant, decoded)
}