package dev.inmo.tgbotapi.requests.edit.text import dev.inmo.tgbotapi.requests.edit.abstracts.* import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.message.parseModeField import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.message.* import dev.inmo.tgbotapi.types.message.RawMessageEntity import dev.inmo.tgbotapi.types.message.toRawMessageEntities import dev.inmo.tgbotapi.utils.extensions.makeString import kotlinx.serialization.* fun EditInlineMessageText( inlineMessageId: InlineMessageId, text: String, parseMode: ParseMode? = null, linkPreviewOptions: LinkPreviewOptions? = null, replyMarkup: InlineKeyboardMarkup? = null ) = EditInlineMessageText( inlineMessageId, text, parseMode, null, linkPreviewOptions, replyMarkup ) fun EditInlineMessageText( inlineMessageId: InlineMessageId, entities: TextSourcesList, linkPreviewOptions: LinkPreviewOptions? = null, replyMarkup: InlineKeyboardMarkup? = null ) = EditInlineMessageText( inlineMessageId, entities.makeString(), null, entities.toRawMessageEntities(), linkPreviewOptions, replyMarkup ) @Serializable data class EditInlineMessageText internal constructor( @SerialName(inlineMessageIdField) override val inlineMessageId: InlineMessageId, @SerialName(textField) override val text: String, @SerialName(parseModeField) override val parseMode: ParseMode? = null, @SerialName(entitiesField) private val rawEntities: List? = null, @SerialName(linkPreviewOptionsField) override val linkPreviewOptions: LinkPreviewOptions? = null, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditTextChatMessage, EditReplyMessage, EditLinkPreviewOptionsContainer { override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text) } override fun method(): String = editMessageTextMethod override val requestSerializer: SerializationStrategy<*> get() = serializer() }