From 4f7a2fe7a41de6f5623ace594f10f47de8b994e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Ma=C5=A1a?= Date: Fri, 8 Sep 2023 12:03:56 +0200 Subject: [PATCH] Make identifiers used in Screen constructor serializable --- .../wfrp_master/common/core/domain/Identifier.kt | 6 ++++++ .../common/core/domain/identifiers/CharacterId.kt | 4 ++-- .../common/core/domain/identifiers/EncounterId.kt | 4 ++-- .../wfrp_master/common/core/domain/party/PartyId.kt | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/Identifier.kt diff --git a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/Identifier.kt b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/Identifier.kt new file mode 100644 index 000000000..98ce164a7 --- /dev/null +++ b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/Identifier.kt @@ -0,0 +1,6 @@ +package cz.frantisekmasa.wfrp_master.common.core.domain + +import dev.icerock.moko.parcelize.Parcelable +import java.io.Serializable + +interface Identifier : Parcelable, Serializable diff --git a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/CharacterId.kt b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/CharacterId.kt index bb39e2142..98abd7d8d 100644 --- a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/CharacterId.kt +++ b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/CharacterId.kt @@ -1,8 +1,8 @@ package cz.frantisekmasa.wfrp_master.common.core.domain.identifiers +import cz.frantisekmasa.wfrp_master.common.core.domain.Identifier import cz.frantisekmasa.wfrp_master.common.core.domain.party.PartyId -import dev.icerock.moko.parcelize.Parcelable import dev.icerock.moko.parcelize.Parcelize @Parcelize -data class CharacterId(val partyId: PartyId, val id: String) : Parcelable +data class CharacterId(val partyId: PartyId, val id: String) : Identifier diff --git a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/EncounterId.kt b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/EncounterId.kt index 45760af10..30a5b28f2 100644 --- a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/EncounterId.kt +++ b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/identifiers/EncounterId.kt @@ -1,8 +1,8 @@ package cz.frantisekmasa.wfrp_master.common.core.domain.identifiers import androidx.compose.runtime.Immutable +import cz.frantisekmasa.wfrp_master.common.core.domain.Identifier import cz.frantisekmasa.wfrp_master.common.core.domain.party.PartyId -import dev.icerock.moko.parcelize.Parcelable import dev.icerock.moko.parcelize.Parcelize import kotlinx.serialization.Contextual import kotlinx.serialization.Serializable @@ -14,4 +14,4 @@ import java.util.UUID data class EncounterId( val partyId: PartyId, @Contextual val encounterId: UUID, -) : Parcelable +) : Identifier diff --git a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/party/PartyId.kt b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/party/PartyId.kt index 9ca85cb61..35d142d73 100644 --- a/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/party/PartyId.kt +++ b/common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/core/domain/party/PartyId.kt @@ -3,7 +3,7 @@ package cz.frantisekmasa.wfrp_master.common.core.domain.party import androidx.compose.runtime.Immutable import com.benasher44.uuid.Uuid import com.benasher44.uuid.uuid4 -import dev.icerock.moko.parcelize.Parcelable +import cz.frantisekmasa.wfrp_master.common.core.domain.Identifier import dev.icerock.moko.parcelize.Parcelize import kotlinx.serialization.Contextual import kotlinx.serialization.Serializable @@ -13,7 +13,7 @@ import kotlin.jvm.JvmInline @Serializable @Parcelize @Immutable -value class PartyId(@Contextual private val value: Uuid) : Parcelable { +value class PartyId(@Contextual private val value: Uuid) : Identifier { companion object { fun generate(): PartyId = PartyId(uuid4()) }