From b39b5f376e29388f7c8759543ed5cf67a2762b6b Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 30 May 2026 18:56:27 +0600 Subject: [PATCH] small improvement in message hierarchy --- tgbotapi.core/api/tgbotapi.core.api | 25 +++++++++++++------ .../tgbotapi/types/message/PassportMessage.kt | 3 ++- .../abstracts/BusinessContentMessage.kt | 2 +- .../message/abstracts/FromUserMessage.kt | 2 ++ .../message/abstracts/GroupEventMessage.kt | 2 +- .../types/message/abstracts/GroupMessages.kt | 8 +++--- .../abstracts/PrivateContentMessage.kt | 2 +- 7 files changed, 28 insertions(+), 16 deletions(-) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index d0604de2e0..5f53df3def 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -27025,7 +27025,7 @@ public final class dev/inmo/tgbotapi/types/message/ParseModeSerializer : kotlinx public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V } -public final class dev/inmo/tgbotapi/types/message/PassportMessage : dev/inmo/tgbotapi/types/message/abstracts/ChatMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage { +public final class dev/inmo/tgbotapi/types/message/PassportMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage { public synthetic fun (JLdev/inmo/tgbotapi/types/chat/PreviewChat;Ldev/inmo/tgbotapi/types/chat/User;DLdev/inmo/tgbotapi/types/passport/PassportData;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1-APLFQys ()J public final fun component2 ()Ldev/inmo/tgbotapi/types/chat/PreviewChat; @@ -27418,7 +27418,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/AnonymousGroupConte public static fun getSenderChat (Ldev/inmo/tgbotapi/types/message/abstracts/AnonymousGroupContentMessage;)Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage : dev/inmo/tgbotapi/abstracts/types/WithBusinessConnectionId, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblySentViaBotCommonMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage : dev/inmo/tgbotapi/abstracts/types/WithBusinessConnectionId, dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblySentViaBotCommonMessage { public abstract fun getBusinessConnectionId-T-_HSQI ()Ljava/lang/String; public abstract fun getChat ()Ldev/inmo/tgbotapi/types/chat/PreviewBusinessChat; public abstract fun getSenderBusinessBot ()Ldev/inmo/tgbotapi/types/chat/PreviewBot; @@ -27518,7 +27518,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/ChatMessage$Default public static fun getMetaInfo-fV8YnZ8 (Ldev/inmo/tgbotapi/types/message/abstracts/ChatMessage;)Lkotlin/Triple; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonChannelDirectMessagesContentMessage : dev/inmo/tgbotapi/types/message/abstracts/ChannelDirectMessagesContentMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonChannelDirectMessagesContentMessage : dev/inmo/tgbotapi/types/message/abstracts/ChannelDirectMessagesContentMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { } public final class dev/inmo/tgbotapi/types/message/abstracts/CommonChannelDirectMessagesContentMessage$DefaultImpls { @@ -27542,7 +27542,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/CommonContentMessag public static fun getReplyTo (Ldev/inmo/tgbotapi/types/message/abstracts/CommonContentMessage;)Ldev/inmo/tgbotapi/types/message/abstracts/Message; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonForumContentMessage : dev/inmo/tgbotapi/types/message/abstracts/ForumContentMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonForumContentMessage : dev/inmo/tgbotapi/types/message/abstracts/ForumContentMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { } public final class dev/inmo/tgbotapi/types/message/abstracts/CommonForumContentMessage$DefaultImpls { @@ -27555,7 +27555,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/CommonForumContentM public static fun getUser (Ldev/inmo/tgbotapi/types/message/abstracts/CommonForumContentMessage;)Ldev/inmo/tgbotapi/types/chat/User; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonGroupContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/GroupContentMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonGroupContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/GroupContentMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage { } public final class dev/inmo/tgbotapi/types/message/abstracts/CommonGroupContentMessage$DefaultImpls { @@ -27567,7 +27567,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/CommonGroupContentM public static fun getUser (Ldev/inmo/tgbotapi/types/message/abstracts/CommonGroupContentMessage;)Ldev/inmo/tgbotapi/types/chat/User; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonSuggestedChannelDirectMessagesContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage, dev/inmo/tgbotapi/types/message/abstracts/SuggestedChannelDirectMessagesContentMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/CommonSuggestedChannelDirectMessagesContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage, dev/inmo/tgbotapi/types/message/abstracts/SuggestedChannelDirectMessagesContentMessage { } public final class dev/inmo/tgbotapi/types/message/abstracts/CommonSuggestedChannelDirectMessagesContentMessage$DefaultImpls { @@ -27673,6 +27673,15 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/FromChannelSuggeste public static fun getSenderChat (Ldev/inmo/tgbotapi/types/message/abstracts/FromChannelSuggestedChannelDirectMessagesContentMessage;)Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat; } +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage : dev/inmo/tgbotapi/types/message/abstracts/ChatMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage { +} + +public final class dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage$DefaultImpls { + public static fun getBusinessConnectionId-nXr5wdE (Ldev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage;)Ljava/lang/String; + public static fun getMetaInfo-fV8YnZ8 (Ldev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage;)Lkotlin/Triple; + public static fun getUser (Ldev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage;)Ldev/inmo/tgbotapi/types/chat/User; +} + public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage : dev/inmo/tgbotapi/abstracts/FromUser, dev/inmo/tgbotapi/types/message/abstracts/OptionallyFromUserMessage { } @@ -27694,7 +27703,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/GroupContentMessage public static fun getReplyTo (Ldev/inmo/tgbotapi/types/message/abstracts/GroupContentMessage;)Ldev/inmo/tgbotapi/types/message/abstracts/Message; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage : dev/inmo/tgbotapi/types/message/abstracts/ChatEventMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage : dev/inmo/tgbotapi/types/message/abstracts/ChatEventMessage, dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage { public abstract fun getChat ()Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat; } @@ -27929,7 +27938,7 @@ public final class dev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUser public static fun getReplyTo (Ldev/inmo/tgbotapi/types/message/abstracts/PotentiallyFromUserGroupContentMessage;)Ldev/inmo/tgbotapi/types/message/abstracts/Message; } -public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyOfflineMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblySentViaBotCommonMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyWithEffectMessage { +public abstract interface class dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage : dev/inmo/tgbotapi/types/message/abstracts/FromUserChatMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyGuestAnswerMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyOfflineMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblySentViaBotCommonMessage, dev/inmo/tgbotapi/types/message/abstracts/PossiblyWithEffectMessage { public abstract fun getChat ()Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat; } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PassportMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PassportMessage.kt index e6327c20ca..6533cac03d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PassportMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PassportMessage.kt @@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.types.chat.PreviewChat import dev.inmo.tgbotapi.types.message.abstracts.FromUserMessage import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage import dev.inmo.tgbotapi.types.message.abstracts.ChatMessage +import dev.inmo.tgbotapi.types.message.abstracts.FromUserChatMessage import dev.inmo.tgbotapi.types.passport.PassportData data class PassportMessage( @@ -15,4 +16,4 @@ data class PassportMessage( override val from: User, override val date: DateTime, val passportData: PassportData -) : ChatMessage, FromUserMessage +) : FromUserChatMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage.kt index f7814ac14f..d1bf5ba7f2 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage.kt @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.chat.PreviewBot import dev.inmo.tgbotapi.types.chat.PreviewBusinessChat import dev.inmo.tgbotapi.types.message.content.MessageContent -interface BusinessContentMessage : PossiblySentViaBotCommonMessage, FromUserMessage, +interface BusinessContentMessage : PossiblySentViaBotCommonMessage, FromUserChatMessage, WithBusinessConnectionId { override val chat: PreviewBusinessChat override val businessConnectionId: BusinessConnectionId diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage.kt index e943271795..c3fbd31b96 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/FromUserMessage.kt @@ -6,3 +6,5 @@ import dev.inmo.tgbotapi.abstracts.OptionallyFromUser interface OptionallyFromUserMessage : OptionallyFromUser, Message interface FromUserMessage : OptionallyFromUserMessage, FromUser + +interface FromUserChatMessage : FromUserMessage, ChatMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage.kt index 296777cb43..92d4cf4ec1 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupEventMessage.kt @@ -4,6 +4,6 @@ import dev.inmo.tgbotapi.types.chat.PreviewChat import dev.inmo.tgbotapi.types.chat.PreviewGroupChat import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.GroupEvent -interface GroupEventMessage : ChatEventMessage, FromUserMessage { +interface GroupEventMessage : ChatEventMessage, FromUserChatMessage { override val chat: PreviewGroupChat } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt index d71ed90de2..821e420604 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt @@ -49,7 +49,7 @@ interface AnonymousGroupContentMessage : GroupContentMessage get() = chat } -interface CommonGroupContentMessage : GroupContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage, PossiblyGuestAnswerMessage +interface CommonGroupContentMessage : GroupContentMessage, PotentiallyFromUserGroupContentMessage, FromUserChatMessage, PossiblyGuestAnswerMessage interface FromChannelForumContentMessage : FromChannelGroupContentMessage, ForumContentMessage @@ -62,8 +62,8 @@ interface AnonymousForumContentMessage : ForumContentMessage get() = chat } -interface CommonForumContentMessage : ForumContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage, PossiblyGuestAnswerMessage +interface CommonForumContentMessage : ForumContentMessage, PotentiallyFromUserGroupContentMessage, FromUserChatMessage, PossiblyGuestAnswerMessage -interface CommonChannelDirectMessagesContentMessage : ChannelDirectMessagesContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage +interface CommonChannelDirectMessagesContentMessage : ChannelDirectMessagesContentMessage, PotentiallyFromUserGroupContentMessage, FromUserChatMessage -interface CommonSuggestedChannelDirectMessagesContentMessage : SuggestedChannelDirectMessagesContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage +interface CommonSuggestedChannelDirectMessagesContentMessage : SuggestedChannelDirectMessagesContentMessage, PotentiallyFromUserGroupContentMessage, FromUserChatMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage.kt index e00b94e436..8362b35533 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/PrivateContentMessage.kt @@ -4,7 +4,7 @@ import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat import dev.inmo.tgbotapi.types.message.content.MessageContent interface PrivateContentMessage : PossiblySentViaBotCommonMessage, - FromUserMessage, + FromUserChatMessage, PossiblyOfflineMessage, PossiblyWithEffectMessage, PossiblyGuestAnswerMessage {