U
    ‰¾úg 
  ã                   @   s<   d Z ddlmZ ddlmZ ddlmZ G dd„ deƒZdS )zBThis module contains an object that represents a Telegram Contact.é    )ÚOptional)ÚTelegramObject)ÚJSONDictc                	       sL   e Zd ZdZdZdddœeeee ee ee ee dœ‡ fdd„Z	‡  Z
S )	ÚContacta¥  This object represents a phone contact.

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

    Args:
        phone_number (:obj:`str`): Contact's phone number.
        first_name (:obj:`str`): Contact's first name.
        last_name (:obj:`str`, optional): Contact's last name.
        user_id (:obj:`int`, optional): Contact's user identifier in Telegram.
        vcard (:obj:`str`, optional): Additional data about the contact in the form of a vCard.

    Attributes:
        phone_number (:obj:`str`): Contact's phone number.
        first_name (:obj:`str`): Contact's first name.
        last_name (:obj:`str`): Optional. Contact's last name.
        user_id (:obj:`int`): Optional. Contact's user identifier in Telegram.
        vcard (:obj:`str`): Optional. Additional data about the contact in the form of a vCard.

    )Ú
first_nameÚ	last_nameÚphone_numberÚuser_idÚvcardN©Ú
api_kwargs)r   r   r   r	   r
   r   c                   sF   t ƒ j|d t|ƒ| _|| _|| _|| _|| _| jf| _|  	¡  d S )Nr   )
ÚsuperÚ__init__Ústrr   r   r   r	   r
   Z	_id_attrsZ_freeze)Úselfr   r   r   r	   r
   r   ©Ú	__class__© ú;/tmp/pip-unpacked-wheel-swnnwir2/telegram/_files/contact.pyr   2   s    


zContact.__init__)NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   Úintr   r   Ú__classcell__r   r   r   r   r      s      úøør   N)r   Útypingr   Ztelegram._telegramobjectr   Ztelegram._utils.typesr   r   r   r   r   r   Ú<module>   s   