From 881763f3af39bb96cb3ac1aa2e290edf7f779bda Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 10 May 2025 13:25:21 +0600 Subject: [PATCH] add support of gift things --- tgbotapi.core/api/tgbotapi.core.api | 510 ++++++++++++++++++ .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 9 + .../tgbotapi/types/reactions/ReactionType.kt | 125 +++++ .../inmo/tgbotapi/types/stories/StoryArea.kt | 11 + .../tgbotapi/types/stories/StoryAreaType.kt | 212 ++++++++ .../utils/LongRGBAFromHEXAColorSerializer.kt | 22 + 6 files changed, 889 insertions(+) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/reactions/ReactionType.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryArea.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryAreaType.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer.kt diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 21edfc0199..06e79ba879 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -9380,6 +9380,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field authorSignatureField Ljava/lang/String; public static final field availableReactionsField Ljava/lang/String; public static final field backdropField Ljava/lang/String; + public static final field backgroundColorField Ljava/lang/String; public static final field backgroundCustomEmojiIdField Ljava/lang/String; public static final field bankStatementField Ljava/lang/String; public static final field baseNameField Ljava/lang/String; @@ -9602,9 +9603,11 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field isBotField Ljava/lang/String; public static final field isCanceledField Ljava/lang/String; public static final field isClosedField Ljava/lang/String; + public static final field isDarkField Ljava/lang/String; public static final field isDisabledField Ljava/lang/String; public static final field isEnabledField Ljava/lang/String; public static final field isFirstRecurringField Ljava/lang/String; + public static final field isFlippedField Ljava/lang/String; public static final field isForumField Ljava/lang/String; public static final field isInvertedField Ljava/lang/String; public static final field isManualField Ljava/lang/String; @@ -9747,7 +9750,9 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field quoteParseModeField Ljava/lang/String; public static final field quotePositionField Ljava/lang/String; public static final field rarityPerMilleField Ljava/lang/String; + public static final field rawField Ljava/lang/String; public static final field reactionField Ljava/lang/String; + public static final field reactionTypeField Ljava/lang/String; public static final field reactionsField Ljava/lang/String; public static final field receiverField Ljava/lang/String; public static final field regularPollType Ljava/lang/String; @@ -9842,6 +9847,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field symbolColorField Ljava/lang/String; public static final field symbolField Ljava/lang/String; public static final field telegramPaymentChargeIdField Ljava/lang/String; + public static final field temperatureField Ljava/lang/String; public static final field temporaryRegistrationField Ljava/lang/String; public static final field textColorField Ljava/lang/String; public static final field textEntitiesField Ljava/lang/String; @@ -27349,6 +27355,193 @@ public final class dev/inmo/tgbotapi/types/reactions/Reaction$Unknown$Companion public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public abstract interface class dev/inmo/tgbotapi/types/reactions/ReactionType { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion; + public abstract fun getType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType$Type; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Companion : kotlinx/serialization/KSerializer { + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/reactions/ReactionType;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiId ()Ljava/lang/String; + public final fun getEmoji ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate; + 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/types/reactions/ReactionType$Companion$Surrogate;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Companion$Surrogate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji : dev/inmo/tgbotapi/types/reactions/ReactionType { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji$Companion; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiId ()Ljava/lang/String; + public fun getType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType$Type; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji; + 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/types/reactions/ReactionType$CustomEmoji;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$CustomEmoji$Companion : dev/inmo/tgbotapi/types/reactions/ReactionType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Emoji : dev/inmo/tgbotapi/types/reactions/ReactionType { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji$Companion; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmoji ()Ljava/lang/String; + public fun getType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType$Type; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$Emoji$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Emoji; + 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/types/reactions/ReactionType$Emoji;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Emoji$Companion : dev/inmo/tgbotapi/types/reactions/ReactionType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Paid : dev/inmo/tgbotapi/types/reactions/ReactionType { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Paid$Companion; + public fun ()V + public fun equals (Ljava/lang/Object;)Z + public fun getType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType$Type; + public fun hashCode ()I +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$Paid$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$Paid$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Paid; + 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/types/reactions/ReactionType$Paid;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Paid$Companion : dev/inmo/tgbotapi/types/reactions/ReactionType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract interface class dev/inmo/tgbotapi/types/reactions/ReactionType$Type { + public abstract fun getName ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown : dev/inmo/tgbotapi/types/reactions/ReactionType { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Companion; + public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-n-eu424 ()Ljava/lang/String; + public final fun component2 ()Lkotlinx/serialization/json/JsonElement; + public final fun copy-IzM-JfY (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown; + public static synthetic fun copy-IzM-JfY$default (Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getRaw ()Lkotlinx/serialization/json/JsonElement; + public synthetic fun getType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType$Type; + public fun getType-n-eu424 ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown; + 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/types/reactions/ReactionType$Unknown;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom : dev/inmo/tgbotapi/types/reactions/ReactionType$Type { + public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public fun getName ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun deserialize--6CkvsI (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serialize-ddj4YtI (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V +} + +public final class dev/inmo/tgbotapi/types/reactions/ReactionType$Unknown$Custom$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/reactions/ReactionsCount { public static final field Companion Ldev/inmo/tgbotapi/types/reactions/ReactionsCount$Companion; public fun (Ldev/inmo/tgbotapi/types/reactions/Reaction;I)V @@ -27866,6 +28059,34 @@ public final class dev/inmo/tgbotapi/types/stories/Story$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/stories/StoryArea { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryArea$Companion; + public fun (Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition;Ldev/inmo/tgbotapi/types/stories/StoryAreaType;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition; + public final fun component2 ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType; + public final fun copy (Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition;Ldev/inmo/tgbotapi/types/stories/StoryAreaType;)Ldev/inmo/tgbotapi/types/stories/StoryArea; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/stories/StoryArea;Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition;Ldev/inmo/tgbotapi/types/stories/StoryAreaType;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryArea; + public fun equals (Ljava/lang/Object;)Z + public final fun getPosition ()Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition; + public final fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryArea$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryArea$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryArea; + 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/types/stories/StoryArea;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryArea$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/stories/StoryAreaPosition { public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaPosition$Companion; public synthetic fun (DDDDDDLkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -27902,6 +28123,286 @@ public final class dev/inmo/tgbotapi/types/stories/StoryAreaPosition$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public abstract interface class dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion; + public abstract fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Companion : kotlinx/serialization/KSerializer { + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/stories/StoryAreaType;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate$Companion; + public synthetic fun (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ldev/inmo/tgbotapi/types/location/LocationAddress;Ldev/inmo/tgbotapi/types/reactions/ReactionType;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ldev/inmo/micro_utils/colors/common/HEXAColor;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ldev/inmo/tgbotapi/types/location/LocationAddress;Ldev/inmo/tgbotapi/types/reactions/ReactionType;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ldev/inmo/micro_utils/colors/common/HEXAColor;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11-EK5xmqU ()Ldev/inmo/micro_utils/colors/common/HEXAColor; + public final fun component12 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Double; + public final fun component3 ()Ljava/lang/Double; + public final fun component4 ()Ldev/inmo/tgbotapi/types/location/LocationAddress; + public final fun component5 ()Ldev/inmo/tgbotapi/types/reactions/ReactionType; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Double; + public final fun copy-bdGGNV0 (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ldev/inmo/tgbotapi/types/location/LocationAddress;Ldev/inmo/tgbotapi/types/reactions/ReactionType;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ldev/inmo/micro_utils/colors/common/HEXAColor;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate; + public static synthetic fun copy-bdGGNV0$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ldev/inmo/tgbotapi/types/location/LocationAddress;Ldev/inmo/tgbotapi/types/reactions/ReactionType;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ldev/inmo/micro_utils/colors/common/HEXAColor;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ldev/inmo/tgbotapi/types/location/LocationAddress; + public final fun getBackgroundColor-EK5xmqU ()Ldev/inmo/micro_utils/colors/common/HEXAColor; + public final fun getEmoji ()Ljava/lang/String; + public final fun getLatitude ()Ljava/lang/Double; + public final fun getLongitude ()Ljava/lang/Double; + public final fun getName ()Ljava/lang/String; + public final fun getReactionType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType; + public final fun getTemperature ()Ljava/lang/Double; + public final fun getType ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public final fun isDark ()Ljava/lang/Boolean; + public final fun isFlipped ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate; + 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/types/stories/StoryAreaType$Companion$Surrogate;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Companion$Surrogate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Link : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link$Companion; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link; + public fun equals (Ljava/lang/Object;)Z + public fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Link$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Link; + 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/types/stories/StoryAreaType$Link;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Link$Companion : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Location : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location$Companion; + public fun (DDLdev/inmo/tgbotapi/types/location/LocationAddress;)V + public synthetic fun (DDLdev/inmo/tgbotapi/types/location/LocationAddress;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()D + public final fun component3 ()Ldev/inmo/tgbotapi/types/location/LocationAddress; + public final fun copy (DDLdev/inmo/tgbotapi/types/location/LocationAddress;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location;DDLdev/inmo/tgbotapi/types/location/LocationAddress;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ldev/inmo/tgbotapi/types/location/LocationAddress; + public final fun getLatitude ()D + public final fun getLongitude ()D + public fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Location$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Location; + 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/types/stories/StoryAreaType$Location;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Location$Companion : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction$Companion; + public fun (Ldev/inmo/tgbotapi/types/reactions/ReactionType;ZZ)V + public synthetic fun (Ldev/inmo/tgbotapi/types/reactions/ReactionType;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/reactions/ReactionType; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun copy (Ldev/inmo/tgbotapi/types/reactions/ReactionType;ZZ)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction;Ldev/inmo/tgbotapi/types/reactions/ReactionType;ZZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction; + public fun equals (Ljava/lang/Object;)Z + public final fun getReactionType ()Ldev/inmo/tgbotapi/types/reactions/ReactionType; + public fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public fun hashCode ()I + public final fun isDark ()Z + public final fun isFlipped ()Z + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction; + 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/types/stories/StoryAreaType$SuggestedReaction;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$SuggestedReaction$Companion : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract interface class dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public abstract fun getName ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift$Companion; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift; + 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/types/stories/StoryAreaType$UniqueGift;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$UniqueGift$Companion : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Companion; + public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-Z5LZ5xk ()Ljava/lang/String; + public final fun component2 ()Lkotlinx/serialization/json/JsonElement; + public final fun copy-GMJk1YA (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown; + public static synthetic fun copy-GMJk1YA$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getRaw ()Lkotlinx/serialization/json/JsonElement; + public synthetic fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public fun getType-Z5LZ5xk ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown; + 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/types/stories/StoryAreaType$Unknown;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public fun getName ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun deserialize-3Ojxprk (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public final fun serialize-GfMZkS4 (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Unknown$Custom$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Weather : dev/inmo/tgbotapi/types/stories/StoryAreaType { + public static final field Companion Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather$Companion; + public synthetic fun (DLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()Ljava/lang/String; + public final fun component3-Tlb_HZc ()I + public final fun copy-ySsuw9g (DLjava/lang/String;I)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather; + public static synthetic fun copy-ySsuw9g$default (Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather;DLjava/lang/String;IILjava/lang/Object;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather; + public fun equals (Ljava/lang/Object;)Z + public final fun getBackgroundColor-Tlb_HZc ()I + public final fun getEmoji ()Ljava/lang/String; + public final fun getTemperature ()D + public fun getType ()Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Type; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/inmo/tgbotapi/types/stories/StoryAreaType$Weather$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/stories/StoryAreaType$Weather; + 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/types/stories/StoryAreaType$Weather;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V +} + +public final class dev/inmo/tgbotapi/types/stories/StoryAreaType$Weather$Companion : dev/inmo/tgbotapi/types/stories/StoryAreaType$Type { + public fun getName ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/update/BusinessConnectionUpdate : dev/inmo/tgbotapi/types/update/abstracts/Update { public static final field Companion Ldev/inmo/tgbotapi/types/update/BusinessConnectionUpdate$Companion; public synthetic fun (JLdev/inmo/tgbotapi/types/business_connection/BusinessConnection;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -28836,6 +29337,15 @@ public final class dev/inmo/tgbotapi/utils/JSONKt { public static final fun withoutNulls (Lkotlinx/serialization/json/JsonObject;)Lkotlinx/serialization/json/JsonObject; } +public final class dev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer : kotlinx/serialization/KSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-o_k0-HU (Lkotlinx/serialization/encoding/Decoder;)I + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-Em2Gv2Q (Lkotlinx/serialization/encoding/Encoder;I)V +} + public final class dev/inmo/tgbotapi/utils/MapKt { public static final fun mapNotNullValues (Ljava/util/Map;)Ljava/util/Map; public static final fun mapOfNotNull ([Lkotlin/Pair;)Ljava/util/Map; 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 f1cac9ec86..f375971496 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 @@ -755,3 +755,12 @@ const val themeNameField = "theme_name" const val dayField = "day" const val monthField = "month" const val yearField = "year" + +const val rawField = "raw" + +const val reactionTypeField = "reaction_type" + +const val isDarkField = "is_dark" +const val isFlippedField = "is_flipped" +const val temperatureField = "temperature" +const val backgroundColorField = "background_color" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/reactions/ReactionType.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/reactions/ReactionType.kt new file mode 100644 index 0000000000..51c9984006 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/reactions/ReactionType.kt @@ -0,0 +1,125 @@ +package dev.inmo.tgbotapi.types.reactions + +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.decodeDataAndJson +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonElement +import kotlin.jvm.JvmInline + +@Serializable(ReactionType.Companion::class) +sealed interface ReactionType { + val type: Type + + sealed interface Type { + val name: String + } + + @Serializable + data class Emoji( + @SerialName(emojiField) + val emoji: String + ) : ReactionType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "emoji" + } + } + + @Serializable + data class CustomEmoji( + @SerialName(customEmojiIdField) + val customEmojiId: String + ) : ReactionType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "custom_emoji" + } + } + + @Serializable + class Paid : ReactionType { + @EncodeDefault + override val type: Type = Companion + + override fun equals(other: Any?): Boolean { + return other is Paid + } + + override fun hashCode(): Int { + return type.name.hashCode() + } + + companion object : Type { + override val name: String = "paid" + } + } + + @Serializable + data class Unknown( + @SerialName(typeField) + override val type: Custom, + @SerialName(rawField) + val raw: JsonElement? = null + ) : ReactionType { + @Serializable + @JvmInline + value class Custom(override val name: String) : Type + } + + companion object : KSerializer { + @Serializable + data class Surrogate( + @SerialName(typeField) + val type: String, + @SerialName(emojiField) + val emoji: String? = null, + @SerialName(customEmojiIdField) + val customEmojiId: String? = null + ) + + override val descriptor: SerialDescriptor = Surrogate.serializer().descriptor + + override fun serialize(encoder: Encoder, value: ReactionType) { + val surrogate = when (value) { + is Emoji -> Surrogate( + type = value.type.name, + emoji = value.emoji + ) + is CustomEmoji -> Surrogate( + type = value.type.name, + customEmojiId = value.customEmojiId + ) + is Paid -> Surrogate( + type = value.type.name + ) + is Unknown -> Surrogate( + type = value.type.name + ) + } + encoder.encodeSerializableValue(Surrogate.serializer(), surrogate) + } + + override fun deserialize(decoder: Decoder): ReactionType { + val (surrogate, json) = decoder.decodeDataAndJson(Surrogate.serializer()) + val unknown by lazy { Unknown(Unknown.Custom(surrogate.type), json) } + + return when (surrogate.type) { + Emoji.name -> Emoji( + emoji = surrogate.emoji ?: return unknown + ) + CustomEmoji.name -> CustomEmoji( + customEmojiId = surrogate.customEmojiId ?: return unknown + ) + Paid.name -> Paid() + else -> unknown + } + } + } +} \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryArea.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryArea.kt new file mode 100644 index 0000000000..c45b6f0b86 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryArea.kt @@ -0,0 +1,11 @@ +package dev.inmo.tgbotapi.types.stories + +import dev.inmo.tgbotapi.types.* +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class StoryArea( + val position: StoryAreaPosition, + val type: StoryAreaType +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryAreaType.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryAreaType.kt new file mode 100644 index 0000000000..180f91cde9 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/stories/StoryAreaType.kt @@ -0,0 +1,212 @@ +package dev.inmo.tgbotapi.types.stories + +import dev.inmo.micro_utils.colors.common.HEXAColor +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.location.LocationAddress +import dev.inmo.tgbotapi.types.reactions.ReactionType +import dev.inmo.tgbotapi.utils.IntRGB24HEXAColorSerializer +import dev.inmo.tgbotapi.utils.LongRGBAFromHEXAColorSerializer +import dev.inmo.tgbotapi.utils.decodeDataAndJson +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonElement +import kotlin.jvm.JvmInline + +@Serializable(StoryAreaType.Companion::class) +sealed interface StoryAreaType { + val type: Type + + sealed interface Type { + val name: String + } + + @Serializable + data class Location( + @SerialName(latitudeField) + val latitude: Double, + @SerialName(longitudeField) + val longitude: Double, + @SerialName(addressField) + val address: LocationAddress? = null + ) : StoryAreaType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "location" + } + } + + @Serializable + data class SuggestedReaction( + @SerialName(reactionTypeField) + val reactionType: ReactionType, + @SerialName(isDarkField) + val isDark: Boolean = false, + @SerialName(isFlippedField) + val isFlipped: Boolean = false + ) : StoryAreaType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "suggested_reaction" + } + } + + @Serializable + data class Link( + @SerialName(urlField) + val url: String + ) : StoryAreaType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "link" + } + } + + @Serializable + data class Weather( + @SerialName(temperatureField) + val temperature: Double, + @SerialName(emojiField) + val emoji: String, + @SerialName(backgroundColorField) + @Serializable(LongRGBAFromHEXAColorSerializer::class) + val backgroundColor: HEXAColor + ) : StoryAreaType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "weather" + } + } + + @Serializable + data class UniqueGift( + @SerialName(nameField) + val name: String + ) : StoryAreaType { + @EncodeDefault + override val type: Type = Companion + + companion object : Type { + override val name: String = "unique_gift" + } + } + + @Serializable + data class Unknown( + @SerialName(typeField) + override val type: Custom, + @SerialName(rawField) + val raw: JsonElement? = null + ) : StoryAreaType { + @Serializable + @JvmInline + value class Custom(override val name: String) : Type + } + + companion object : KSerializer { + @Serializable + data class Surrogate( + @SerialName(typeField) + val type: String, + @SerialName(latitudeField) + val latitude: Double? = null, + @SerialName(longitudeField) + val longitude: Double? = null, + @SerialName(addressField) + val address: LocationAddress? = null, + @SerialName(reactionTypeField) + val reactionType: ReactionType? = null, + @SerialName(isDarkField) + val isDark: Boolean? = null, + @SerialName(isFlippedField) + val isFlipped: Boolean? = null, + @SerialName(urlField) + val url: String? = null, + @SerialName(temperatureField) + val temperature: Double? = null, + @SerialName(emojiField) + val emoji: String? = null, + @SerialName(backgroundColorField) + @Serializable(LongRGBAFromHEXAColorSerializer::class) + val backgroundColor: HEXAColor? = null, + @SerialName(nameField) + val name: String? = null + ) + + override val descriptor: SerialDescriptor = Surrogate.serializer().descriptor + + override fun serialize(encoder: Encoder, value: StoryAreaType) { + val surrogate = when (value) { + is Location -> Surrogate( + type = value.type.name, + latitude = value.latitude, + longitude = value.longitude, + address = value.address + ) + is SuggestedReaction -> Surrogate( + type = value.type.name, + reactionType = value.reactionType, + isDark = value.isDark, + isFlipped = value.isFlipped + ) + is Link -> Surrogate( + type = value.type.name, + url = value.url + ) + is Weather -> Surrogate( + type = value.type.name, + temperature = value.temperature, + emoji = value.emoji, + backgroundColor = value.backgroundColor + ) + is UniqueGift -> Surrogate( + type = value.type.name, + name = value.name + ) + is Unknown -> Surrogate( + type = value.type.name + ) + } + encoder.encodeSerializableValue(Surrogate.serializer(), surrogate) + } + + override fun deserialize(decoder: Decoder): StoryAreaType { + val (surrogate, json) = decoder.decodeDataAndJson(Surrogate.serializer()) + val unknown by lazy { Unknown(Unknown.Custom(surrogate.type), json) } + + return when (surrogate.type) { + Location.name -> Location( + latitude = surrogate.latitude ?: return unknown, + longitude = surrogate.longitude ?: return unknown, + address = surrogate.address + ) + SuggestedReaction.name -> SuggestedReaction( + reactionType = surrogate.reactionType ?: return unknown, + isDark = surrogate.isDark ?: false, + isFlipped = surrogate.isFlipped ?: false + ) + Link.name -> Link( + url = surrogate.url ?: return unknown + ) + Weather.name -> Weather( + temperature = surrogate.temperature ?: return unknown, + emoji = surrogate.emoji ?: return unknown, + backgroundColor = surrogate.backgroundColor ?: return unknown + ) + UniqueGift.name -> UniqueGift( + name = surrogate.name ?: return unknown + ) + else -> unknown + } + } + } +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer.kt new file mode 100644 index 0000000000..61af85286d --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/LongRGBAFromHEXAColorSerializer.kt @@ -0,0 +1,22 @@ +package dev.inmo.tgbotapi.utils + +import dev.inmo.micro_utils.colors.common.HEXAColor +import kotlinx.serialization.KSerializer +import kotlinx.serialization.builtins.serializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +object LongRGBAFromHEXAColorSerializer : KSerializer { + override val descriptor: SerialDescriptor + get() = Int.serializer().descriptor + + override fun deserialize(decoder: Decoder): HEXAColor { + val raw = decoder.decodeLong() + return HEXAColor(raw.toUInt()) + } + + override fun serialize(encoder: Encoder, value: HEXAColor) { + encoder.encodeLong(value.hexaUInt.toLong()) + } +} \ No newline at end of file