2020-10-04 11:06:30 +00:00
|
|
|
package dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons
|
2018-12-26 08:07:24 +00:00
|
|
|
|
2020-10-04 11:06:30 +00:00
|
|
|
import dev.inmo.tgbotapi.types.*
|
|
|
|
import dev.inmo.tgbotapi.types.games.CallbackGame
|
2019-08-12 09:46:31 +00:00
|
|
|
import kotlinx.serialization.SerialName
|
|
|
|
import kotlinx.serialization.Serializable
|
2020-04-13 05:20:39 +00:00
|
|
|
import kotlinx.serialization.json.JsonElement
|
2019-04-20 05:09:47 +00:00
|
|
|
|
|
|
|
@Serializable(InlineKeyboardButtonSerializer::class)
|
2019-06-02 14:02:12 +00:00
|
|
|
sealed class InlineKeyboardButton {
|
|
|
|
abstract val text: String
|
2019-04-20 05:09:47 +00:00
|
|
|
}
|
|
|
|
|
2020-04-13 05:11:09 +00:00
|
|
|
@Serializable
|
|
|
|
data class UnknownInlineKeyboardButton internal constructor(
|
|
|
|
override val text: String,
|
2020-04-13 05:20:39 +00:00
|
|
|
val rawData: JsonElement
|
2020-04-13 05:11:09 +00:00
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
2019-06-02 14:02:12 +00:00
|
|
|
@Serializable
|
|
|
|
data class PayInlineKeyboardButton(
|
|
|
|
override val text: String,
|
2019-06-02 14:10:04 +00:00
|
|
|
@SerialName(payField)
|
2019-06-02 14:02:12 +00:00
|
|
|
val pay: Boolean
|
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
|
|
|
@Serializable
|
|
|
|
data class CallbackDataInlineKeyboardButton(
|
|
|
|
@SerialName(textField)
|
|
|
|
override val text: String,
|
|
|
|
@SerialName(callbackDataField)
|
|
|
|
val callbackData: String
|
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
2020-04-12 19:30:04 +00:00
|
|
|
@Serializable
|
|
|
|
data class CallbackGameInlineKeyboardButton(
|
|
|
|
@SerialName(textField)
|
2020-04-22 08:11:46 +00:00
|
|
|
override val text: String
|
|
|
|
) : InlineKeyboardButton() {
|
2020-04-12 19:30:04 +00:00
|
|
|
@SerialName(callbackGameField)
|
2020-04-22 08:11:46 +00:00
|
|
|
private val callbackGame = CallbackGame
|
|
|
|
}
|
2020-04-12 19:30:04 +00:00
|
|
|
|
2019-06-02 14:02:12 +00:00
|
|
|
@Serializable
|
|
|
|
data class LoginURLInlineKeyboardButton(
|
|
|
|
override val text: String,
|
|
|
|
@SerialName(loginUrlField)
|
|
|
|
val loginUrl: LoginURL
|
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
|
|
|
@Serializable
|
|
|
|
data class SwitchInlineQueryCurrentChatInlineKeyboardButton(
|
|
|
|
override val text: String,
|
|
|
|
@SerialName(switchInlineQueryCurrentChatField)
|
|
|
|
val switchInlineQueryCurrentChat: String
|
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
|
|
|
@Serializable
|
|
|
|
data class SwitchInlineQueryInlineKeyboardButton(
|
|
|
|
override val text: String,
|
2019-06-02 14:10:04 +00:00
|
|
|
@SerialName(switchInlineQueryField)
|
2019-06-02 14:02:12 +00:00
|
|
|
val switchInlineQuery: String
|
|
|
|
) : InlineKeyboardButton()
|
|
|
|
|
|
|
|
@Serializable
|
|
|
|
data class URLInlineKeyboardButton(
|
|
|
|
override val text: String,
|
2019-06-02 14:10:04 +00:00
|
|
|
@SerialName(urlField)
|
2019-06-02 14:02:12 +00:00
|
|
|
val url: String
|
|
|
|
) : InlineKeyboardButton()
|