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 a91b4510fe..6e2795035f 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 @@ -186,6 +186,19 @@ const val hasMainWebAppField = "has_main_web_app" const val canJoinGroupsField = "can_join_groups" const val canReadAllGroupMessagesField = "can_read_all_group_messages" const val canReplyField = "can_reply" +const val canReadMessagesField = "can_read_messages" +const val canDeleteOutgoingMessagesField = "can_delete_outgoing_messages" +const val canDeleteAllMessagesField = "can_delete_all_messages" +const val canEditNameField = "can_edit_name" +const val canEditBioField = "can_edit_bio" +const val canEditProfilePhotoField = "can_edit_profile_photo" +const val canEditUsernameField = "can_edit_username" +const val canChangeGiftSettingsField = "can_change_gift_settings" +const val canViewGiftsAndStarsField = "can_view_gifts_and_stars" +const val canConvertGiftsToStarsField = "can_convert_gifts_to_stars" +const val canTransferAndUpgradeGiftsField = "can_transfer_and_upgrade_gifts" +const val canTransferStarsField = "can_transfer_stars" +const val canManageStoriesField = "can_manage_stories" const val supportInlineQueriesField = "supports_inline_queries" const val canConnectToBusinessField = "can_connect_to_business" const val textEntitiesField = "text_entities" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessBotRights.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessBotRights.kt new file mode 100644 index 0000000000..5bdde3368f --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessBotRights.kt @@ -0,0 +1,50 @@ +package dev.inmo.tgbotapi.types.business_connection + +import dev.inmo.tgbotapi.types.canChangeGiftSettingsField +import dev.inmo.tgbotapi.types.canConvertGiftsToStarsField +import dev.inmo.tgbotapi.types.canDeleteAllMessagesField +import dev.inmo.tgbotapi.types.canDeleteOutgoingMessagesField +import dev.inmo.tgbotapi.types.canEditBioField +import dev.inmo.tgbotapi.types.canEditNameField +import dev.inmo.tgbotapi.types.canEditProfilePhotoField +import dev.inmo.tgbotapi.types.canEditUsernameField +import dev.inmo.tgbotapi.types.canManageStoriesField +import dev.inmo.tgbotapi.types.canReadMessagesField +import dev.inmo.tgbotapi.types.canReplyField +import dev.inmo.tgbotapi.types.canTransferAndUpgradeGiftsField +import dev.inmo.tgbotapi.types.canTransferStarsField +import dev.inmo.tgbotapi.types.canViewGiftsAndStarsField +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class BusinessBotRights( + @SerialName(canReplyField) + val canReply: Boolean = false, + @SerialName(canReadMessagesField) + val canMarkMessagesAsRead: Boolean = false, + @SerialName(canDeleteOutgoingMessagesField) + val canDeleteOutgoingMessages: Boolean = false, + @SerialName(canDeleteAllMessagesField) + val canDeleteAllMessages: Boolean = false, + @SerialName(canEditNameField) + val canEditName: Boolean = false, + @SerialName(canEditBioField) + val canEditBio: Boolean = false, + @SerialName(canEditProfilePhotoField) + val canEditProfilePhoto: Boolean = false, + @SerialName(canEditUsernameField) + val canEditUsername: Boolean = false, + @SerialName(canChangeGiftSettingsField) + val canChangeGiftSettings: Boolean = false, + @SerialName(canViewGiftsAndStarsField) + val canViewGiftsAndStars: Boolean = false, + @SerialName(canConvertGiftsToStarsField) + val canConvertGiftsToStars: Boolean = false, + @SerialName(canTransferAndUpgradeGiftsField) + val canTransferAndUpgradeGifts: Boolean = false, + @SerialName(canTransferStarsField) + val canTransferStars: Boolean = false, + @SerialName(canManageStoriesField) + val canManageStories: Boolean = false, +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessConnection.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessConnection.kt index 6701bd1b25..e6226828e2 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessConnection.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/BusinessConnection.kt @@ -16,7 +16,9 @@ sealed interface BusinessConnection : WithBusinessConnectionId { val user: PreviewUser val userChatId: ChatId val date: TelegramDate + val rights: BusinessBotRights val canReply: Boolean + get() = rights.canReply val isEnabled: Boolean override val businessConnectionId: BusinessConnectionId @@ -32,8 +34,8 @@ sealed interface BusinessConnection : WithBusinessConnectionId { override val userChatId: ChatId, @SerialName(dateField) override val date: TelegramDate, - @SerialName(canReplyField) - override val canReply: Boolean, + @SerialName(rightsField) + override val rights: BusinessBotRights = BusinessBotRights(), ) : BusinessConnection { @EncodeDefault override val isEnabled: Boolean = true @@ -49,8 +51,8 @@ sealed interface BusinessConnection : WithBusinessConnectionId { override val userChatId: ChatId, @SerialName(dateField) override val date: TelegramDate, - @SerialName(canReplyField) - override val canReply: Boolean, + @SerialName(rightsField) + override val rights: BusinessBotRights = BusinessBotRights(), ) : BusinessConnection { @EncodeDefault override val isEnabled: Boolean = false diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/RawBusinessConnection.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/RawBusinessConnection.kt index f90c682fd0..b9e9f35c2e 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/RawBusinessConnection.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/business_connection/RawBusinessConnection.kt @@ -15,8 +15,8 @@ internal data class RawBusinessConnection( val userChatId: ChatId, @SerialName(dateField) val date: TelegramDate, - @SerialName(canReplyField) - val canReply: Boolean, + @SerialName(rightsField) + val rights: BusinessBotRights = BusinessBotRights(), @SerialName(isEnabledField) val isEnabled: Boolean ) { @@ -27,14 +27,14 @@ internal data class RawBusinessConnection( user = user, userChatId = userChatId, date = date, - canReply = canReply + rights = rights ) false -> BusinessConnection.Disabled( id = id, user = user, userChatId = userChatId, date = date, - canReply = canReply + rights = rights ) } @@ -43,7 +43,7 @@ internal data class RawBusinessConnection( user = businessConnection.user, userChatId = businessConnection.userChatId, date = businessConnection.date, - canReply = businessConnection.canReply, + rights = businessConnection.rights, isEnabled = businessConnection.isEnabled, ) }