feat: add serializable data models with FlexibleStringSerializer for number coercion
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Account(
|
||||
val name: String,
|
||||
val label: String,
|
||||
)
|
||||
@@ -0,0 +1,9 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Convocation(
|
||||
val available: List<Player> = emptyList(),
|
||||
val staff: List<Staff> = emptyList(),
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Event(
|
||||
@SerialName("id_event")
|
||||
@Serializable(with = FlexibleStringSerializer::class)
|
||||
val idEvent: String = "",
|
||||
val agegroup: String = "",
|
||||
val name: String = "",
|
||||
val title: String = "",
|
||||
val opponent: String = "",
|
||||
val place: String = "",
|
||||
val start: String = "",
|
||||
val end: String = "",
|
||||
val color: String? = null,
|
||||
@SerialName("event") val eventType: String = "",
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class EventDetail(
|
||||
val title: String = "",
|
||||
val type: String = "",
|
||||
val place: String = "",
|
||||
@SerialName("time_start") val timeStart: String = "",
|
||||
@SerialName("time_end") val timeEnd: String = "",
|
||||
val convocation: Convocation = Convocation(),
|
||||
)
|
||||
@@ -0,0 +1,26 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
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
|
||||
import kotlinx.serialization.json.JsonDecoder
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
|
||||
object FlexibleStringSerializer : KSerializer<String> {
|
||||
override val descriptor: SerialDescriptor =
|
||||
PrimitiveSerialDescriptor("FlexibleString", PrimitiveKind.STRING)
|
||||
|
||||
override fun serialize(encoder: Encoder, value: String) {
|
||||
encoder.encodeString(value)
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): String {
|
||||
val jsonDecoder = decoder as? JsonDecoder
|
||||
?: throw SerializationException("FlexibleStringSerializer expects JsonDecoder")
|
||||
return jsonDecoder.decodeJsonElement().jsonPrimitive.content
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Player(
|
||||
val position: String? = null,
|
||||
@Serializable(with = FlexibleStringSerializer::class) val number: String? = null,
|
||||
val fname: String,
|
||||
val lname: String,
|
||||
val dob: String,
|
||||
)
|
||||
@@ -0,0 +1,10 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Staff(
|
||||
val role: String,
|
||||
val fname: String,
|
||||
val lname: String,
|
||||
)
|
||||
@@ -0,0 +1,8 @@
|
||||
package ch.parano.myice.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class UserInfo(
|
||||
val email: String = "",
|
||||
)
|
||||
Reference in New Issue
Block a user