o
    "h                     @   sh   d Z ddlmZ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Optional)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e d	ee d
ee dee dee f fddZ	e
ddeded dd f fddZ  ZS )VenueaO  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            /supported_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            /supported_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__ H/var/www/html/venv/lib/python3.10/site-packages/telegram/_files/venue.pyr   N   s   zVenue.__init__databotr   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   r   classmethodr!   __classcell__r   r   r   r   r	       s8    #

*r	   N)r&   typingr   r   telegram._files.locationr   telegram._telegramobjectr   telegram._utils.argumentparsingr   telegram._utils.typesr   telegramr   r	   r   r   r   r   <module>   s   