
    N[i                     T    d dl m Z  d dlmZ d dlZd dlmZmZ d dlmZ  G d d      Zy)    )datetime)UnionN)rawutils)typesc                   d    e Zd Z	 	 	 	 	 	 	 ddddeeef   dedededed	ed
edededed   ddfdZy)SendContactNselfzpyrogram.Clientchat_idphone_number
first_name	last_namevcarddisable_notificationreply_to_message_idschedule_dateprotect_contentreply_markup)ztypes.InlineKeyboardMarkupztypes.ReplyKeyboardMarkupztypes.ReplyKeyboardRemoveztypes.ForceReplyreturnztypes.Messagec                   K   | j                  t        j                  j                  j	                  | j                  |       d{   t        j                  j                  |||xs d|xs d      d|xs d|| j                         t        j                  |      |	|
r|
j                  |        d{   nd	             d{   }|j                  D ]  }t        |t        j                  j                  t        j                  j                  t        j                  j                   f      s[t        j"                  j%                  | |j&                  |j(                  D ci c]  }|j*                  | c}|j,                  D ci c]  }|j*                  | c}t        t        j                  j                                d{   c S  y7 7 $7 c c}w c c}w 7 w)a  Send phone contacts.

        .. include:: /_includes/usable-by/users-bots.rst

        Parameters:
            chat_id (``int`` | ``str``):
                Unique identifier (int) or username (str) of the target chat.
                For your personal cloud (Saved Messages) you can simply use "me" or "self".
                For a contact that exists in your Telegram address book you can use his phone number (str).

            phone_number (``str``):
                Contact's phone number.

            first_name (``str``):
                Contact's first name.

            last_name (``str``, *optional*):
                Contact's last name.

            vcard (``str``, *optional*):
                Additional data about the contact in the form of a vCard, 0-2048 bytes

            disable_notification (``bool``, *optional*):
                Sends the message silently.
                Users will receive a notification with no sound.

            reply_to_message_id (``int``, *optional*):
                If the message is a reply, ID of the original message.

            schedule_date (:py:obj:`~datetime.datetime`, *optional*):
                Date when the message will be automatically sent.

            protect_content (``bool``, *optional*):
                Protects the contents of the sent message from forwarding and saving.

            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
                Additional interface options. An object for an inline keyboard, custom reply keyboard,
                instructions to remove reply keyboard or to force a reply from the user.

        Returns:
            :obj:`~pyrogram.types.Message`: On success, the sent contact message is returned.

        Example:
            .. code-block:: python

                await app.send_contact("me", "+1-123-456-7890", "Name")
        N )r   r   r   r   )	peermediamessagesilentreply_to_msg_id	random_idr   
noforwardsr   )is_scheduled)invoker   	functionsmessages	SendMediaresolve_peerr   InputMediaContactrnd_idr   datetime_to_timestampwriteupdates
isinstanceUpdateNewMessageUpdateNewChannelMessageUpdateNewScheduledMessageMessage_parser   usersidchats)r
   r   r   r   r   r   r   r   r   r   r   ris                Y/var/www/files/kim/lib/python3.12/site-packages/pyrogram/methods/messages/send_contact.pysend_contactzSendContact.send_contact   s    B ++MM"",,,,W55ii11!-)'o2+2	 2  +3t 3++-#99-H*?K<#5#5d#;;;QU - 
 
&  		A!cii88!ii??!iiAAC D #]]11!))&'gg.QTT1W.&'gg.QTT1W.!+Asyy/R/R!S	 2   			# 6 <
2 /.sh   AG*GA.G*4G5G*GA*G*33G*&G:G*
G#.G*G(	G*G*G*G*)NNNNNNN)	__name__
__module____qualname__r   intstrboolr   r6        r5   r	   r	      s     %)#'"& $ !]]sCx] ] 	]
 ] ] #] !]  ] ] 
]" 
#]r>   r	   )r   typingr   pyrogramr   r   r   r	   r=   r>   r5   <module>rA      s"   &     ^ ^r>   