
    'i                        d Z ddlmZmZmZmZ  edd      Z edd      Zer&ddlmZ e G d	 de             Z	e G d
 de             Z
ededefd       Zedededz  fd       Zdeez  dedz  fdZededefd       Zedededz  fd       Zdeez  dedz  fdZ edd      Z edd      Zer e G d de             Ze G d de             Zededefd       Zedededz  fd       Zdeez  dedz  fdZy)aB  Helper utilities around Telegram Objects first_name, last_name and username.
.. versionadded:: 22.4

Warning:
    Contents of this module are intended to be used internally by the library and *not* by the
    user. Changes to this module are not considered breaking changes and may not be documented in
    the changelog.
    )TYPE_CHECKINGProtocolTypeVaroverloadTeleUserLikeUserLike)boundTeleUserLikeOptionalUserLikeOptional)type_check_onlyc                   8    e Zd ZU eed<   edz  ed<   edz  ed<   y)r   
first_nameN	last_nameusername__name__
__module____qualname__str__annotations__     c/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/telegram/_utils/usernames.pyr   r   $   s    :*r   c                   >    e Zd ZU edz  ed<   edz  ed<   edz  ed<   y)r   Nr   r   r   r   r   r   r   r   r   *   s     $J:*r   userlikereturnc                      y Nr   r   s    r   get_namer    1       -0r   Nc                      y r   r   r   s    r   r    r    3       <?r   c                 P    | j                   rd| j                    S t        |       S )zwReturns ``username`` prefixed with "@". If  ``username`` is not available, calls
    :func:`get_full_name` below`.
    @r   )r   get_full_namer   s    r   r    r    7   s,     8$$%&&(++r   c                      y r   r   r   s    r   r&   r&   @   s    25r   c                      y r   r   r   s    r   r&   r&   B   s    ADr   c                     | j                   sy| j                  r| j                    d| j                   S | j                   S )z
    If parameter ``first_name`` is not :obj:`None`, gives
    ``first_name`` followed by (if available) `UserLike.last_name`. Otherwise,
    :obj:`None` is returned.
    N )r   r   r   s    r   r&   r&   F   sD     %%&a(:(:';<<r   TeleLinkableLinkableTeleLinkableOptionalLinkableOptionalc                       e Zd ZU eed<   y)r,   r   Nr   r   r   r   r,   r,   Z   s    r   c                       e Zd ZU edz  ed<   y)r.   Nr   r   r   r   r   r.   r.   ^   s    *r   linkablec                      y r   r   r1   s    r   get_linkr4   c   r!   r   c                      y r   r   r3   s    r   r4   r4   e   r#   r   c                 :    | j                   rd| j                    S y)zCIf ``username`` is available, returns a t.me link of the user/chat.zhttps://t.me/N)r   r3   s    r   r4   r4   i   s"    x00122r   )__doc__typingr   r   r   r   r   r
   r   r   r   r   r    r&   r+   r-   r,   r.   r4   r   r   r   <module>r9      s  & > =~Z85=OP &8  
 8   
 0| 0 0 
 0	 ?+ ?d
 ? 
 ?,|&:: ,sTz , 
 5L 5S 5 
 5	 D0 DS4Z D 
 D
L+?? 
C$J 
 ~Z85=OP 8   8   
 0| 0 0 
 0	 ?+ ?d
 ? 
 ?|&:: sTz r   