1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-11-15 19:40:19 +00:00

add support of getBusinessAccountGifts

This commit is contained in:
2025-05-10 10:57:33 +06:00
parent d2395e836c
commit d36b11c002
6 changed files with 263 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
package dev.inmo.tgbotapi.requests.business_connection
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.businessConnectionIdField
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.excludeUnsavedField
import dev.inmo.tgbotapi.types.excludeSavedField
import dev.inmo.tgbotapi.types.excludeUnlimitedField
import dev.inmo.tgbotapi.types.excludeLimitedField
import dev.inmo.tgbotapi.types.excludeUniqueField
import dev.inmo.tgbotapi.types.sortByPriceField
import dev.inmo.tgbotapi.types.offsetField
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
@Serializable
data class GetBusinessAccountGifts(
@SerialName(businessConnectionIdField)
override val businessConnectionId: BusinessConnectionId,
@SerialName(excludeUnsavedField)
val excludeUnsaved: Boolean = false,
@SerialName(excludeSavedField)
val excludeSaved: Boolean = false,
@SerialName(excludeUnlimitedField)
val excludeUnlimited: Boolean = false,
@SerialName(excludeLimitedField)
val excludeLimited: Boolean = false,
@SerialName(excludeUniqueField)
val excludeUnique: Boolean = false,
@SerialName(sortByPriceField)
val sortByPrice: Boolean = false,
@SerialName(offsetField)
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : BusinessRequest.Simple<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> {
override fun method(): String = "getBusinessAccountGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.ReceivedInBusinessAccount.serializer())
}
}

View File

@@ -723,6 +723,13 @@ const val limitedGiftsField = "limited_gifts"
const val uniqueGiftsField = "unique_gifts"
const val premiumSubscriptionField = "premium_subscription"
const val excludeUnsavedField = "exclude_unsaved"
const val excludeSavedField = "exclude_saved"
const val excludeUnlimitedField = "exclude_unlimited"
const val excludeLimitedField = "exclude_limited"
const val excludeUniqueField = "exclude_unique"
const val sortByPriceField = "sort_by_price"
const val businessConnectionIdField = "business_connection_id"
const val businessIntroField = "business_intro"
const val businessLocationField = "business_location"

View File

@@ -0,0 +1,15 @@
package dev.inmo.tgbotapi.types
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class OwnedGifts<GiftType: GiftSentOrReceived>(
@SerialName(totalCountField)
val totalCount: Int,
@SerialName(giftsField)
val gifts: List<GiftType>,
@SerialName(nextOffsetField)
val nextOffset: String? = null
)