meldestelle/shared/src/commonMain/kotlin/at/mocode/model/entitaeten/Veranstaltung.kt

43 lines
1.6 KiB
Kotlin

package at.mocode.model.entitaeten
import at.mocode.model.enums.VeranstalterTyp
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
@Serializable
data class Veranstaltung(
@Serializable(with = UuidSerializer::class) // Beispiel für Serializer, falls nötig
val id: Uuid = uuid4(),
var name: String,
@Serializable(with = KotlinLocalDateSerializer::class) // Beispiel für Serializer
var datumVon: LocalDate,
@Serializable(with = KotlinLocalDateSerializer::class)
var datumBis: LocalDate,
var veranstalterName: String,
var veranstalterOepsNummer: String?,
var veranstalterTyp: VeranstalterTyp = VeranstalterTyp.UNBEKANNT,
var veranstaltungsortName: String,
var veranstaltungsortAdresse: String,
var kontaktpersonName: String?,
var kontaktTelefon: String?,
var kontaktEmail: String?,
var webseite: String?,
var logoUrl: String?,
var anfahrtsplanInfo: String?,
var sponsorInfos: List<String> = emptyList(),
var dsgvoText: String?,
var haftungsText: String?,
var sonstigeBesondereBestimmungen: String?,
@Serializable(with = KotlinInstantSerializer::class) // Beispiel für Serializer
val createdAt: Instant = Clock.System.now(),
@Serializable(with = KotlinInstantSerializer::class)
var updatedAt: Instant = Clock.System.now()
)