o
    ZzjX  ã                   @   sd   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 er(ddlmZ G dd	„ d	eƒZd
S )z@This module contains an object that represents a Telegram Venue.é    )ÚTYPE_CHECKING)ÚLocation)ÚTelegramObject)Úde_json_optional)ÚJSONDict)ÚBotc                       sŠ   e Zd ZdZdZ				dddœdededededB d	edB d
edB dedB dedB f‡ fdd„Ze	ddedddd f‡ fdd„ƒZ
‡  ZS )ÚVenueaG  This object represents a venue.

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

    Note:
      Foursquare details and Google Place details are mutually exclusive. However, this
      behaviour is undocumented and might be changed by Telegram.

    Args:
        location (:class:`telegram.Location`): Venue location.
        title (:obj:`str`): Name of the venue.
        address (:obj:`str`): Address of the venue.
        foursquare_id (:obj:`str`, optional): Foursquare identifier of the venue.
        foursquare_type (:obj:`str`, optional): Foursquare type of the venue. (For example,
            "arts_entertainment/default", "arts_entertainment/aquarium" or "food/icecream".)
        google_place_id (:obj:`str`, optional): Google Places identifier of the venue.
        google_place_type (:obj:`str`, optional): Google Places type of the venue. (See
            `supported types <https://developers.google.com/maps/documentation/places/web-service            /place-types>`_.)

    Attributes:
        location (:class:`telegram.Location`): Venue location.
        title (:obj:`str`): Name of the venue.
        address (:obj:`str`): Address of the venue.
        foursquare_id (:obj:`str`): Optional. Foursquare identifier of the venue.
        foursquare_type (:obj:`str`): Optional. Foursquare type of the venue. (For example,
            "arts_entertainment/default", "arts_entertainment/aquarium" or "food/icecream".)
        google_place_id (:obj:`str`): Optional. Google Places identifier of the venue.
        google_place_type (:obj:`str`): Optional. Google Places type of the venue. (See
            `supported types <https://developers.google.com/maps/documentation/places/web-service            /place-types>`_.)

    )ÚaddressÚfoursquare_idÚfoursquare_typeÚgoogle_place_idÚgoogle_place_typeÚlocationÚtitleN©Ú
api_kwargsr   r   r	   r
   r   r   r   r   c          	         sR   t ƒ j|d� || _|| _|| _|| _|| _|| _|| _| j| jf| _	|  
¡  d S )Nr   )ÚsuperÚ__init__r   r   r	   r
   r   r   r   Ú	_id_attrsÚ_freeze)	Úselfr   r   r	   r
   r   r   r   r   ©Ú	__class__© úP/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_files/venue.pyr   N   s   zVenue.__init__ÚdataÚbotz
Bot | NoneÚreturnc                    s0   |   |¡}t| d¡t|ƒ|d< tƒ j||d�S )z,See :meth:`telegram.TelegramObject.de_json`.r   )r   r   )Ú_parse_datar   Úgetr   r   Úde_json)Úclsr   r   r   r   r   r    j   s   
zVenue.de_json)NNNN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   Ústrr   r   Úclassmethodr    Ú__classcell__r   r   r   r   r       s8    #ø
öþýüûúùø
ö&r   N)r%   Útypingr   Útelegram._files.locationr   Útelegram._telegramobjectr   Útelegram._utils.argumentparsingr   Útelegram._utils.typesr   Útelegramr   r   r   r   r   r   Ú<module>   s   