o
    Zzjç  ã                   @   s’  d Z ddlmZmZmZmZ eddd�Zeddd�Zer6d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dB fdd„ƒZdeeB dedB fdd„Zededefdd„ƒZedededB fdd„ƒZdeeB dedB fdd„Zeddd�Zeddd�Zer¢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dB fdd„ƒZdeeB dedB 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ÚProtocolÚTypeVarÚoverloadÚTeleUserLikeÚUserLike)ÚboundÚTeleUserLikeOptionalÚUserLikeOptional)Útype_check_onlyc                   @   s.   e Zd ZU eed< edB ed< edB ed< dS )r   Ú
first_nameNÚ	last_nameÚusername©Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© r   r   úT/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_utils/usernames.pyr   $   s   
 c                   @   s2   e Zd ZU edB ed< edB ed< edB ed< dS )r
   Nr   r   r   r   r   r   r   r   r
   *   s   
 ÚuserlikeÚreturnc                 C   ó   d S ©Nr   ©r   r   r   r   Úget_name1   ó   r   Nc                 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   Nr   r   r   r   r   r"   Z   s   
 c                   @   s   e Zd ZU edB ed< dS )r$   Nr   r   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   )Ú__doc__Útypingr   r   r   r   r   r	   r   r   r
   r   r   r   r!   r#   r"   r$   r'   r   r   r   r   Ú<module>   s@   		