1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-06-19 17:55:11 +00:00

Make ChatJoinRequestQueryResult inheritors data objects + serializable

- Approve/Decline/Queue are now data object
- each inheritor (and Unknown) annotated with the shared
  ChatJoinRequestQueryResult.Companion serializer
- companion PrimitiveSerialDescriptor serial name is "ChatJoinRequestQueryResult"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 18:49:42 +06:00
parent 0188c65319
commit df5018ecf5
2 changed files with 25 additions and 4 deletions

View File

@@ -3408,7 +3408,11 @@ public abstract interface class dev/inmo/tgbotapi/requests/chat/invite_links/Cha
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Approve : dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Approve;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Companion : kotlinx/serialization/KSerializer {
@@ -3422,15 +3426,24 @@ public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQ
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Decline : dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Decline;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Queue : dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Queue;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Unknown : dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult {
public static final field Companion Ldev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Unknown$Companion;
public fun <init> (Ljava/lang/String;)V
public final fun component1 ()Ljava/lang/String;
public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Unknown;
@@ -3441,6 +3454,10 @@ public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQ
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/requests/chat/invite_links/ChatJoinRequestQueryResult$Unknown$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public abstract interface class dev/inmo/tgbotapi/requests/chat/invite_links/CreateChatInviteLink : dev/inmo/tgbotapi/requests/chat/abstracts/EditChatInviteLinkRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/chat/invite_links/CreateChatInviteLink$Companion;
public abstract fun getExpirationUnixTimeStamp ()Ldev/inmo/tgbotapi/types/TelegramDate;

View File

@@ -28,32 +28,36 @@ sealed interface ChatJoinRequestQueryResult {
/**
* Allow the user to join the chat.
*/
object Approve : ChatJoinRequestQueryResult {
@Serializable(ChatJoinRequestQueryResult.Companion::class)
data object Approve : ChatJoinRequestQueryResult {
override val name: String = "approve"
}
/**
* Disallow the user to join the chat.
*/
object Decline : ChatJoinRequestQueryResult {
@Serializable(ChatJoinRequestQueryResult.Companion::class)
data object Decline : ChatJoinRequestQueryResult {
override val name: String = "decline"
}
/**
* Leave the decision to other administrators.
*/
object Queue : ChatJoinRequestQueryResult {
@Serializable(ChatJoinRequestQueryResult.Companion::class)
data object Queue : ChatJoinRequestQueryResult {
override val name: String = "queue"
}
/**
* Any other result which is currently unknown to this library.
*/
@Serializable(ChatJoinRequestQueryResult.Companion::class)
data class Unknown(override val name: String) : ChatJoinRequestQueryResult
companion object : KSerializer<ChatJoinRequestQueryResult> {
override val descriptor: SerialDescriptor =
PrimitiveSerialDescriptor("dev.inmo.tgbotapi.requests.chat.invite_links.ChatJoinRequestQueryResult", PrimitiveKind.STRING)
PrimitiveSerialDescriptor("ChatJoinRequestQueryResult", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: ChatJoinRequestQueryResult) {
encoder.encodeString(value.name)