diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/Events.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/Events.kt index e16c31bf..12670315 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/Events.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/Events.kt @@ -30,7 +30,6 @@ enum class Events { CoverDownloaded, PersistContent, ProcessCompleted, - Unknown ; @@ -68,7 +67,7 @@ fun Events.toEventClass(): Class { Events.PersistContent -> PersistedContentEvent::class.java Events.ProcessCompleted -> MediaProcessCompletedEvent::class.java - else -> Event::class.java + else -> UnknownEvent::class.java } } @@ -121,7 +120,7 @@ object EventJson { // 🔥 Finn riktig klasse basert på eventType (som kommer eksternt fra databasen) val eventClass = eventType.toEventClass() - if (eventClass.simpleName == Event::class.java.simpleName || eventType == Events.Unknown) { + if (eventType == Events.Unknown || eventClass.simpleName == Event::class.java.simpleName) { val fallbackGson = GsonBuilder() .registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter()) .create() diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt index 08224e71..8005cc80 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt @@ -1,12 +1,20 @@ package no.iktdev.mediaprocessing.shared.common.contract.data import no.iktdev.eventi.data.EventImpl +import no.iktdev.eventi.data.EventMetadata import no.iktdev.mediaprocessing.shared.common.contract.Events abstract class Event: EventImpl() { abstract override val eventType: Events } +data class UnknownEvent( + override val metadata: EventMetadata, + override val eventType: Events = Events.Unknown, + override val data: Any? = null, +): Event() { +} + inline fun Event.az(): T? { return if (this !is T) { System.err.println("${this::class.java.name} is not a type of ${T::class.java.name}")