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:
@@ -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
|
||||
}
|
||||
|
||||
+30
@@ -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
|
||||
}
|
||||
}
|
||||
-32
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
-25
@@ -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())
|
||||
}
|
||||
}
|
||||
+21
-61
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user