mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-04 15:49:41 +00:00
Merge branch '25.0.0' into api-v9.0-gifts
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
# TelegramBotAPI changelog
|
# TelegramBotAPI changelog
|
||||||
|
|
||||||
|
## 25.0.0
|
||||||
|
|
||||||
## 24.0.2
|
## 24.0.2
|
||||||
|
|
||||||
* `Version`:
|
* `Version`:
|
||||||
|
@@ -6,4 +6,4 @@ kotlin.incremental=true
|
|||||||
kotlin.incremental.js=true
|
kotlin.incremental.js=true
|
||||||
|
|
||||||
library_group=dev.inmo
|
library_group=dev.inmo
|
||||||
library_version=24.0.2
|
library_version=25.0.0
|
||||||
|
@@ -0,0 +1,20 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerateVariations
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerationVariant
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.DeleteBusinessMessages
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.chat.Chat
|
||||||
|
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||||
|
|
||||||
|
@GenerateVariations
|
||||||
|
public suspend fun TelegramBot.deleteBusinessMessages(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
@GenerationVariant(List::class, "messages.map { it.messageId }", "messages", AccessibleMessage::class)
|
||||||
|
messageIds: List<MessageId>
|
||||||
|
): Boolean = execute(
|
||||||
|
DeleteBusinessMessages(businessConnectionId, messageIds)
|
||||||
|
)
|
@@ -0,0 +1,16 @@
|
|||||||
|
// THIS CODE HAVE BEEN GENERATED AUTOMATICALLY
|
||||||
|
// TO REGENERATE IT JUST DELETE FILE
|
||||||
|
// ORIGINAL FILE: DeleteBusinessMessages.kt
|
||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||||
|
import kotlin.Boolean
|
||||||
|
import kotlin.collections.List
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.deleteBusinessMessages(businessConnectionId: BusinessConnectionId,
|
||||||
|
messages: List<AccessibleMessage>): Boolean = deleteBusinessMessages(
|
||||||
|
businessConnectionId = businessConnectionId, messageIds = with(messages) {messages.map {
|
||||||
|
it.messageId }}
|
||||||
|
)
|
@@ -0,0 +1,12 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.GetBusinessAccountStarBalance
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.getBusinessAccountStarBalance(
|
||||||
|
businessConnectionId: BusinessConnectionId
|
||||||
|
): StarAmount = execute(
|
||||||
|
GetBusinessAccountStarBalance(businessConnectionId)
|
||||||
|
)
|
@@ -0,0 +1,27 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerateVariations
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerationVariant
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.ReadBusinessMessage
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.chat.Chat
|
||||||
|
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||||
|
import dev.inmo.tgbotapi.types.toChatId
|
||||||
|
|
||||||
|
@GenerateVariations
|
||||||
|
public suspend fun TelegramBot.readBusinessMessage(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
@GenerationVariant(Chat::class, "chat.id.toChatId()", "chat")
|
||||||
|
chatId: ChatId,
|
||||||
|
messageId: MessageId
|
||||||
|
): Boolean = execute(
|
||||||
|
ReadBusinessMessage(businessConnectionId, chatId, messageId)
|
||||||
|
)
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.readBusinessMessage(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
message: AccessibleMessage
|
||||||
|
): Boolean = readBusinessMessage(businessConnectionId, message.chat.id.toChatId(), message.messageId)
|
@@ -0,0 +1,20 @@
|
|||||||
|
// THIS CODE HAVE BEEN GENERATED AUTOMATICALLY
|
||||||
|
// TO REGENERATE IT JUST DELETE FILE
|
||||||
|
// ORIGINAL FILE: ReadBusinessMessage.kt
|
||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chat.Chat
|
||||||
|
import dev.inmo.tgbotapi.types.toChatId
|
||||||
|
import kotlin.Boolean
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.readBusinessMessage(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
chat: Chat,
|
||||||
|
messageId: MessageId,
|
||||||
|
): Boolean = readBusinessMessage(
|
||||||
|
businessConnectionId = businessConnectionId, chatId = with(chat) {chat.id.toChatId()}, messageId
|
||||||
|
= messageId
|
||||||
|
)
|
@@ -0,0 +1,11 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.RemoveBusinessAccountProfilePhoto
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.removeBusinessAccountProfilePhoto(
|
||||||
|
businessConnectionId: BusinessConnectionId
|
||||||
|
): Boolean = execute(
|
||||||
|
RemoveBusinessAccountProfilePhoto(businessConnectionId)
|
||||||
|
)
|
@@ -0,0 +1,12 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.SetBusinessAccountBio
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.setBusinessAccountBio(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
bio: String
|
||||||
|
): Boolean = execute(
|
||||||
|
SetBusinessAccountBio(businessConnectionId, bio)
|
||||||
|
)
|
@@ -0,0 +1,13 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.SetBusinessAccountName
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.setBusinessAccountName(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
firstName: String,
|
||||||
|
lastName: String? = null
|
||||||
|
): Boolean = execute(
|
||||||
|
SetBusinessAccountName(businessConnectionId, firstName, lastName)
|
||||||
|
)
|
@@ -0,0 +1,14 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.SetBusinessAccountProfilePhoto
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.setBusinessAccountProfilePhoto(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
photo: InputProfilePhoto,
|
||||||
|
isPublic: Boolean = false
|
||||||
|
): Boolean = execute(
|
||||||
|
SetBusinessAccountProfilePhoto(businessConnectionId, photo, isPublic)
|
||||||
|
)
|
@@ -0,0 +1,17 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerateVariations
|
||||||
|
import dev.inmo.micro_utils.ksp.variations.GenerationVariant
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.SetBusinessAccountUsername
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
|
||||||
|
@GenerateVariations
|
||||||
|
public suspend fun TelegramBot.setBusinessAccountUsername(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
@GenerationVariant(String::class, "Username(username)", "username")
|
||||||
|
username: Username
|
||||||
|
): Boolean = execute(
|
||||||
|
SetBusinessAccountUsername(businessConnectionId, username)
|
||||||
|
)
|
@@ -0,0 +1,16 @@
|
|||||||
|
// THIS CODE HAVE BEEN GENERATED AUTOMATICALLY
|
||||||
|
// TO REGENERATE IT JUST DELETE FILE
|
||||||
|
// ORIGINAL FILE: SetBusinessAccountUsername.kt
|
||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import kotlin.Boolean
|
||||||
|
import kotlin.String
|
||||||
|
|
||||||
|
public suspend
|
||||||
|
fun TelegramBot.setBusinessAccountUsername(businessConnectionId: BusinessConnectionId,
|
||||||
|
username: String): Boolean = setBusinessAccountUsername(
|
||||||
|
businessConnectionId = businessConnectionId, username = with(username) { Username(username) }
|
||||||
|
)
|
@@ -0,0 +1,13 @@
|
|||||||
|
package dev.inmo.tgbotapi.extensions.api.business
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.requests.business_connection.TransferBusinessAccountStarBalance
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
|
||||||
|
public suspend fun TelegramBot.transferBusinessAccountStarBalance(
|
||||||
|
businessConnectionId: BusinessConnectionId,
|
||||||
|
amount: Int
|
||||||
|
): Boolean = execute(
|
||||||
|
TransferBusinessAccountStarBalance(businessConnectionId, amount)
|
||||||
|
)
|
@@ -0,0 +1,13 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.abstracts
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.abstracts.types.WithBusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
|
||||||
|
interface BusinessRequest<T: Any> : Request<T>, WithBusinessConnectionId {
|
||||||
|
interface Simple<T : Any> : BusinessRequest<T>, SimpleRequest<T>
|
||||||
|
interface Multipart<T : Any> : BusinessRequest<T>, MultipartRequest.Common<T>, SimpleRequest<T> {
|
||||||
|
override val data: SimpleRequest<T>
|
||||||
|
get() = this
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,27 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class DeleteBusinessMessages(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(messageIdsField)
|
||||||
|
val messagesIds: List<MessageId>
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "deleteBusinessMessages"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class GetBusinessAccountStarBalance(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
) : BusinessRequest.Simple<StarAmount> {
|
||||||
|
override fun method(): String = "getBusinessAccountStarBalance"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<StarAmount>
|
||||||
|
get() = StarAmount.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,62 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.types.DoubleSeconds
|
||||||
|
import dev.inmo.tgbotapi.types.Seconds
|
||||||
|
import dev.inmo.tgbotapi.types.StickerFormat
|
||||||
|
import dev.inmo.tgbotapi.types.animationField
|
||||||
|
import dev.inmo.tgbotapi.types.mainFrameTimestampField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.utils.deserializeWithRaw
|
||||||
|
import kotlinx.serialization.EncodeDefault
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.encoding.Encoder
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
sealed interface InputProfilePhoto {
|
||||||
|
val type: String
|
||||||
|
val mediaPair: Pair<String, MultipartFile>
|
||||||
|
@Serializable
|
||||||
|
data class Static(
|
||||||
|
@SerialName(photoField)
|
||||||
|
val photo: MultipartFile
|
||||||
|
) : InputProfilePhoto {
|
||||||
|
override val mediaPair: Pair<String, MultipartFile>
|
||||||
|
get() = photoField to photo
|
||||||
|
@EncodeDefault
|
||||||
|
override val type: String = "static"
|
||||||
|
}
|
||||||
|
@Serializable
|
||||||
|
data class Animated(
|
||||||
|
@SerialName(animationField)
|
||||||
|
val animation: MultipartFile,
|
||||||
|
@SerialName(mainFrameTimestampField)
|
||||||
|
val mainFrameTimestamp: DoubleSeconds? = null
|
||||||
|
) : InputProfilePhoto {
|
||||||
|
override val mediaPair: Pair<String, MultipartFile>
|
||||||
|
get() = animationField to animation
|
||||||
|
@EncodeDefault
|
||||||
|
override val type: String = "animated"
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object : KSerializer<InputProfilePhoto> {
|
||||||
|
override val descriptor: SerialDescriptor
|
||||||
|
get() = JsonObject.serializer().descriptor
|
||||||
|
|
||||||
|
override fun deserialize(decoder: Decoder): InputProfilePhoto {
|
||||||
|
error("Deserialization is not supported yet")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun serialize(encoder: Encoder, value: InputProfilePhoto) {
|
||||||
|
when (value) {
|
||||||
|
is Animated -> Animated.serializer().serialize(encoder, value)
|
||||||
|
is Static -> Static.serializer().serialize(encoder, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,33 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class ReadBusinessMessage(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(chatIdField)
|
||||||
|
val chatId: ChatId,
|
||||||
|
@SerialName(messageIdField)
|
||||||
|
val messageId: MessageId
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "readBusinessMessage"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,39 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.isPublicField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class RemoveBusinessAccountProfilePhoto(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(isPublicField)
|
||||||
|
val isPublic: Boolean = false
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "removeBusinessAccountProfilePhoto"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,37 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountBio(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(bioField)
|
||||||
|
val bio: String
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountBio"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountName(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(firstNameField)
|
||||||
|
val firstName: String,
|
||||||
|
@SerialName(lastNameField)
|
||||||
|
val lastName: String? = null
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountName"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,45 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.isPublicField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountProfilePhoto(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(photoField)
|
||||||
|
val photo: InputProfilePhoto,
|
||||||
|
@SerialName(isPublicField)
|
||||||
|
val isPublic: Boolean = false
|
||||||
|
) : BusinessRequest.Multipart<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountProfilePhoto"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
|
||||||
|
override val mediaMap: Map<String, MultipartFile> = mapOf(
|
||||||
|
photo.mediaPair
|
||||||
|
)
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountUsername(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(usernameField)
|
||||||
|
val username: Username
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountUsername"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,39 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
import dev.inmo.tgbotapi.types.starCountField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class TransferBusinessAccountStarBalance(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(starCountField)
|
||||||
|
val starCount: Int
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "transferBusinessAccountStars"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -20,6 +20,7 @@ typealias GooglePlaceType = String
|
|||||||
typealias MembersLimit = Int
|
typealias MembersLimit = Int
|
||||||
|
|
||||||
typealias Seconds = Int
|
typealias Seconds = Int
|
||||||
|
typealias DoubleSeconds = Double
|
||||||
typealias MilliSeconds = Long
|
typealias MilliSeconds = Long
|
||||||
typealias LongSeconds = Long
|
typealias LongSeconds = Long
|
||||||
typealias UnixTimeStamp = LongSeconds
|
typealias UnixTimeStamp = LongSeconds
|
||||||
@@ -95,7 +96,7 @@ val openPeriodPollSecondsLimit = 5 .. 600
|
|||||||
val membersLimit = 1 .. 99999
|
val membersLimit = 1 .. 99999
|
||||||
|
|
||||||
val suggestedTipAmountsLimit = 1 .. 4
|
val suggestedTipAmountsLimit = 1 .. 4
|
||||||
|
git
|
||||||
val inputFieldPlaceholderLimit = 1 .. 64
|
val inputFieldPlaceholderLimit = 1 .. 64
|
||||||
|
|
||||||
val emojisInStickerLimit = 1 .. 20
|
val emojisInStickerLimit = 1 .. 20
|
||||||
@@ -187,6 +188,19 @@ const val hasMainWebAppField = "has_main_web_app"
|
|||||||
const val canJoinGroupsField = "can_join_groups"
|
const val canJoinGroupsField = "can_join_groups"
|
||||||
const val canReadAllGroupMessagesField = "can_read_all_group_messages"
|
const val canReadAllGroupMessagesField = "can_read_all_group_messages"
|
||||||
const val canReplyField = "can_reply"
|
const val canReplyField = "can_reply"
|
||||||
|
const val canReadMessagesField = "can_read_messages"
|
||||||
|
const val canDeleteOutgoingMessagesField = "can_delete_outgoing_messages"
|
||||||
|
const val canDeleteAllMessagesField = "can_delete_all_messages"
|
||||||
|
const val canEditNameField = "can_edit_name"
|
||||||
|
const val canEditBioField = "can_edit_bio"
|
||||||
|
const val canEditProfilePhotoField = "can_edit_profile_photo"
|
||||||
|
const val canEditUsernameField = "can_edit_username"
|
||||||
|
const val canChangeGiftSettingsField = "can_change_gift_settings"
|
||||||
|
const val canViewGiftsAndStarsField = "can_view_gifts_and_stars"
|
||||||
|
const val canConvertGiftsToStarsField = "can_convert_gifts_to_stars"
|
||||||
|
const val canTransferAndUpgradeGiftsField = "can_transfer_and_upgrade_gifts"
|
||||||
|
const val canTransferStarsField = "can_transfer_stars"
|
||||||
|
const val canManageStoriesField = "can_manage_stories"
|
||||||
const val supportInlineQueriesField = "supports_inline_queries"
|
const val supportInlineQueriesField = "supports_inline_queries"
|
||||||
const val canConnectToBusinessField = "can_connect_to_business"
|
const val canConnectToBusinessField = "can_connect_to_business"
|
||||||
const val textEntitiesField = "text_entities"
|
const val textEntitiesField = "text_entities"
|
||||||
@@ -494,6 +508,8 @@ const val subscriptionPeriodField = "subscription_period"
|
|||||||
const val subscriptionPriceField = "subscription_price"
|
const val subscriptionPriceField = "subscription_price"
|
||||||
const val copyTextField = "copy_text"
|
const val copyTextField = "copy_text"
|
||||||
|
|
||||||
|
const val isPublicField = "is_public"
|
||||||
|
|
||||||
const val giftField = "gift"
|
const val giftField = "gift"
|
||||||
const val giftsField = "gifts"
|
const val giftsField = "gifts"
|
||||||
const val rarityPerMilleField = "rarity_per_mille"
|
const val rarityPerMilleField = "rarity_per_mille"
|
||||||
@@ -597,6 +613,8 @@ const val voiceField = "voice"
|
|||||||
const val videoNoteField = "video_note"
|
const val videoNoteField = "video_note"
|
||||||
const val mediaField = "media"
|
const val mediaField = "media"
|
||||||
|
|
||||||
|
const val mainFrameTimestampField = "main_frame_timestamp"
|
||||||
|
|
||||||
const val disableEditMessageField = "disable_edit_message"
|
const val disableEditMessageField = "disable_edit_message"
|
||||||
const val scoreField = "score"
|
const val scoreField = "score"
|
||||||
const val forceField = "force"
|
const val forceField = "force"
|
||||||
|
@@ -0,0 +1,50 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.types.canChangeGiftSettingsField
|
||||||
|
import dev.inmo.tgbotapi.types.canConvertGiftsToStarsField
|
||||||
|
import dev.inmo.tgbotapi.types.canDeleteAllMessagesField
|
||||||
|
import dev.inmo.tgbotapi.types.canDeleteOutgoingMessagesField
|
||||||
|
import dev.inmo.tgbotapi.types.canEditBioField
|
||||||
|
import dev.inmo.tgbotapi.types.canEditNameField
|
||||||
|
import dev.inmo.tgbotapi.types.canEditProfilePhotoField
|
||||||
|
import dev.inmo.tgbotapi.types.canEditUsernameField
|
||||||
|
import dev.inmo.tgbotapi.types.canManageStoriesField
|
||||||
|
import dev.inmo.tgbotapi.types.canReadMessagesField
|
||||||
|
import dev.inmo.tgbotapi.types.canReplyField
|
||||||
|
import dev.inmo.tgbotapi.types.canTransferAndUpgradeGiftsField
|
||||||
|
import dev.inmo.tgbotapi.types.canTransferStarsField
|
||||||
|
import dev.inmo.tgbotapi.types.canViewGiftsAndStarsField
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class BusinessBotRights(
|
||||||
|
@SerialName(canReplyField)
|
||||||
|
val canReply: Boolean = false,
|
||||||
|
@SerialName(canReadMessagesField)
|
||||||
|
val canMarkMessagesAsRead: Boolean = false,
|
||||||
|
@SerialName(canDeleteOutgoingMessagesField)
|
||||||
|
val canDeleteOutgoingMessages: Boolean = false,
|
||||||
|
@SerialName(canDeleteAllMessagesField)
|
||||||
|
val canDeleteAllMessages: Boolean = false,
|
||||||
|
@SerialName(canEditNameField)
|
||||||
|
val canEditName: Boolean = false,
|
||||||
|
@SerialName(canEditBioField)
|
||||||
|
val canEditBio: Boolean = false,
|
||||||
|
@SerialName(canEditProfilePhotoField)
|
||||||
|
val canEditProfilePhoto: Boolean = false,
|
||||||
|
@SerialName(canEditUsernameField)
|
||||||
|
val canEditUsername: Boolean = false,
|
||||||
|
@SerialName(canChangeGiftSettingsField)
|
||||||
|
val canChangeGiftSettings: Boolean = false,
|
||||||
|
@SerialName(canViewGiftsAndStarsField)
|
||||||
|
val canViewGiftsAndStars: Boolean = false,
|
||||||
|
@SerialName(canConvertGiftsToStarsField)
|
||||||
|
val canConvertGiftsToStars: Boolean = false,
|
||||||
|
@SerialName(canTransferAndUpgradeGiftsField)
|
||||||
|
val canTransferAndUpgradeGifts: Boolean = false,
|
||||||
|
@SerialName(canTransferStarsField)
|
||||||
|
val canTransferStars: Boolean = false,
|
||||||
|
@SerialName(canManageStoriesField)
|
||||||
|
val canManageStories: Boolean = false,
|
||||||
|
)
|
@@ -16,7 +16,9 @@ sealed interface BusinessConnection : WithBusinessConnectionId {
|
|||||||
val user: PreviewUser
|
val user: PreviewUser
|
||||||
val userChatId: ChatId
|
val userChatId: ChatId
|
||||||
val date: TelegramDate
|
val date: TelegramDate
|
||||||
|
val rights: BusinessBotRights
|
||||||
val canReply: Boolean
|
val canReply: Boolean
|
||||||
|
get() = rights.canReply
|
||||||
val isEnabled: Boolean
|
val isEnabled: Boolean
|
||||||
|
|
||||||
override val businessConnectionId: BusinessConnectionId
|
override val businessConnectionId: BusinessConnectionId
|
||||||
@@ -32,8 +34,8 @@ sealed interface BusinessConnection : WithBusinessConnectionId {
|
|||||||
override val userChatId: ChatId,
|
override val userChatId: ChatId,
|
||||||
@SerialName(dateField)
|
@SerialName(dateField)
|
||||||
override val date: TelegramDate,
|
override val date: TelegramDate,
|
||||||
@SerialName(canReplyField)
|
@SerialName(rightsField)
|
||||||
override val canReply: Boolean,
|
override val rights: BusinessBotRights = BusinessBotRights(),
|
||||||
) : BusinessConnection {
|
) : BusinessConnection {
|
||||||
@EncodeDefault
|
@EncodeDefault
|
||||||
override val isEnabled: Boolean = true
|
override val isEnabled: Boolean = true
|
||||||
@@ -49,8 +51,8 @@ sealed interface BusinessConnection : WithBusinessConnectionId {
|
|||||||
override val userChatId: ChatId,
|
override val userChatId: ChatId,
|
||||||
@SerialName(dateField)
|
@SerialName(dateField)
|
||||||
override val date: TelegramDate,
|
override val date: TelegramDate,
|
||||||
@SerialName(canReplyField)
|
@SerialName(rightsField)
|
||||||
override val canReply: Boolean,
|
override val rights: BusinessBotRights = BusinessBotRights(),
|
||||||
) : BusinessConnection {
|
) : BusinessConnection {
|
||||||
@EncodeDefault
|
@EncodeDefault
|
||||||
override val isEnabled: Boolean = false
|
override val isEnabled: Boolean = false
|
||||||
|
@@ -15,8 +15,8 @@ internal data class RawBusinessConnection(
|
|||||||
val userChatId: ChatId,
|
val userChatId: ChatId,
|
||||||
@SerialName(dateField)
|
@SerialName(dateField)
|
||||||
val date: TelegramDate,
|
val date: TelegramDate,
|
||||||
@SerialName(canReplyField)
|
@SerialName(rightsField)
|
||||||
val canReply: Boolean,
|
val rights: BusinessBotRights = BusinessBotRights(),
|
||||||
@SerialName(isEnabledField)
|
@SerialName(isEnabledField)
|
||||||
val isEnabled: Boolean
|
val isEnabled: Boolean
|
||||||
) {
|
) {
|
||||||
@@ -27,14 +27,14 @@ internal data class RawBusinessConnection(
|
|||||||
user = user,
|
user = user,
|
||||||
userChatId = userChatId,
|
userChatId = userChatId,
|
||||||
date = date,
|
date = date,
|
||||||
canReply = canReply
|
rights = rights
|
||||||
)
|
)
|
||||||
false -> BusinessConnection.Disabled(
|
false -> BusinessConnection.Disabled(
|
||||||
id = id,
|
id = id,
|
||||||
user = user,
|
user = user,
|
||||||
userChatId = userChatId,
|
userChatId = userChatId,
|
||||||
date = date,
|
date = date,
|
||||||
canReply = canReply
|
rights = rights
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ internal data class RawBusinessConnection(
|
|||||||
user = businessConnection.user,
|
user = businessConnection.user,
|
||||||
userChatId = businessConnection.userChatId,
|
userChatId = businessConnection.userChatId,
|
||||||
date = businessConnection.date,
|
date = businessConnection.date,
|
||||||
canReply = businessConnection.canReply,
|
rights = businessConnection.rights,
|
||||||
isEnabled = businessConnection.isEnabled,
|
isEnabled = businessConnection.isEnabled,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,14 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.payments.stars
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.types.amountField
|
||||||
|
import dev.inmo.tgbotapi.types.nanostarAmountField
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class StarAmount(
|
||||||
|
@SerialName(amountField)
|
||||||
|
val amount: Long,
|
||||||
|
@SerialName(nanostarAmountField)
|
||||||
|
val nanostarAmount: Long = 0,
|
||||||
|
)
|
@@ -0,0 +1,15 @@
|
|||||||
|
package dev.inmo.tgbotapi.utils
|
||||||
|
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.json.JsonDecoder
|
||||||
|
import kotlinx.serialization.json.JsonElement
|
||||||
|
|
||||||
|
fun <T> Decoder.deserializeWithRaw(serializer: KSerializer<T>): Pair<T, JsonElement?> {
|
||||||
|
return if (this is JsonDecoder) {
|
||||||
|
val json = decodeJsonElement()
|
||||||
|
this.json.decodeFromJsonElement(serializer, json) to json
|
||||||
|
} else {
|
||||||
|
serializer.deserialize(this) to null
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user