
    ՟fCi                         d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZ ddlmZ erddlmZmZmZmZm Z   G d de      Z!y)zGThis module contains an object that represents a Telegram ChatFullInfo.    )datetime)TYPE_CHECKINGOptionalSequenceTuple)	Birthdate)Chat	_ChatBase)ChatLocation)ChatPermissions)	ChatPhoto)ReactionType)parse_sequence_arg)extract_tzinfo_from_defaultsfrom_timestamp)JSONDict)BotBusinessIntroBusinessLocationBusinessOpeningHoursMessagec            ]       n    e Zd ZdZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d=dddedededed	ee   d
ee   dee   dee   dee   dee	   dee
e      dee   ded   ded   ded   ded   dee
e      dee   dee   dee   dee   dee   dee   d ee   d!ee   d"ee   d#ee   d$ee   d%ee   d&ed'   d(ee   d)ee   d*ee   d+ee   d,ee   d-ee   d.ee   d/ee   d0ee   d1ee   d2ee   d3ee   d4ee   d5ee   d6ee   fZ fd7Ze	 d>d8ee   d9ed:   d;ed    f fd<       Z xZS )?ChatFullInfoazA  
    This object contains full information about a chat.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`~telegram.Chat.id` is equal.

    .. versionadded:: 21.2

    .. versionchanged:: 21.3
        Explicit support for all shortcut methods known from :class:`telegram.Chat` on this
        object. Previously those were only available because this class inherited from
        :class:`telegram.Chat`.

    Args:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        accent_color_id (:obj:`int`, optional): Identifier of the
            :class:`accent color <telegram.constants.AccentColor>` for the chat name and
            backgrounds of the chat photo, reply header, and link preview. See `accent colors`_
            for more details.

            .. versionadded:: 20.8
        max_reaction_count (:obj:`int`): The maximum number of reactions that can be set on a
            message in the chat.

            .. versionadded:: 21.2
        title (:obj:`str`, optional): Title, for supergroups, channels and group chats.
        username (:obj:`str`, optional): Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`, optional): First name of the other party in a private chat.
        last_name (:obj:`str`, optional): Last name of the other party in a private chat.
        is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0
        photo (:class:`telegram.ChatPhoto`, optional): Chat photo.
        active_usernames (Sequence[:obj:`str`], optional):  If set, the list of all `active chat
            usernames <https://telegram.org/blog/topics-in-groups-collectible-usernames            #collectible-usernames>`_; for private chats, supergroups and channels.

            .. versionadded:: 20.0
        birthdate (:class:`telegram.Birthdate`, optional): For private chats,
            the date of birth of the user.

            .. versionadded:: 21.1
        business_intro (:class:`telegram.BusinessIntro`, optional): For private chats with
            business accounts, the intro of the business.

            .. versionadded:: 21.1
        business_location (:class:`telegram.BusinessLocation`, optional): For private chats with
            business accounts, the location of the business.

            .. versionadded:: 21.1
        business_opening_hours (:class:`telegram.BusinessOpeningHours`, optional): For private
            chats with business accounts, the opening hours of the business.

            .. versionadded:: 21.1
        personal_chat (:class:`telegram.Chat`, optional): For private chats, the personal channel
            of the user.

            .. versionadded:: 21.1
        available_reactions (Sequence[:class:`telegram.ReactionType`], optional): List of available
            reactions allowed in the chat. If omitted, then all of
            :const:`telegram.constants.ReactionEmoji` are allowed.

            .. versionadded:: 20.8
        background_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of emoji chosen
            by the chat for the reply header and link preview background.

            .. versionadded:: 20.8
        profile_accent_color_id (:obj:`int`, optional): Identifier of the
            :class:`accent color <telegram.constants.ProfileAccentColor>` for the chat's profile
            background. See profile `accent colors`_ for more details.

            .. versionadded:: 20.8
        profile_background_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of
            the emoji chosen by the chat for its profile background.

            .. versionadded:: 20.8
        emoji_status_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of emoji
            status of the chat or the other party in a private chat.

            .. versionadded:: 20.0
        emoji_status_expiration_date (:class:`datetime.datetime`, optional): Expiration date of
            emoji status of the chat or the other party in a private chat, as a datetime object,
            if any.

            |datetime_localization|

            .. versionadded:: 20.5
        bio (:obj:`str`, optional): Bio of the other party in a private chat.
        has_private_forwards (:obj:`bool`, optional): :obj:`True`, if privacy settings of the other
            party in the private chat allows to use ``tg://user?id=<user_id>`` links only in chats
            with the user.

            .. versionadded:: 13.9
        has_restricted_voice_and_video_messages (:obj:`bool`, optional): :obj:`True`, if the
            privacy settings of the other party restrict sending voice and video note messages
            in the private chat.

            .. versionadded:: 20.0
        join_to_send_messages (:obj:`bool`, optional): :obj:`True`, if users need to join the
            supergroup before they can send messages.

            .. versionadded:: 20.0
        join_by_request (:obj:`bool`, optional): :obj:`True`, if all users directly joining the
            supergroup without using an invite link need to be approved by supergroup
            administrators.

            .. versionadded:: 20.0
        description (:obj:`str`, optional): Description, for groups, supergroups and channel chats.
        invite_link (:obj:`str`, optional): Primary invite link, for groups, supergroups and
            channel.
        pinned_message (:class:`telegram.Message`, optional): The most recent pinned message
            (by sending date).
        permissions (:class:`telegram.ChatPermissions`): Optional. Default chat member permissions,
            for groups and supergroups.
        slow_mode_delay (:obj:`int`, optional): For supergroups, the minimum allowed delay between
            consecutive messages sent by each unprivileged user.
        unrestrict_boost_count (:obj:`int`, 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.

            .. versionadded:: 21.0
        message_auto_delete_time (:obj:`int`, optional): The time after which all messages sent to
            the chat will be automatically deleted; in seconds.

            .. versionadded:: 13.4
        has_aggressive_anti_spam_enabled (:obj:`bool`, optional): :obj:`True`, if aggressive
            anti-spam checks are enabled in the supergroup. The field is only available to chat
            administrators.

            .. versionadded:: 20.0
        has_hidden_members (:obj:`bool`, optional): :obj:`True`, if non-administrators can only
            get the list of bots and administrators in the chat.

            .. versionadded:: 20.0
        has_protected_content (:obj:`bool`, optional): :obj:`True`, if messages from the chat can't
            be forwarded to other chats.

            .. versionadded:: 13.9
        has_visible_history (:obj:`bool`, optional): :obj:`True`, if new chat members will have
            access to old messages; available only to chat administrators.

            .. versionadded:: 20.8
        sticker_set_name (:obj:`str`, optional): For supergroups, name of group sticker set.
        can_set_sticker_set (:obj:`bool`, optional): :obj:`True`, if the bot can change group the
            sticker set.
        custom_emoji_sticker_set_name (:obj:`str`, 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.

            .. versionadded:: 21.0
        linked_chat_id (:obj:`int`, optional): Unique identifier for the linked chat, i.e. the
            discussion group identifier for a channel and vice versa; for supergroups and channel
            chats.
        location (:class:`telegram.ChatLocation`, optional): For supergroups, the location to which
            the supergroup is connected.
        can_send_paid_media (:obj:`bool`, optional): :obj:`True`, if paid media messages can be
            sent or forwarded to the channel chat. The field is available only for channel chats.

            .. versionadded:: 21.4

    Attributes:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        accent_color_id (:obj:`int`): Optional. Identifier of the
            :class:`accent color <telegram.constants.AccentColor>` for the chat name and
            backgrounds of the chat photo, reply header, and link preview. See `accent colors`_
            for more details.

            .. versionadded:: 20.8
        max_reaction_count (:obj:`int`): The maximum number of reactions that can be set on a
            message in the chat.

            .. versionadded:: 21.2
        title (:obj:`str`, optional): Title, for supergroups, channels and group chats.
        username (:obj:`str`, optional): Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`, optional): First name of the other party in a private chat.
        last_name (:obj:`str`, optional): Last name of the other party in a private chat.
        is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0
        photo (:class:`telegram.ChatPhoto`): Optional. Chat photo.
        active_usernames (Tuple[:obj:`str`]): Optional. If set, the list of all `active chat
            usernames <https://telegram.org/blog/topics-in-groups-collectible-usernames            #collectible-usernames>`_; for private chats, supergroups and channels.

            This list is empty if the chat has no active usernames or this chat instance was not
            obtained via :meth:`~telegram.Bot.get_chat`.

            .. versionadded:: 20.0
        birthdate (:class:`telegram.Birthdate`): Optional. For private chats,
            the date of birth of the user.

            .. versionadded:: 21.1
        business_intro (:class:`telegram.BusinessIntro`): Optional. For private chats with
            business accounts, the intro of the business.

            .. versionadded:: 21.1
        business_location (:class:`telegram.BusinessLocation`): Optional. For private chats with
            business accounts, the location of the business.

            .. versionadded:: 21.1
        business_opening_hours (:class:`telegram.BusinessOpeningHours`): Optional. For private
            chats with business accounts, the opening hours of the business.

            .. versionadded:: 21.1
        personal_chat (:class:`telegram.Chat`): Optional. For private chats, the personal channel
            of the user.

            .. versionadded:: 21.1
        available_reactions (Tuple[:class:`telegram.ReactionType`]): Optional. List of available
            reactions allowed in the chat. If omitted, then all of
            :const:`telegram.constants.ReactionEmoji` are allowed.

            .. versionadded:: 20.8
        background_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of emoji chosen
            by the chat for the reply header and link preview background.

            .. versionadded:: 20.8
        profile_accent_color_id (:obj:`int`): Optional. Identifier of the
            :class:`accent color <telegram.constants.ProfileAccentColor>` for the chat's profile
            background. See profile `accent colors`_ for more details.

            .. versionadded:: 20.8
        profile_background_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of
            the emoji chosen by the chat for its profile background.

            .. versionadded:: 20.8
        emoji_status_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of emoji
            status of the chat or the other party in a private chat.

            .. versionadded:: 20.0
        emoji_status_expiration_date (:class:`datetime.datetime`): Optional. Expiration date of
            emoji status of the chat or the other party in a private chat, as a datetime object,
            if any.

            |datetime_localization|

            .. versionadded:: 20.5
        bio (:obj:`str`): Optional. Bio of the other party in a private chat.
        has_private_forwards (:obj:`bool`): Optional. :obj:`True`, if privacy settings of the other
            party in the private chat allows to use ``tg://user?id=<user_id>`` links only in chats
            with the user.

            .. versionadded:: 13.9
        has_restricted_voice_and_video_messages (:obj:`bool`): Optional. :obj:`True`, if the
            privacy settings of the other party restrict sending voice and video note messages
            in the private chat.

            .. versionadded:: 20.0
        join_to_send_messages (:obj:`bool`): Optional. :obj:`True`, if users need to join
            the supergroup before they can send messages.

            .. versionadded:: 20.0
        join_by_request (:obj:`bool`): Optional. :obj:`True`, if all users directly joining the
            supergroup without using an invite link need to be approved by supergroup
            administrators.

            .. versionadded:: 20.0
        description (:obj:`str`): Optional. Description, for groups, supergroups and channel chats.
        invite_link (:obj:`str`): Optional. Primary invite link, for groups, supergroups and
            channel.
        pinned_message (:class:`telegram.Message`): Optional. The most recent pinned message
            (by sending date).
        permissions (:class:`telegram.ChatPermissions`): Optional. Default chat member permissions,
            for groups and supergroups.
        slow_mode_delay (:obj:`int`): Optional. For supergroups, the minimum allowed delay between
            consecutive messages sent by each unprivileged user.
        unrestrict_boost_count (:obj:`int`): 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.

            .. versionadded:: 21.0
        message_auto_delete_time (:obj:`int`): Optional. The time after which all messages sent to
            the chat will be automatically deleted; in seconds.

            .. versionadded:: 13.4
        has_aggressive_anti_spam_enabled (:obj:`bool`): Optional. :obj:`True`, if aggressive
            anti-spam checks are enabled in the supergroup. The field is only available to chat
            administrators.

            .. versionadded:: 20.0
        has_hidden_members (:obj:`bool`): Optional. :obj:`True`, if non-administrators can only
            get the list of bots and administrators in the chat.

            .. versionadded:: 20.0
        has_protected_content (:obj:`bool`): Optional. :obj:`True`, if messages from the chat can't
            be forwarded to other chats.

            .. versionadded:: 13.9
        has_visible_history (:obj:`bool`): Optional. :obj:`True`, if new chat members will have
            access to old messages; available only to chat administrators.

            .. versionadded:: 20.8
        sticker_set_name (:obj:`str`): Optional. For supergroups, name of Group sticker set.
        can_set_sticker_set (:obj:`bool`): Optional. :obj:`True`, if the bot can change group the
            sticker set.
        custom_emoji_sticker_set_name (:obj:`str`): 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.

            .. versionadded:: 21.0
        linked_chat_id (:obj:`int`): Optional. Unique identifier for the linked chat, i.e. the
            discussion group identifier for a channel and vice versa; for supergroups and channel
            chats.
        location (:class:`telegram.ChatLocation`): Optional. For supergroups, the location to which
            the supergroup is connected.
        can_send_paid_media (:obj:`bool`): Optional. :obj:`True`, if paid media messages can be
            sent or forwarded to the channel chat. The field is available only for channel chats.

            .. versionadded:: 21.4

    .. _accent colors: https://core.telegram.org/bots/api#accent-colors
    .. _topics: https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups
    )%accent_color_idactive_usernamesavailable_reactionsbackground_custom_emoji_idbio	birthdatebusiness_introbusiness_locationbusiness_opening_hourscan_send_paid_mediacan_set_sticker_setcustom_emoji_sticker_set_namedescriptionemoji_status_custom_emoji_idemoji_status_expiration_date has_aggressive_anti_spam_enabledhas_hidden_membershas_private_forwardshas_protected_content'has_restricted_voice_and_video_messageshas_visible_historyinvite_linkjoin_by_requestjoin_to_send_messageslinked_chat_idlocationmax_reaction_countmessage_auto_delete_timepermissionspersonal_chatphotopinned_messageprofile_accent_color_id"profile_background_custom_emoji_idslow_mode_delaysticker_set_nameunrestrict_boost_countN)
api_kwargsidtyper   r4   titleusername
first_name	last_nameis_forumr8   r   r   r    r   r!   r   r"   r   r7   r	   r   r   r:   r;   r'   r(   r   r+   r-   r1   r0   r&   r/   r9   r   r6   r<   r>   r5   r)   r*   r,   r.   r=   r$   r%   r2   r3   r#   r?   c-          
         t         .|   |||||||	|-       | j                         5  || _        |
| _        || _        || _        || _        || _        || _	        || _
        | | _        |"t        |"      nd | _        |%| _        |&| _        |'| _        |(| _        |*| _        |+| _        || _        || _        || _        t/        |      | _        || _        || _        |#| _        |$| _        t/        |      | _        || _        || _        || _         || _!        |!| _"        |)| _#        || _$        || _%        || _&        || _'        || _(        |,| _)        d d d        y # 1 sw Y   y xY w)N)r@   rA   rB   rC   rD   rE   rF   r?   )*super__init__	_unfrozenr4   r8   r   r+   r&   r/   r9   r6   r<   intr5   r,   r.   r=   r$   r2   r3   r1   r0   r-   r   r   r'   r(   r)   r*   r   r   r   r:   r;   r>   r%   r   r7   r    r!   r"   r#   )/selfr@   rA   r   r4   rB   rC   rD   rE   rF   r8   r   r   r    r!   r"   r7   r   r   r:   r;   r'   r(   r   r+   r-   r1   r0   r&   r/   r9   r6   r<   r>   r5   r)   r*   r,   r.   r=   r$   r%   r2   r3   r#   r?   	__class__s/                                                 Q/var/www/cvtools/html/venv/lib/python3.12/site-packages/telegram/_chatfullinfo.pyrI   zChatFullInfo.__init__  s   b 	!! 	 		
 ^^ /	K+=D#.3DJ&)DH8LD%.9D.9D5CD:ED2AD 1I1U,-[_ ) :OD&7JD$3CD!7JD$1?D4<DM9ND&3BD 7 8 6HHX5YD!?[D-D`D-0 1 7ID#K]#LD$ 3BD =WD+:QD(2 3 :PD'@]D.2;DN1>D;IDARD"J`D'7JD$_/	K /	K /	Ks   D#EEdatabotr   returnc                    | j                  |      }|syt        |      }t        |j                  d      |      |d<   t	        j
                  |j                  d      |      |d<   ddlm}m}m	}m
}  |j
                  |j                  d      |      |d<   t        j
                  |j                  d      |      |d<   t        j
                  |j                  d	      |      |d	<   t        j                  |j                  d
      |      |d
<   t        j
                  |j                  d      |      |d<   t!        j
                  |j                  d      |      |d<    |j
                  |j                  d      |      |d<    |j
                  |j                  d      |      |d<    |j
                  |j                  d      |      |d<   t"        |   ||      S )z,See :meth:`telegram.TelegramObject.de_json`.Nr(   )tzinfor8   r   )r   r   r   r   r9   r6   r3   r   r   r7   r    r!   r"   )rO   rP   )_parse_datar   r   getr   de_jsontelegramr   r   r   r   r   r   r   de_listr   r	   rH   )	clsrO   rP   
loc_tzinfor   r   r   r   rM   s	           rN   rV   zChatFullInfo.de_json  s   
 t$ 2#6
/=HH34Z0
+, "))$((7*;SAW	
 	
 "1:J1KS!Q-55dhh}6MsS]'//0DcJZ&2&:&:488DY;Z\_&`"#%--dhh{.CSI[ $TXXo-F L_!6!6!6txx@P7QSV!W$<$4$<$<TXXFY=Z\_$` !)E)=)E)EHH-.*
%& wDc22    )(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)N)__name__
__module____qualname____doc__	__slots__rK   strr   boolr   r   r   r   r   r   r   r   rI   classmethodrV   __classcell__)rM   s   @rN   r   r   &   s   @D
&I\  $"&$(#'#'%)48)-48:>CG*.@D4815<@6:;?!/3BF04*.%)%).215)-0426;?-104.2*..27;(,+/.2[lK^ *._lKlK lK 	lK
  lK }lK 3-lK SMlK C=lK 4.lK 	"lK #8C=1lK I&lK !1lK $$67lK  !))? @!lK"  '#lK$ &h|&<=%lK& %-SM'lK( "*#)lK* -5SM+lK, '/sm-lK. '/x&8/lK0 c]1lK2 'tn3lK4 2:$5lK6  (~7lK8 "$9lK: c];lK< c]=lK> !+?lK@ o.AlKB "#ClKD !)ElKF #+3-GlKH +34.IlKJ %TNKlKL  (~MlKN &d^OlKP #3-QlKR &d^SlKT (0}UlKV !WlKX <(YlKZ &d^[lK^ X&_lK\ >B%3H%%3,4UO%3	.	!%3 %3r[   r   N)"r_   r   typingr   r   r   r   telegram._birthdater   telegram._chatr	   r
   telegram._chatlocationr   telegram._chatpermissionsr   telegram._files.chatphotor   telegram._reactionr   telegram._utils.argumentparsingr   telegram._utils.datetimer   r   telegram._utils.typesr   rW   r   r   r   r   r   r    r[   rN   <module>rp      sF   ( N  ; ; ) * / 5 / + > Q *\\39 3r[   