From effd12711f5241f86fdc12ca8bfcda310aef38c1 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 10 May 2025 17:59:29 +0600 Subject: [PATCH] add support of transferGift --- tgbotapi.api/api/tgbotapi.api.api | 7 +++ .../extensions/api/business/TransferGift.kt | 43 +++++++++++++++++++ tgbotapi.core/api/tgbotapi.core.api | 38 ++++++++++++++++ .../business_connection/TransferGift.kt | 34 +++++++++++++++ .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 1 + 5 files changed, 123 insertions(+) create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/TransferGift.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/TransferGift.kt diff --git a/tgbotapi.api/api/tgbotapi.api.api b/tgbotapi.api/api/tgbotapi.api.api index 0184281f93..3afe9cbea2 100644 --- a/tgbotapi.api/api/tgbotapi.api.api +++ b/tgbotapi.api/api/tgbotapi.api.api @@ -398,6 +398,13 @@ public final class dev/inmo/tgbotapi/extensions/api/business/TransferBusinessAcc public static final fun transferBusinessAccountStarBalance-wC12z2M (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class dev/inmo/tgbotapi/extensions/api/business/TransferGiftKt { + public static final fun transferGift-cB4Rf94 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun transferGift-cB4Rf94$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun transferGift-gMFmPss (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/Gift$Regular;JLjava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun transferGift-gMFmPss$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/Gift$Regular;JLjava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + public final class dev/inmo/tgbotapi/extensions/api/business/UpgradeGiftKt { public static final fun convertGiftToStars-XzFA9qU (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/Gift$Regular;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun convertGiftToStars-XzFA9qU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/Gift$Regular;ZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/TransferGift.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/TransferGift.kt new file mode 100644 index 0000000000..db32879dce --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/TransferGift.kt @@ -0,0 +1,43 @@ +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.ConvertGiftToStars +import dev.inmo.tgbotapi.requests.business_connection.TransferGift +import dev.inmo.tgbotapi.requests.business_connection.UpgradeGift +import dev.inmo.tgbotapi.types.ChatId +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.GiftId +import dev.inmo.tgbotapi.types.businessConnectionIdField +import dev.inmo.tgbotapi.types.gifts.Gift +import dev.inmo.tgbotapi.types.keepOriginalDetailsField +import dev.inmo.tgbotapi.types.ownedGiftIdField +import dev.inmo.tgbotapi.types.starCountField +import kotlinx.serialization.SerialName + +public suspend fun TelegramBot.transferGift( + businessConnectionId: BusinessConnectionId, + ownedGiftId: GiftId, + newOwnerChatId: ChatId, + transferPaymentStarCount: Int? = null, +): Boolean = execute( + TransferGift( + businessConnectionId = businessConnectionId, + ownedGiftId = ownedGiftId, + newOwnerChatId = newOwnerChatId, + transferPaymentStarCount = transferPaymentStarCount + ) +) + +public suspend fun TelegramBot.transferGift( + businessConnectionId: BusinessConnectionId, + gift: Gift.Regular, + newOwnerChatId: ChatId, + transferPaymentStarCount: Int? = null, +): Boolean = transferGift( + businessConnectionId = businessConnectionId, + ownedGiftId = gift.id, + newOwnerChatId = newOwnerChatId, + transferPaymentStarCount = transferPaymentStarCount +) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 37d2ac36d3..633a6ea3c4 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -2345,6 +2345,43 @@ public final class dev/inmo/tgbotapi/requests/business_connection/TransferBusine public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/requests/business_connection/TransferGift : dev/inmo/tgbotapi/requests/abstracts/BusinessRequest$Simple { + public static final field Companion Ldev/inmo/tgbotapi/requests/business_connection/TransferGift$Companion; + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-T-_HSQI ()Ljava/lang/String; + public final fun component2-OyCYJok ()Ljava/lang/String; + public final fun component3-tHkBKVM ()J + public final fun component4 ()Ljava/lang/Integer; + public final fun copy-Ptl3q3s (Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;)Ldev/inmo/tgbotapi/requests/business_connection/TransferGift; + public static synthetic fun copy-Ptl3q3s$default (Ldev/inmo/tgbotapi/requests/business_connection/TransferGift;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Integer;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/business_connection/TransferGift; + public fun equals (Ljava/lang/Object;)Z + public fun getBusinessConnectionId-T-_HSQI ()Ljava/lang/String; + public synthetic fun getBusinessConnectionId-nXr5wdE ()Ljava/lang/String; + public final fun getNewOwnerChatId-tHkBKVM ()J + public final fun getOwnedGiftId-OyCYJok ()Ljava/lang/String; + public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy; + public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy; + public final fun getTransferPaymentStarCount ()Ljava/lang/Integer; + public fun hashCode ()I + public fun method ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/requests/business_connection/TransferGift$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/requests/business_connection/TransferGift$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/business_connection/TransferGift; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/business_connection/TransferGift;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/requests/business_connection/TransferGift$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/requests/business_connection/UpgradeGift : dev/inmo/tgbotapi/requests/abstracts/BusinessRequest$Simple { public static final field Companion Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift$Companion; public synthetic fun (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -9743,6 +9780,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field nanostarAmountField Ljava/lang/String; public static final field needsRepaintingField Ljava/lang/String; public static final field newChatMemberField Ljava/lang/String; + public static final field newOwnerChatIdField Ljava/lang/String; public static final field newReactionField Ljava/lang/String; public static final field nextOffsetField Ljava/lang/String; public static final field nonceField Ljava/lang/String; diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/TransferGift.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/TransferGift.kt new file mode 100644 index 0000000000..43b62f684c --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/TransferGift.kt @@ -0,0 +1,34 @@ +package dev.inmo.tgbotapi.requests.business_connection + +import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest +import dev.inmo.tgbotapi.types.ChatId +import dev.inmo.tgbotapi.types.GiftId +import dev.inmo.tgbotapi.types.businessConnectionIdField +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.newOwnerChatIdField +import dev.inmo.tgbotapi.types.ownedGiftIdField +import dev.inmo.tgbotapi.types.starCountField +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerializationStrategy +import kotlinx.serialization.builtins.serializer + +@Serializable +data class TransferGift( + @SerialName(businessConnectionIdField) + override val businessConnectionId: BusinessConnectionId, + @SerialName(ownedGiftIdField) + val ownedGiftId: GiftId, + @SerialName(newOwnerChatIdField) + val newOwnerChatId: ChatId, + @SerialName(starCountField) + val transferPaymentStarCount: Int? = null, +) : BusinessRequest.Simple { + override fun method(): String = "transferGift" + + override val resultDeserializer: DeserializationStrategy + get() = Boolean.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt index 3ef06057ae..889df9d354 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt @@ -524,6 +524,7 @@ const val prepaidUpgradeStarCountField = "prepaid_upgrade_star_count" const val canBeUpgradedField = "can_be_upgraded" const val isPrivateField = "is_private" const val transferStarCountField = "transfer_star_count" +const val newOwnerChatIdField = "new_owner_chat_id" const val pointField = "point" const val xShiftField = "x_shift"