o
    N,h.                     @   s  d Z ddlmZmZmZmZmZmZ edddZedddZ	er:ddlm
Z
 e
G d	d deZe
G d
d deZededefddZede	dee fddZdeee	f dee fddZededefddZede	dee fddZdeee	f dee fddZedddZedddZere
G dd deZe
G dd deZededefddZededee fddZdeeef dee fddZd S )!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OptionalProtocolTypeVarUnionoverloadTeleUserLikeUserLike)boundTeleUserLikeOptionalUserLikeOptional)type_check_onlyc                   @   s.   e Zd ZU eed< ee ed< ee ed< dS )r	   
first_name	last_nameusernameN)__name__
__module____qualname__str__annotations__r    r   r   e/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/telegram/_utils/usernames.pyr	   $   s   
 c                   @   s2   e Zd ZU ee ed< ee ed< ee ed< dS )r   r   r   r   Nr   r   r   r   r   r   r   r   r   r   r   *   s   
 userlikereturnc                 C      d S Nr   r   r   r   r   get_name1      r   c                 C   r   r   r   r   r   r   r   r   3   r   c                 C   s   | j r	d| j  S t| dS )zwReturns ``username`` prefixed with "@". If  ``username`` is not available, calls
    :func:`get_full_name` below`.
    @r   )r   get_full_namer   r   r   r   r   7   s   
c                 C   r   r   r   r   r   r   r   r!   @   r   r!   c                 C   r   r   r   r   r   r   r   r!   B   r   c                 C   s(   | j sdS | 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   r   r   r   r!   F   s
   TeleLinkableLinkableTeleLinkableOptionalLinkableOptionalc                   @   s   e Zd ZU eed< dS )r$   r   N)r   r   r   r   r   r   r   r   r   r$   Z   s   
 c                   @   s   e Zd ZU ee ed< dS )r&   r   Nr   r   r   r   r   r&   ^   s   
 linkablec                 C   r   r   r   r'   r   r   r   get_linkc   r   r)   c                 C   r   r   r   r(   r   r   r   r)   e   r   c                 C   s   | j r	d| j  S dS )zCIf ``username`` is available, returns a t.me link of the user/chat.zhttps://t.me/N)r   r(   r   r   r   r)   i   s   N)__doc__typingr   r   r   r   r   r   r   r   r   r	   r   r   r   r!   r#   r%   r$   r&   r)   r   r   r   r   <module>   s@    		"