From ef1d2e8242f1c761c490955d8aa0fefb1f4c4a43 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 10 May 2025 17:53:49 +0600 Subject: [PATCH] add support of convertGiftToStars and upgradeGift --- tgbotapi.api/api/tgbotapi.api.api | 12 ++++ .../api/business/ConvertGiftToStars.kt | 25 +++++++ .../extensions/api/business/UpgradeGift.kt | 42 +++++++++++ tgbotapi.core/api/tgbotapi.core.api | 70 +++++++++++++++++++ .../business_connection/ConvertGiftToStars.kt | 39 +++++++++++ .../business_connection/UpgradeGift.kt | 45 ++++++++++++ .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 1 + 7 files changed, 234 insertions(+) create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/ConvertGiftToStars.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/UpgradeGift.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/UpgradeGift.kt diff --git a/tgbotapi.api/api/tgbotapi.api.api b/tgbotapi.api/api/tgbotapi.api.api index 70626099d4..0184281f93 100644 --- a/tgbotapi.api/api/tgbotapi.api.api +++ b/tgbotapi.api/api/tgbotapi.api.api @@ -330,6 +330,11 @@ public final class dev/inmo/tgbotapi/extensions/api/bot/SetMyShortDescriptionKt public static synthetic fun setMyShortDescription$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/micro_utils/language_codes/IetfLang;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } +public final class dev/inmo/tgbotapi/extensions/api/business/ConvertGiftToStarsKt { + public static final fun convertGiftToStars-D7eidZo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun convertGiftToStars-wC12z2M (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/Gift$Regular;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public final class dev/inmo/tgbotapi/extensions/api/business/DeleteBusinessMessagesGeneratedVariationKt { public static final fun deleteBusinessMessages-wC12z2M (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -393,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/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; + public static final fun convertGiftToStars-fJJ4zuA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun convertGiftToStars-fJJ4zuA$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + public final class dev/inmo/tgbotapi/extensions/api/chat/ExportChatInviteLinkKt { public static final fun exportChatInviteLink (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun exportChatInviteLink (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/ConvertGiftToStars.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/ConvertGiftToStars.kt new file mode 100644 index 0000000000..283821dabf --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/ConvertGiftToStars.kt @@ -0,0 +1,25 @@ +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.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.GiftId +import dev.inmo.tgbotapi.types.gifts.Gift + +public suspend fun TelegramBot.convertGiftToStars( + businessConnectionId: BusinessConnectionId, + ownedGiftId: GiftId +): Boolean = execute( + ConvertGiftToStars(businessConnectionId, ownedGiftId) +) + +public suspend fun TelegramBot.convertGiftToStars( + businessConnectionId: BusinessConnectionId, + gift: Gift.Regular +): Boolean = convertGiftToStars( + businessConnectionId = businessConnectionId, + ownedGiftId = with(gift) {id} +) + diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/UpgradeGift.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/UpgradeGift.kt new file mode 100644 index 0000000000..670bd7ba91 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/business/UpgradeGift.kt @@ -0,0 +1,42 @@ +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.UpgradeGift +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.convertGiftToStars( + businessConnectionId: BusinessConnectionId, + ownedGiftId: GiftId, + keepOriginalDetails: Boolean = false, + starCount: Int? = null +): Boolean = execute( + UpgradeGift( + businessConnectionId = businessConnectionId, + ownedGiftId = ownedGiftId, + keepOriginalDetails = keepOriginalDetails, + starCount = starCount + ) +) + +public suspend fun TelegramBot.convertGiftToStars( + businessConnectionId: BusinessConnectionId, + gift: Gift.Regular, + keepOriginalDetails: Boolean = false, +): Boolean = execute( + UpgradeGift( + businessConnectionId = businessConnectionId, + ownedGiftId = gift.id, + keepOriginalDetails = keepOriginalDetails, + starCount = gift.upgradeStarCount + ) +) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 06e79ba879..37d2ac36d3 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -1859,6 +1859,38 @@ public final class dev/inmo/tgbotapi/requests/bot/SetMyShortDescription$Companio public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars : dev/inmo/tgbotapi/requests/abstracts/BusinessRequest$Simple { + public static final field Companion Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars$Companion; + public synthetic fun (Ljava/lang/String;Ljava/lang/String;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 copy-Pbl8k-4 (Ljava/lang/String;Ljava/lang/String;)Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars; + public static synthetic fun copy-Pbl8k-4$default (Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars; + 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 getOwnedGiftId-OyCYJok ()Ljava/lang/String; + public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy; + public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy; + 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/ConvertGiftToStars$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars; + 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/ConvertGiftToStars;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/requests/business_connection/DeleteBusinessMessages : dev/inmo/tgbotapi/requests/abstracts/BusinessRequest$Simple { public static final field Companion Ldev/inmo/tgbotapi/requests/business_connection/DeleteBusinessMessages$Companion; public synthetic fun (Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2313,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/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 + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ZLjava/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 ()Z + public final fun component4 ()Ljava/lang/Integer; + public final fun copy-Yb6lwM8 (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/Integer;)Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift; + public static synthetic fun copy-Yb6lwM8$default (Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/Integer;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift; + 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 getKeepOriginalDetails ()Z + public final fun getOwnedGiftId-OyCYJok ()Ljava/lang/String; + public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy; + public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy; + public final fun getStarCount ()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/UpgradeGift$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/business_connection/UpgradeGift; + 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/UpgradeGift;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/requests/business_connection/UpgradeGift$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/requests/chat/ExportChatInviteLink : dev/inmo/tgbotapi/abstracts/types/ChatRequest, dev/inmo/tgbotapi/requests/abstracts/SimpleRequest { public static final field Companion Ldev/inmo/tgbotapi/requests/chat/ExportChatInviteLink$Companion; public fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;)V @@ -9626,6 +9695,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field isVideoField Ljava/lang/String; public static final field joinByRequestField Ljava/lang/String; public static final field joinToSendMessagesField Ljava/lang/String; + public static final field keepOriginalDetailsField Ljava/lang/String; public static final field keywordsField Ljava/lang/String; public static final field labelField Ljava/lang/String; public static final field languageCodeField Ljava/lang/String; diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars.kt new file mode 100644 index 0000000000..31cc718483 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/ConvertGiftToStars.kt @@ -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.GiftId +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.ownedGiftIdField +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 ConvertGiftToStars( + @SerialName(businessConnectionIdField) + override val businessConnectionId: BusinessConnectionId, + @SerialName(ownedGiftIdField) + val ownedGiftId: GiftId +) : BusinessRequest.Simple { + override fun method(): String = "convertGiftToStars" + + 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/requests/business_connection/UpgradeGift.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/UpgradeGift.kt new file mode 100644 index 0000000000..c62435b365 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/UpgradeGift.kt @@ -0,0 +1,45 @@ +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.GiftId +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.keepOriginalDetailsField +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.ownedGiftIdField +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 UpgradeGift( + @SerialName(businessConnectionIdField) + override val businessConnectionId: BusinessConnectionId, + @SerialName(ownedGiftIdField) + val ownedGiftId: GiftId, + @SerialName(keepOriginalDetailsField) + val keepOriginalDetails: Boolean = false, + @SerialName(starCountField) + val starCount: Int? = null, +) : BusinessRequest.Simple { + override fun method(): String = "upgradeGift" + + 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 f375971496..3ef06057ae 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 @@ -764,3 +764,4 @@ const val isDarkField = "is_dark" const val isFlippedField = "is_flipped" const val temperatureField = "temperature" const val backgroundColorField = "background_color" +const val keepOriginalDetailsField = "keep_original_details"