tgbotapi/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/RawGame.kt

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
)
}