package dev.inmo.tgbotapi.types.message.content import dev.inmo.tgbotapi.requests.abstracts.Request import dev.inmo.tgbotapi.requests.send.media.SendVoice import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.media.TelegramMediaAudio import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.abstracts.WithOptionalQuoteInfo import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.files.VoiceFile import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import kotlinx.serialization.Serializable @Serializable data class VoiceContent( override val media: VoiceFile, override val text: String? = null, override val textSources: TextSourcesList = emptyList(), override val quote: TextQuote? = null ) : TextedMediaContent { override fun createResend( chatId: ChatIdentifier, messageThreadId: MessageThreadId?, businessConnectionId: BusinessConnectionId?, disableNotification: Boolean, protectContent: Boolean, replyParameters: ReplyParameters?, replyMarkup: KeyboardMarkup? ): Request> = SendVoice( chatId = chatId, voice = media.fileId, entities = textSources, threadId = messageThreadId, businessConnectionId = businessConnectionId, duration = media.duration, disableNotification = disableNotification, protectContent = protectContent, replyParameters = replyParameters, replyMarkup = replyMarkup ) override fun asTelegramMedia(): TelegramMediaAudio = TelegramMediaAudio( media.fileId, textSources, media.duration ) }