35 lines
982 B
Kotlin
35 lines
982 B
Kotlin
package dev.inmo.tgbotapi.types.games
|
|
|
|
import dev.inmo.tgbotapi.types.*
|
|
import dev.inmo.tgbotapi.types.message.RawMessageEntities
|
|
import dev.inmo.tgbotapi.types.message.asTextSources
|
|
import dev.inmo.tgbotapi.types.files.*
|
|
import kotlinx.serialization.*
|
|
|
|
@Serializable
|
|
internal data class RawGame(
|
|
@SerialName(titleField)
|
|
private val title: String,
|
|
@SerialName(descriptionField)
|
|
private val description: String,
|
|
@Serializable(PhotoSerializer::class)
|
|
@SerialName(photoField)
|
|
private val photo: Photo,
|
|
@SerialName(textField)
|
|
private val text: String? = null,
|
|
@SerialName(textEntitiesField)
|
|
private val textEntities: RawMessageEntities = emptyList(),
|
|
@SerialName(animationField)
|
|
private val animation: AnimationFile? = null
|
|
) {
|
|
@Transient
|
|
val asGame = Game(
|
|
title,
|
|
description,
|
|
photo,
|
|
text,
|
|
text ?.let { _ -> textEntities.asTextSources(text) } ?: emptyList(),
|
|
animation
|
|
)
|
|
}
|