
    Th                     R    d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	  G d de      Z
y)	zCThis module contains an object that represents a Telegram Location.    )FinalOptional)	constants)TelegramObject)JSONDictc                   ,    e Zd ZU dZdZ	 	 	 	 ddddededee   dee   d	ee   d
ee   dee   f fdZ	e
j                  j                  Zee   ed<   	 e
j                  j                  Zee   ed<   	 e
j                  j                   Zee   ed<    xZS )Locationa1  This object represents a point on the map.

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

    Args:
        longitude (:obj:`float`): Longitude as defined by the sender.
        latitude (:obj:`float`): Latitude as defined by the sender.
        horizontal_accuracy (:obj:`float`, optional): The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.
        live_period (:obj:`int`, optional): Time relative to the message sending date, during which
            the location can be updated, in seconds. For active live locations only.
        heading (:obj:`int`, optional): The direction in which user is moving, in degrees;
            :tg-const:`telegram.Location.MIN_HEADING`-:tg-const:`telegram.Location.MAX_HEADING`.
            For active live locations only.
        proximity_alert_radius (:obj:`int`, optional): Maximum distance for proximity alerts about
            approaching another chat member, in meters. For sent live locations only.

    Attributes:
        longitude (:obj:`float`): Longitude as defined by the sender.
        latitude (:obj:`float`): Latitude as defined by the sender.
        horizontal_accuracy (:obj:`float`): Optional. The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.
        live_period (:obj:`int`): Optional. Time relative to the message sending date, during which
            the location can be updated, in seconds. For active live locations only.
        heading (:obj:`int`): Optional. The direction in which user is moving, in degrees;
            :tg-const:`telegram.Location.MIN_HEADING`-:tg-const:`telegram.Location.MAX_HEADING`.
            For active live locations only.
        proximity_alert_radius (:obj:`int`): Optional. Maximum distance for proximity alerts about
            approaching another chat member, in meters. For sent live locations only.

    )headinghorizontal_accuracylatitudelive_period	longitudeproximity_alert_radiusN
api_kwargsr   r   r   r   r
   r   r   c                    t         |   |       || _        || _        || _        || _        || _        |rt        |      nd | _        | j                  | j                  f| _	        | j                          y )Nr   )super__init__r   r   r   r   r
   intr   	_id_attrs_freeze)	selfr   r   r   r   r
   r   r   	__class__s	           X/opt/server/standalone/crm/venv/lib/python3.12/site-packages/telegram/_files/location.pyr   zLocation.__init__G   sq     	J/ )' 5H *5&-+AC&'t 	# ..$--8    HORIZONTAL_ACCURACYMIN_HEADINGMAX_HEADING)NNNN)__name__
__module____qualname____doc__	__slots__floatr   r   r   r   r   LocationLimitr   r   __annotations__r   r   __classcell__)r   s   @r   r	   r	      s    BI 04%)!%04 *.  &e_	
 c] # !) X&8 '0&=&=&Q&QsQ (55AAKsA (55AAKsAr   r	   N)r"   typingr   r   telegramr   telegram._telegramobjectr   telegram._utils.typesr   r	    r   r   <module>r-      s%   & J "  3 *U~ Ur   