
    YPi                     n    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	e      Zy
)z@This module contains an object that represents a Telegram Venue.    )TYPE_CHECKINGOptional)Location)TelegramObject)de_json_optional)JSONDict)Botc                        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Z	e
ddeded   dd f fd       Z x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                    t         	|   |       || _        || _        || _        || _        || _        || _        || _        | j                  | j                  f| _	        | j                          y )Nr   )super__init__r   r   r   r   r   r   r   	_id_attrs_freeze)
selfr   r   r   r   r   r   r   r   	__class__s
            K/root/twitch_bot/venv/lib/python3.12/site-packages/telegram/_files/venue.pyr   zVenue.__init__N   si     	J/ #+
#,9.=.=0A--4    databotr	   returnc                     | j                  |      }t        |j                  d      t        |      |d<   t        |   ||      S )z,See :meth:`telegram.TelegramObject.de_json`.r   )r   r   )_parse_datar   getr   r   de_json)clsr   r   r   s      r   r$   zVenue.de_jsonj   sB     t$+DHHZ,@(CPZwDc22r   )NNNN)N)__name__
__module____qualname____doc__	__slots__r   strr   r   r   classmethodr$   __classcell__)r   s   @r   r   r       s    !FI (,)-)-+/ *.  	
  } "# "# $C= X&8 38 3(5/ 3W 3 3r   r   N)r)   typingr   r   telegram._files.locationr   telegram._telegramobjectr   telegram._utils.argumentparsingr   telegram._utils.typesr   telegramr	   r    r   r   <module>r5      s.   & G * - 3 < *Q3N Q3r   