243 lines
10 KiB
Go
243 lines
10 KiB
Go
package tgapi
|
|
|
|
type Chat struct {
|
|
ID int `json:"id"`
|
|
Type string `json:"type"`
|
|
Title *string `json:"title,omitempty"`
|
|
Username *string `json:"username,omitempty"`
|
|
FirstName *string `json:"first_name,omitempty"`
|
|
LastName *string `json:"last_name,omitempty"`
|
|
IsForum *bool `json:"is_forum,omitempty"`
|
|
IsDirectMessages *bool `json:"is_direct_messages,omitempty"`
|
|
}
|
|
|
|
type ChatType string
|
|
|
|
const (
|
|
ChatTypePrivate ChatType = "private"
|
|
ChatTypeGroup ChatType = "group"
|
|
ChatTypeSupergroup ChatType = "supergroup"
|
|
ChatTypeChannel ChatType = "channel"
|
|
)
|
|
|
|
type ChatFullInfo struct {
|
|
ID int `json:"id"`
|
|
Type ChatType `json:"type"`
|
|
Title string `json:"title"`
|
|
Username string `json:"username"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"last_name"`
|
|
IsForum bool `json:"is_forum"`
|
|
IsDirectMessages bool `json:"is_direct_messages"`
|
|
AccentColorID int `json:"accent_color_id"`
|
|
MaxReactionCount int `json:"max_reaction_count"`
|
|
Photo *ChatPhoto `json:"photo,omitempty"`
|
|
ActiveUsernames []string `json:"active_usernames,omitempty"`
|
|
Birthdate *Birthdate `json:"birthdate,omitempty"`
|
|
|
|
BusinessIntro *BusinessIntro `json:"business_intro,omitempty"`
|
|
BusinessLocation *BusinessLocation `json:"business_location,omitempty"`
|
|
BusinessOpeningHours *BusinessOpeningHours `json:"business_opening_hours,omitempty"`
|
|
|
|
PersonalChat *Chat `json:"personal_chat,omitempty"`
|
|
ParentChat *Chat `json:"parent_chat,omitempty"`
|
|
|
|
AvailableReaction []BaseReaction `json:"available_reaction,omitempty"`
|
|
|
|
BackgroundCustomEmojiID *string `json:"background_custom_emoji_id,omitempty"`
|
|
ProfileAccentColorID *int `json:"profile_accent_color_id,omitempty"`
|
|
ProfileBackgroundCustomEmojiID *string `json:"profile_background_custom_emoji_id,omitempty"`
|
|
EmojiStatusCustomEmojiID *string `json:"emoji_status_custom_emoji_id,omitempty"`
|
|
EmojiStatusExpirationDate *int `json:"emoji_status_expiration_date,omitempty"`
|
|
|
|
Bio *string `json:"bio,omitempty"`
|
|
HasPrivateForwards *bool `json:"has_private_forwards,omitempty"`
|
|
HasRestrictedVoiceAndVideoMessages *bool `json:"has_restricted_voice_and_video_messages,omitempty"`
|
|
JoinToSendMessages *bool `json:"join_to_send_messages,omitempty"`
|
|
JoinByRequest *bool `json:"join_by_request,omitempty"`
|
|
|
|
Description *string `json:"description,omitempty"`
|
|
InviteLink *string `json:"invite_link,omitempty"`
|
|
PinnedMessage *Message `json:"pinned_message,omitempty"`
|
|
Permissions *ChatPermissions `json:"permissions,omitempty"`
|
|
AcceptedGiftTypes *AcceptedGiftTypes `json:"accepted_gift_types,omitempty"`
|
|
|
|
CanSendPaidMedia *bool `json:"can_send_paid_media,omitempty"`
|
|
SlowModeDelay *int `json:"slow_mode_delay,omitempty"`
|
|
UnrestrictedBoostCount *int `json:"unrestricted_boost_count,omitempty"`
|
|
MessageAutoDeleteTime *int `json:"message_auto_delete_time,omitempty"`
|
|
HasAggressiveAntiSpamEnabled *bool `json:"has_aggressive_anti_spam_enabled,omitempty"`
|
|
HasHiddenMembers *bool `json:"has_hidden_members,omitempty"`
|
|
HasProtectedContent *bool `json:"has_protected_content,omitempty"`
|
|
HasVisibleHistory *bool `json:"has_visible_history,omitempty"`
|
|
StickerSetName *string `json:"sticker_set_name,omitempty"`
|
|
CanSetStickerSet *bool `json:"can_set_sticker_set,omitempty"`
|
|
CustomEmojiStickerSetName *string `json:"custom_emoji_sticker_set_name,omitempty"`
|
|
LinkedChatID *int `json:"linked_chat_id,omitempty"`
|
|
|
|
Location *ChatLocation `json:"location,omitempty"`
|
|
Rating *UserRating `json:"rating,omitempty"`
|
|
FirstProfileAudio *Audio `json:"first_profile_audio,omitempty"`
|
|
UniqueGiftColors *UniqueGiftColors `json:"unique_gift_colors,omitempty"`
|
|
PaidMessageStarCount *int `json:"paid_message_star_count,omitempty"`
|
|
}
|
|
|
|
type ChatPhoto struct {
|
|
SmallFileID string `json:"small_file_id"`
|
|
SmallFileUniqueID string `json:"small_file_unique_id"`
|
|
BigFileID string `json:"big_file_id"`
|
|
BigFileUniqueID string `json:"big_file_unique_id"`
|
|
}
|
|
|
|
type ChatPermissions struct {
|
|
CanSendMessages bool `json:"can_send_messages"`
|
|
CanSendAudios bool `json:"can_send_audios"`
|
|
CanSendDocuments bool `json:"can_send_documents"`
|
|
CanSendPhotos bool `json:"can_send_photos"`
|
|
CanSendVideoNotes bool `json:"can_send_video_notes"`
|
|
CanSendVoiceNotes bool `json:"can_send_voice_notes"`
|
|
CanSendPolls bool `json:"can_send_polls"`
|
|
CanSendOtherMessages bool `json:"can_send_other_messages"`
|
|
CanAddWebPagePreview bool `json:"can_add_web_page_preview"`
|
|
CanChangeInfo bool `json:"can_change_info"`
|
|
CanInviteUsers bool `json:"can_invite_users"`
|
|
CanPinMessages bool `json:"can_pin_messages"`
|
|
CanManageTopics bool `json:"can_manage_topics"`
|
|
}
|
|
type ChatLocation struct {
|
|
Location Location `json:"location"`
|
|
Address string `json:"address"`
|
|
}
|
|
type ChatInviteLink struct {
|
|
InviteLink string `json:"invite_link"`
|
|
Creator User `json:"creator"`
|
|
CreateJoinRequest bool `json:"create_join_request"`
|
|
IsPrimary bool `json:"is_primary"`
|
|
IsRevoked bool `json:"is_revoked"`
|
|
|
|
Name *string `json:"name,omitempty"`
|
|
ExpireDate *int `json:"expire_date,omitempty"`
|
|
MemberLimit *int `json:"member_limit,omitempty"`
|
|
PendingJoinRequestCount *int `json:"pending_join_request_count,omitempty"`
|
|
SubscriptionPeriod *int `json:"subscription_period,omitempty"`
|
|
SubscriptionPrice *int `json:"subscription_price,omitempty"`
|
|
}
|
|
|
|
type ChatMemberStatusType string
|
|
|
|
const (
|
|
ChatMemberStatusOwner ChatMemberStatusType = "owner"
|
|
ChatMemberStatusAdministrator ChatMemberStatusType = "administrator"
|
|
ChatMemberStatusMember ChatMemberStatusType = "member"
|
|
ChatMemberStatusRestricted ChatMemberStatusType = "restricted"
|
|
ChatMemberStatusLeft ChatMemberStatusType = "left"
|
|
ChatMemberStatusBanned ChatMemberStatusType = "kicked"
|
|
)
|
|
|
|
type ChatMember interface {
|
|
ChatMemberOwner | ChatMemberAdministrator | ChatMemberMember | ChatMemberRestricted | ChatMemberLeft | ChatMemberBanned
|
|
}
|
|
type BaseChatMember struct {
|
|
Status ChatMemberStatusType `json:"status"`
|
|
User User `json:"user"`
|
|
}
|
|
type ChatMemberOwner struct {
|
|
BaseChatMember
|
|
|
|
IsAnonymous bool `json:"is_anonymous"`
|
|
CustomTitle *string `json:"custom_title,omitempty"`
|
|
}
|
|
type ChatMemberAdministrator struct {
|
|
BaseChatMember
|
|
CanBeEdited bool `json:"can_be_edited"`
|
|
IsAnonymous bool `json:"is_anonymous"`
|
|
CanManageChat bool `json:"can_manage_chat"`
|
|
CanDeleteMessages bool `json:"can_delete_messages"`
|
|
CanManageVideoChats bool `json:"can_manage_video_chats"`
|
|
CanRestrictMembers bool `json:"can_restrict_members"`
|
|
CanPromoteMembers bool `json:"can_promote_members"`
|
|
CanChangeInfo bool `json:"can_change_info"`
|
|
CanInviteUsers bool `json:"can_invite_users"`
|
|
CanPostStories bool `json:"can_post_stories"`
|
|
CanEditStories bool `json:"can_edit_stories"`
|
|
CanDeleteStories bool `json:"can_delete_stories"`
|
|
|
|
CanPostMessages *bool `json:"can_post_messages,omitempty"`
|
|
CanEditMessages *bool `json:"can_edit_messages,omitempty"`
|
|
CanPinMessages *bool `json:"can_pin_messages,omitempty"`
|
|
CanManageTopics *bool `json:"can_manage_topics,omitempty"`
|
|
CanManageDirectMessages *bool `json:"can_manage_direct_messages,omitempty"`
|
|
CustomTitle *string `json:"custom_title,omitempty"`
|
|
}
|
|
type ChatMemberMember struct {
|
|
BaseChatMember
|
|
UntilDate *int `json:"until_date,omitempty"`
|
|
}
|
|
type ChatMemberRestricted struct {
|
|
BaseChatMember
|
|
IsMember bool `json:"is_member"`
|
|
CanSendMessages bool `json:"can_send_messages"`
|
|
CanSendAudios bool `json:"can_send_audios"`
|
|
CanSendDocuments bool `json:"can_send_documents"`
|
|
CanSendVideos bool `json:"can_send_videos"`
|
|
CanSendVideoNotes bool `json:"can_send_video_notes"`
|
|
CanSendVoiceNotes bool `json:"can_send_voice_notes"`
|
|
CanSendPolls bool `json:"can_send_polls"`
|
|
CanSendOtherMessages bool `json:"can_send_other_messages"`
|
|
CanAddWebPagePreview bool `json:"can_add_web_page_preview"`
|
|
CanChangeInfo bool `json:"can_change_info"`
|
|
CanInviteUsers bool `json:"can_invite_users"`
|
|
CanPinMessages bool `json:"can_pin_messages"`
|
|
CanManageTopics bool `json:"can_manage_topics"`
|
|
UntilDate int `json:"until_date"`
|
|
}
|
|
type ChatMemberLeft struct {
|
|
BaseChatMember
|
|
}
|
|
type ChatMemberBanned struct {
|
|
BaseChatMember
|
|
UntilDate int `json:"until_date"`
|
|
}
|
|
|
|
type BaseChatBoostSource struct {
|
|
Source string `json:"source"`
|
|
User User `json:"user"`
|
|
}
|
|
type ChatBoostSourcePremium struct{ BaseChatBoostSource }
|
|
type ChatBoostSourceGiftCode struct{ BaseChatBoostSource }
|
|
type ChatBoostSourceGiveaway struct {
|
|
BaseChatBoostSource
|
|
GiveawayMessageID int `json:"giveaway_message_id"`
|
|
PrizeStarCount *int `json:"prize_star_count,omitempty"`
|
|
IsUnclaimed bool `json:"is_unclaimed"`
|
|
}
|
|
type ChatBoost[T BaseChatBoostSource] struct {
|
|
BoostID int `json:"boost_id"`
|
|
AddDate int `json:"add_date"`
|
|
ExpirationDate int `json:"expiration_date"`
|
|
Source T `json:"source"`
|
|
}
|
|
type UserChatBoosts struct {
|
|
Boosts []ChatBoost[BaseChatBoostSource] `json:"boosts"`
|
|
}
|
|
|
|
type ChatAdministratorRights struct {
|
|
IsAnonymous bool `json:"is_anonymous"`
|
|
CanManageChat bool `json:"can_manage_chat"`
|
|
CanDeleteMessages bool `json:"can_delete_messages"`
|
|
CanManageVideoChats bool `json:"can_manage_video_chats"`
|
|
CanRestrictMembers bool `json:"can_restrict_members"`
|
|
CanPromoteMembers bool `json:"can_promote_members"`
|
|
CanChangeInfo bool `json:"can_change_info"`
|
|
CanInviteUsers bool `json:"can_invite_users"`
|
|
CanPostStories bool `json:"can_post_stories"`
|
|
CanEditStories bool `json:"can_edit_stories"`
|
|
CanDeleteStories bool `json:"can_delete_stories"`
|
|
|
|
CanPostMessages *bool `json:"can_post_messages,omitempty"`
|
|
CanEditMessages *bool `json:"can_edit_messages,omitempty"`
|
|
CanPinMessages *bool `json:"can_pin_messages,omitempty"`
|
|
CanManageTopics *bool `json:"can_manage_topics,omitempty"`
|
|
CanManageDirectMessages *bool `json:"can_manage_direct_messages,omitempty"`
|
|
}
|