From 9d879b90bbb0888e9932e48b19fc014042aea8c9 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sun, 15 Feb 2026 15:14:18 +0600 Subject: [PATCH] fix user rating --- tgbotapi.core/api/tgbotapi.core.api | 82 +++++++++++++++++-- .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 4 + .../kotlin/dev/inmo/tgbotapi/types/Level.kt | 10 +++ .../kotlin/dev/inmo/tgbotapi/types/Rating.kt | 10 +++ .../inmo/tgbotapi/types/chat/UserRating.kt | 13 +-- 5 files changed, 107 insertions(+), 12 deletions(-) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Level.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Rating.kt diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index b37b78c65a..862b703eb2 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -10375,6 +10375,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field creatorField Ljava/lang/String; public static final field credentialsField Ljava/lang/String; public static final field currencyField Ljava/lang/String; + public static final field currentLevelRatingField Ljava/lang/String; public static final field customDescriptionField Ljava/lang/String; public static final field customEmojiField Ljava/lang/String; public static final field customEmojiIdField Ljava/lang/String; @@ -10544,6 +10545,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field lastSynchronizationErrorDateField Ljava/lang/String; public static final field latitudeField Ljava/lang/String; public static final field lengthField Ljava/lang/String; + public static final field levelField Ljava/lang/String; public static final field lightThemeMainColorField Ljava/lang/String; public static final field lightThemeOtherColorsField Ljava/lang/String; public static final field limitField Ljava/lang/String; @@ -10591,6 +10593,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { 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 nextLevelRatingField Ljava/lang/String; public static final field nextOffsetField Ljava/lang/String; public static final field nextTransferDateField Ljava/lang/String; public static final field nonceField Ljava/lang/String; @@ -12877,6 +12880,36 @@ public final class dev/inmo/tgbotapi/types/InlineQueryId$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/Level { + public static final field Companion Ldev/inmo/tgbotapi/types/Level$Companion; + public static final synthetic fun box-impl (I)Ldev/inmo/tgbotapi/types/Level; + public static fun constructor-impl (I)I + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (ILjava/lang/Object;)Z + public static final fun equals-impl0 (II)Z + public final fun getInt ()I + public fun hashCode ()I + public static fun hashCode-impl (I)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (I)Ljava/lang/String; + public final synthetic fun unbox-impl ()I +} + +public final synthetic class dev/inmo/tgbotapi/types/Level$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/Level$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun deserialize-o8Fmc-8 (Lkotlinx/serialization/encoding/Decoder;)I + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serialize-eycgCq4 (Lkotlinx/serialization/encoding/Encoder;I)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/Level$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class dev/inmo/tgbotapi/types/LinkPreviewOptions { public static final field Companion Ldev/inmo/tgbotapi/types/LinkPreviewOptions$Companion; public abstract fun getPreferLargeMedia ()Z @@ -13424,6 +13457,36 @@ public final class dev/inmo/tgbotapi/types/PrimaryInviteLink$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/Rating { + public static final field Companion Ldev/inmo/tgbotapi/types/Rating$Companion; + public static final synthetic fun box-impl (I)Ldev/inmo/tgbotapi/types/Rating; + public static fun constructor-impl (I)I + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (ILjava/lang/Object;)Z + public static final fun equals-impl0 (II)Z + public final fun getInt ()I + public fun hashCode ()I + public static fun hashCode-impl (I)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (I)Ljava/lang/String; + public final synthetic fun unbox-impl ()I +} + +public final synthetic class dev/inmo/tgbotapi/types/Rating$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/Rating$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun deserialize-xp7shNk (Lkotlinx/serialization/encoding/Decoder;)I + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serialize-2KgQcVw (Lkotlinx/serialization/encoding/Encoder;I)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/Rating$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/RawChatId { public static final field Companion Ldev/inmo/tgbotapi/types/RawChatId$Companion; public static final synthetic fun box-impl (J)Ldev/inmo/tgbotapi/types/RawChatId; @@ -18474,14 +18537,19 @@ public final class dev/inmo/tgbotapi/types/chat/User$Companion { public final class dev/inmo/tgbotapi/types/chat/UserRating { public static final field Companion Ldev/inmo/tgbotapi/types/chat/UserRating$Companion; - public fun (ID)V - public final fun component1 ()I - public final fun component2 ()D - public final fun copy (ID)Ldev/inmo/tgbotapi/types/chat/UserRating; - public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/chat/UserRating;IDILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/UserRating; + public synthetic fun (IIILdev/inmo/tgbotapi/types/Rating;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (IIILdev/inmo/tgbotapi/types/Rating;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-iWTbqtI ()I + public final fun component2-0utb6f4 ()I + public final fun component3-0utb6f4 ()I + public final fun component4-zA4OaN0 ()Ldev/inmo/tgbotapi/types/Rating; + public final fun copy-1VHiyAg (IIILdev/inmo/tgbotapi/types/Rating;)Ldev/inmo/tgbotapi/types/chat/UserRating; + public static synthetic fun copy-1VHiyAg$default (Ldev/inmo/tgbotapi/types/chat/UserRating;IIILdev/inmo/tgbotapi/types/Rating;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/UserRating; public fun equals (Ljava/lang/Object;)Z - public final fun getCount ()I - public final fun getRating ()D + public final fun getCurrentLevelRating-0utb6f4 ()I + public final fun getLevel-iWTbqtI ()I + public final fun getNextLevelRating-zA4OaN0 ()Ldev/inmo/tgbotapi/types/Rating; + public final fun getRating-0utb6f4 ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; } 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 793b1bef91..0cf8f047ba 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 @@ -662,6 +662,10 @@ const val uniqueGiftColorsField = "unique_gift_colors" const val paidStarCountField = "paid_star_count" const val isPaidPostField = "is_paid_post" +const val levelField = "level" +const val currentLevelRatingField = "current_level_rating" +const val nextLevelRatingField = "next_level_rating" + const val disableEditMessageField = "disable_edit_message" const val scoreField = "score" const val forceField = "force" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Level.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Level.kt new file mode 100644 index 0000000000..f509857fde --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Level.kt @@ -0,0 +1,10 @@ +package dev.inmo.tgbotapi.types + +import kotlinx.serialization.Serializable +import kotlin.jvm.JvmInline + +@Serializable +@JvmInline +value class Level( + val int: Int +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Rating.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Rating.kt new file mode 100644 index 0000000000..bb16b4b4cd --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Rating.kt @@ -0,0 +1,10 @@ +package dev.inmo.tgbotapi.types + +import kotlinx.serialization.Serializable +import kotlin.jvm.JvmInline + +@Serializable +@JvmInline +value class Rating( + val int: Int +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/UserRating.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/UserRating.kt index 220ab7dd92..64cb2dceb1 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/UserRating.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/UserRating.kt @@ -1,14 +1,17 @@ package dev.inmo.tgbotapi.types.chat -import dev.inmo.tgbotapi.types.countField -import dev.inmo.tgbotapi.types.ratingField +import dev.inmo.tgbotapi.types.* import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable data class UserRating( - @SerialName(countField) - val count: Int, + @SerialName(levelField) + val level: Level, @SerialName(ratingField) - val rating: Double + val rating: Rating, + @SerialName(currentLevelRatingField) + val currentLevelRating: Rating, + @SerialName(nextLevelRatingField) + val nextLevelRating: Rating? = null )