
    Yi 2                         S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	  \(       a  SSK
Jr   " S S\5      r " S	 S
\5      rg)z8This module contains two objects to request chats/users.    )TYPE_CHECKINGOptional)ChatAdministratorRights)TelegramObject)JSONDict)Botc                      ^  \ rS rSrSrSr      SSS.S\S\\   S\\   S	\\   S
\\   S\\   S\\   S\\	   4U 4S jjjjr
SrU =r$ )KeyboardButtonRequestUsers   uC  This object defines the criteria used to request a suitable user. The identifier of the
selected user will be shared with the bot when the corresponding button is pressed. `More
about requesting users » <https://core.telegram.org/bots/features#chat-and-user-selection>`_.

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

.. versionadded:: 20.8
    This class was previously named ``KeyboardButtonRequestUser``.

Args:
    request_id (:obj:`int`): Signed 32-bit identifier of the request, which will be received
        back in the :class:`telegram.UsersShared` object. Must be unique within the message.
    user_is_bot (:obj:`bool`, optional): Pass :obj:`True` to request a bot, pass :obj:`False`
        to request a regular user. If not specified, no additional restrictions are applied.
    user_is_premium (:obj:`bool`, optional): Pass :obj:`True` to request a premium user, pass
        :obj:`False` to request a non-premium user. If not specified, no additional
        restrictions are applied.
    max_quantity (:obj:`int`, optional): The maximum number of users to be selected;
        :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY` -
        :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MAX_QUANTITY`.
        Defaults to :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY`
        .

        .. versionadded:: 20.8
    request_name (:obj:`bool`, optional): Pass :obj:`True` to request the users' first and last
        name.

        .. versionadded:: 21.1
    request_username (:obj:`bool`, optional): Pass :obj:`True` to request the users' username.

        .. versionadded:: 21.1
    request_photo (:obj:`bool`, optional): Pass :obj:`True` to request the users' photo.

        .. versionadded:: 21.1

Attributes:
    request_id (:obj:`int`): Identifier of the request.
    user_is_bot (:obj:`bool`): Optional. Pass :obj:`True` to request a bot, pass :obj:`False`
        to request a regular user. If not specified, no additional restrictions are applied.
    user_is_premium (:obj:`bool`): Optional. Pass :obj:`True` to request a premium user, pass
        :obj:`False` to request a non-premium user. If not specified, no additional
        restrictions are applied.
    max_quantity (:obj:`int`): Optional. The maximum number of users to be selected;
        :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY` -
        :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MAX_QUANTITY`.
        Defaults to :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY`
        .

        .. versionadded:: 20.8
    request_name (:obj:`bool`): Optional. Pass :obj:`True` to request the users' first and last
        name.

        .. versionadded:: 21.1
    request_username (:obj:`bool`): Optional. Pass :obj:`True` to request the users' username.

        .. versionadded:: 21.1
    request_photo (:obj:`bool`): Optional. Pass :obj:`True` to request the users' photo.

        .. versionadded:: 21.1

)max_quantity
request_idrequest_namerequest_photorequest_usernameuser_is_botuser_is_premiumN
api_kwargsr   r   r   r   r   r   r   r   c                   > [         T	U ]  US9  Xl        X l        X0l        X@l        XPl        X`l        Xpl        U R                  4U l	        U R                  5         g Nr   )super__init__r   r   r   r   r   r   r   	_id_attrs_freeze)
selfr   r   r   r   r   r   r   r   	__class__s
            J/app/.venv/lib/python3.13/site-packages/telegram/_keyboardbuttonrequest.pyr   #KeyboardButtonRequestUsers.__init__i   sW     	J/) ,7/>+7,80@-://+    )r   r   r   r   r   r   r   r   )NNNNNN)__name__
__module____qualname____firstlineno____doc__	__slots__intr   boolr   r   __static_attributes____classcell__r   s   @r   r
   r
      s    =~I '+*.&*'++/(, *. d^ "$	
 sm tn #4.  ~ X& r   r
   c                      ^  \ rS rSrSrSr         SSS.S\S\S\\   S	\\   S
\\   S\\	   S\\	   S\\   S\\   S\\   S\\   S\\
   4U 4S jjjjr\ SS\\
   S\S   S\S    4U 4S jjj5       rSrU =r$ )KeyboardButtonRequestChat   u  This object defines the criteria used to request a suitable chat. The identifier of the
selected user will be shared with the bot when the corresponding button is pressed. `More
about requesting users » <https://core.telegram.org/bots/features#chat-and-user-selection>`_.

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

.. versionadded:: 20.1

Args:
    request_id (:obj:`int`): Signed 32-bit identifier of the request, which will be received
        back in the :class:`telegram.ChatShared` object. Must be unique within the message.
    chat_is_channel (:obj:`bool`): Pass :obj:`True` to request a channel chat, pass
        :obj:`False` to request a group or a supergroup chat.
    chat_is_forum (:obj:`bool`, optional): Pass :obj:`True` to request a forum supergroup, pass
        :obj:`False` to request a non-forum chat. If not specified, no additional
        restrictions are applied.
    chat_has_username (:obj:`bool`, optional): Pass :obj:`True` to request a supergroup or a
        channel with a username, pass :obj:`False` to request a chat without a username. If
        not specified, no additional restrictions are applied.
    chat_is_created (:obj:`bool`, optional): Pass :obj:`True` to request a chat owned by the
        user. Otherwise, no additional restrictions are applied.
    user_administrator_rights (:class:`ChatAdministratorRights`, optional): Specifies the
        required administrator rights of the user in the chat. If not specified, no additional
        restrictions are applied.
    bot_administrator_rights (:class:`ChatAdministratorRights`, optional): Specifies the
        required administrator rights of the bot in the chat. The rights must be a subset of
        :paramref:`user_administrator_rights`. If not specified, no additional restrictions are
        applied.
    bot_is_member (:obj:`bool`, optional): Pass :obj:`True` to request a chat with the bot
        as a member. Otherwise, no additional restrictions are applied.
    request_title (:obj:`bool`, optional): Pass :obj:`True` to request the chat's title.

        .. versionadded:: 21.1
    request_username (:obj:`bool`, optional): Pass :obj:`True` to request the chat's username.

        .. versionadded:: 21.1
    request_photo (:obj:`bool`, optional): Pass :obj:`True` to request the chat's photo.

        .. versionadded:: 21.1
Attributes:
    request_id (:obj:`int`): Identifier of the request.
    chat_is_channel (:obj:`bool`): Pass :obj:`True` to request a channel chat, pass
        :obj:`False` to request a group or a supergroup chat.
    chat_is_forum (:obj:`bool`): Optional. Pass :obj:`True` to request a forum supergroup, pass
        :obj:`False` to request a non-forum chat. If not specified, no additional
        restrictions are applied.
    chat_has_username (:obj:`bool`): Optional. Pass :obj:`True` to request a supergroup or a
        channel with a username, pass :obj:`False` to request a chat without a username. If
        not specified, no additional restrictions are applied.
    chat_is_created (:obj:`bool`) Optional. Pass :obj:`True` to request a chat owned by the
        user. Otherwise, no additional restrictions are applied.
    user_administrator_rights (:class:`ChatAdministratorRights`) Optional. Specifies the
        required administrator rights of the user in the chat. If not specified, no additional
        restrictions are applied.
    bot_administrator_rights (:class:`ChatAdministratorRights`) Optional. Specifies the
        required administrator rights of the bot in the chat. The rights must be a subset of
        :attr:`user_administrator_rights`. If not specified, no additional restrictions are
        applied.
    bot_is_member (:obj:`bool`) Optional. Pass :obj:`True` to request a chat with the bot
        as a member. Otherwise, no additional restrictions are applied.
    request_title (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's title.

        .. versionadded:: 21.1
    request_username (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's username.

        .. versionadded:: 21.1
    request_photo (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's photo.

        .. versionadded:: 21.1
)bot_administrator_rightsbot_is_memberchat_has_usernamechat_is_channelchat_is_createdchat_is_forumr   r   request_titler   user_administrator_rightsNr   r   r1   r3   r0   r2   r5   r.   r/   r4   r   r   r   c                   > [         TU ]  US9  Xl        X l        X0l        X@l        XPl        UU l        Xpl        Xl	        Xl
        Xl        Xl        U R                  4U l        U R                  5         g r   )r   r   r   r1   r3   r0   r2   r5   r.   r/   r4   r   r   r   r   )r   r   r1   r3   r0   r2   r5   r.   r/   r4   r   r   r   r   s                r   r   "KeyboardButtonRequestChat.__init__   sx      	J/)%4 .;1B/>% 	& Ld%-:-:0@-://+r   databotr   returnc                    > U R                  U5      nU(       d  g[        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        TU ]	  XS9$ )z,See :meth:`telegram.TelegramObject.de_json`.Nr5   r.   )r8   r9   )_parse_datar   de_jsongetr   )clsr8   r9   r   s      r   r=   !KeyboardButtonRequestChat.de_json  sy    
 t$,C,K,KHH013-
() ,C+J+JHH/0#,
'( wD22r   )r   r.   r/   r0   r1   r2   r3   r   r   r4   r   r5   )	NNNNNNNNN)N)r    r!   r"   r#   r$   r%   r&   r'   r   r   r   r   classmethodr=   r(   r)   r*   s   @r   r,   r,      s$   FPI$ )-,0*.GKFJ(,(,+/(,$ *.$$ $  ~	$
 $D>$ "$$ $,,C#D$ #++B"C$  ~$  ~$ #4.$  ~$ X&$ $L >B3H%3,4UO3	-	.3 3r   r,   N)r$   typingr   r   !telegram._chatadministratorrightsr   telegram._telegramobjectr   telegram._utils.typesr   telegramr   r
   r,    r   r   <module>rH      s9   & ? * E 3 *d dNN3 N3r   