from __future__ import annotations
from typing import TYPE_CHECKING, Any
from pydantic import Field
from .chat import Chat
from .custom import DateTime
if TYPE_CHECKING:
from .accepted_gift_types import AcceptedGiftTypes
from .audio import Audio
from .birthdate import Birthdate
from .business_intro import BusinessIntro
from .business_location import BusinessLocation
from .business_opening_hours import BusinessOpeningHours
from .chat_location import ChatLocation
from .chat_permissions import ChatPermissions
from .chat_photo import ChatPhoto
from .message import Message
from .reaction_type_union import ReactionTypeUnion
from .unique_gift_colors import UniqueGiftColors
from .user_rating import UserRating
[docs]
class ChatFullInfo(Chat):
"""
This object contains full information about a chat.
Source: https://core.telegram.org/bots/api#chatfullinfo
"""
id: int
"""Unique identifier for this chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier."""
type: str
"""Type of the chat, can be either 'private', 'group', 'supergroup' or 'channel'"""
accent_color_id: int
"""Identifier of the accent color for the chat name and backgrounds of the chat photo, reply header, and link preview. See `accent colors <https://core.telegram.org/bots/api#accent-colors>`_ for more details."""
max_reaction_count: int
"""The maximum number of reactions that can be set on a message in the chat"""
accepted_gift_types: AcceptedGiftTypes
"""Information about types of gifts that are accepted by the chat or by the corresponding user for private chats"""
title: str | None = None
"""*Optional*. Title, for supergroups, channels and group chats"""
username: str | None = None
"""*Optional*. Username, for private chats, supergroups and channels if available"""
first_name: str | None = None
"""*Optional*. First name of the other party in a private chat"""
last_name: str | None = None
"""*Optional*. Last name of the other party in a private chat"""
is_forum: bool | None = None
"""*Optional*. :code:`True`, if the supergroup chat is a forum (has `topics <https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups>`_ enabled)"""
is_direct_messages: bool | None = None
"""*Optional*. :code:`True`, if the chat is the direct messages chat of a channel"""
photo: ChatPhoto | None = None
"""*Optional*. Chat photo"""
active_usernames: list[str] | None = None
"""*Optional*. If non-empty, the list of all `active chat usernames <https://telegram.org/blog/topics-in-groups-collectible-usernames#collectible-usernames>`_; for private chats, supergroups and channels"""
birthdate: Birthdate | None = None
"""*Optional*. For private chats, the date of birth of the user"""
business_intro: BusinessIntro | None = None
"""*Optional*. For private chats with business accounts, the intro of the business"""
business_location: BusinessLocation | None = None
"""*Optional*. For private chats with business accounts, the location of the business"""
business_opening_hours: BusinessOpeningHours | None = None
"""*Optional*. For private chats with business accounts, the opening hours of the business"""
personal_chat: Chat | None = None
"""*Optional*. For private chats, the personal channel of the user"""
parent_chat: Chat | None = None
"""*Optional*. Information about the corresponding channel chat; for direct messages chats only"""
available_reactions: list[ReactionTypeUnion] | None = None
"""*Optional*. List of available reactions allowed in the chat. If omitted, then all `emoji reactions <https://core.telegram.org/bots/api#reactiontypeemoji>`_ are allowed."""
background_custom_emoji_id: str | None = None
"""*Optional*. Custom emoji identifier of the emoji chosen by the chat for the reply header and link preview background"""
profile_accent_color_id: int | None = None
"""*Optional*. Identifier of the accent color for the chat's profile background. See `profile accent colors <https://core.telegram.org/bots/api#profile-accent-colors>`_ for more details."""
profile_background_custom_emoji_id: str | None = None
"""*Optional*. Custom emoji identifier of the emoji chosen by the chat for its profile background"""
emoji_status_custom_emoji_id: str | None = None
"""*Optional*. Custom emoji identifier of the emoji status of the chat or the other party in a private chat"""
emoji_status_expiration_date: DateTime | None = None
"""*Optional*. Expiration date of the emoji status of the chat or the other party in a private chat, in Unix time, if any"""
bio: str | None = None
"""*Optional*. Bio of the other party in a private chat"""
has_private_forwards: bool | None = None
"""*Optional*. :code:`True`, if privacy settings of the other party in the private chat allows to use :code:`tg://user?id=<user_id>` links only in chats with the user"""
has_restricted_voice_and_video_messages: bool | None = None
"""*Optional*. :code:`True`, if the privacy settings of the other party restrict sending voice and video note messages in the private chat"""
join_to_send_messages: bool | None = None
"""*Optional*. :code:`True`, if users need to join the supergroup before they can send messages"""
join_by_request: bool | None = None
"""*Optional*. :code:`True`, if all users directly joining the supergroup without using an invite link need to be approved by supergroup administrators"""
description: str | None = None
"""*Optional*. Description, for groups, supergroups and channel chats"""
invite_link: str | None = None
"""*Optional*. Primary invite link, for groups, supergroups and channel chats"""
pinned_message: Message | None = None
"""*Optional*. The most recent pinned message (by sending date)"""
permissions: ChatPermissions | None = None
"""*Optional*. Default chat member permissions, for groups and supergroups"""
can_send_paid_media: bool | None = None
"""*Optional*. :code:`True`, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats."""
slow_mode_delay: int | None = None
"""*Optional*. For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds"""
unrestrict_boost_count: int | None = None
"""*Optional*. For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions"""
message_auto_delete_time: int | None = None
"""*Optional*. The time after which all messages sent to the chat will be automatically deleted; in seconds"""
has_aggressive_anti_spam_enabled: bool | None = None
"""*Optional*. :code:`True`, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators."""
has_hidden_members: bool | None = None
"""*Optional*. :code:`True`, if non-administrators can only get the list of bots and administrators in the chat"""
has_protected_content: bool | None = None
"""*Optional*. :code:`True`, if messages from the chat can't be forwarded to other chats"""
has_visible_history: bool | None = None
"""*Optional*. :code:`True`, if new chat members will have access to old messages; available only to chat administrators"""
sticker_set_name: str | None = None
"""*Optional*. For supergroups, name of the group sticker set"""
can_set_sticker_set: bool | None = None
"""*Optional*. :code:`True`, if the bot can change the group sticker set"""
custom_emoji_sticker_set_name: str | None = None
"""*Optional*. For supergroups, the name of the group's custom emoji sticker set. Custom emoji from this set can be used by all users and bots in the group."""
linked_chat_id: int | None = None
"""*Optional*. Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. This identifier may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier."""
location: ChatLocation | None = None
"""*Optional*. For supergroups, the location to which the supergroup is connected"""
rating: UserRating | None = None
"""*Optional*. For private chats, the rating of the user if any"""
first_profile_audio: Audio | None = None
"""*Optional*. For private chats, the first audio added to the profile of the user"""
unique_gift_colors: UniqueGiftColors | None = None
"""*Optional*. The color scheme based on a unique gift that must be used for the chat's name, message replies and link previews"""
paid_message_star_count: int | None = None
"""*Optional*. The number of Telegram Stars a general user have to pay to send a message to the chat"""
can_send_gift: bool | None = Field(None, json_schema_extra={"deprecated": True})
"""*Optional*. :code:`True`, if gifts can be sent to the chat
.. deprecated:: API:9.0
https://core.telegram.org/bots/api-changelog#april-11-2025"""
if TYPE_CHECKING:
# DO NOT EDIT MANUALLY!!!
# This section was auto-generated via `butcher`
def __init__(
__pydantic__self__,
*,
id: int,
type: str,
accent_color_id: int,
max_reaction_count: int,
accepted_gift_types: AcceptedGiftTypes,
title: str | None = None,
username: str | None = None,
first_name: str | None = None,
last_name: str | None = None,
is_forum: bool | None = None,
is_direct_messages: bool | None = None,
photo: ChatPhoto | None = None,
active_usernames: list[str] | None = None,
birthdate: Birthdate | None = None,
business_intro: BusinessIntro | None = None,
business_location: BusinessLocation | None = None,
business_opening_hours: BusinessOpeningHours | None = None,
personal_chat: Chat | None = None,
parent_chat: Chat | None = None,
available_reactions: list[ReactionTypeUnion] | None = None,
background_custom_emoji_id: str | None = None,
profile_accent_color_id: int | None = None,
profile_background_custom_emoji_id: str | None = None,
emoji_status_custom_emoji_id: str | None = None,
emoji_status_expiration_date: DateTime | None = None,
bio: str | None = None,
has_private_forwards: bool | None = None,
has_restricted_voice_and_video_messages: bool | None = None,
join_to_send_messages: bool | None = None,
join_by_request: bool | None = None,
description: str | None = None,
invite_link: str | None = None,
pinned_message: Message | None = None,
permissions: ChatPermissions | None = None,
can_send_paid_media: bool | None = None,
slow_mode_delay: int | None = None,
unrestrict_boost_count: int | None = None,
message_auto_delete_time: int | None = None,
has_aggressive_anti_spam_enabled: bool | None = None,
has_hidden_members: bool | None = None,
has_protected_content: bool | None = None,
has_visible_history: bool | None = None,
sticker_set_name: str | None = None,
can_set_sticker_set: bool | None = None,
custom_emoji_sticker_set_name: str | None = None,
linked_chat_id: int | None = None,
location: ChatLocation | None = None,
rating: UserRating | None = None,
first_profile_audio: Audio | None = None,
unique_gift_colors: UniqueGiftColors | None = None,
paid_message_star_count: int | None = None,
can_send_gift: bool | None = None,
**__pydantic_kwargs: Any,
) -> None:
# DO NOT EDIT MANUALLY!!!
# This method was auto-generated via `butcher`
# Is needed only for type checking and IDE support without any additional plugins
super().__init__(
id=id,
type=type,
accent_color_id=accent_color_id,
max_reaction_count=max_reaction_count,
accepted_gift_types=accepted_gift_types,
title=title,
username=username,
first_name=first_name,
last_name=last_name,
is_forum=is_forum,
is_direct_messages=is_direct_messages,
photo=photo,
active_usernames=active_usernames,
birthdate=birthdate,
business_intro=business_intro,
business_location=business_location,
business_opening_hours=business_opening_hours,
personal_chat=personal_chat,
parent_chat=parent_chat,
available_reactions=available_reactions,
background_custom_emoji_id=background_custom_emoji_id,
profile_accent_color_id=profile_accent_color_id,
profile_background_custom_emoji_id=profile_background_custom_emoji_id,
emoji_status_custom_emoji_id=emoji_status_custom_emoji_id,
emoji_status_expiration_date=emoji_status_expiration_date,
bio=bio,
has_private_forwards=has_private_forwards,
has_restricted_voice_and_video_messages=has_restricted_voice_and_video_messages,
join_to_send_messages=join_to_send_messages,
join_by_request=join_by_request,
description=description,
invite_link=invite_link,
pinned_message=pinned_message,
permissions=permissions,
can_send_paid_media=can_send_paid_media,
slow_mode_delay=slow_mode_delay,
unrestrict_boost_count=unrestrict_boost_count,
message_auto_delete_time=message_auto_delete_time,
has_aggressive_anti_spam_enabled=has_aggressive_anti_spam_enabled,
has_hidden_members=has_hidden_members,
has_protected_content=has_protected_content,
has_visible_history=has_visible_history,
sticker_set_name=sticker_set_name,
can_set_sticker_set=can_set_sticker_set,
custom_emoji_sticker_set_name=custom_emoji_sticker_set_name,
linked_chat_id=linked_chat_id,
location=location,
rating=rating,
first_profile_audio=first_profile_audio,
unique_gift_colors=unique_gift_colors,
paid_message_star_count=paid_message_star_count,
can_send_gift=can_send_gift,
**__pydantic_kwargs,
)