
    Qi                         d Z ddlZddlm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mZ dd	lmZ erdd
lmZ  G d de	      Z G d de	      Z G d de	      Z G d de	      Zy)z=This module contains objects related to Telegram video chats.    N)Sequence)TYPE_CHECKINGOptional)TelegramObject)User)parse_sequence_arg)extract_tzinfo_from_defaultsfrom_timestamp)JSONDict)Botc                   <     e Zd ZdZdZdddee   ddf fdZ xZS )VideoChatStarteda  
    This object represents a service message about a video
    chat started in the chat. Currently holds no information.

    .. versionadded:: 13.4
    .. versionchanged:: 20.0
        This class was renamed from ``VoiceChatStarted`` in accordance to Bot API 6.0.
     N
api_kwargsr   returnc                F    t         |   |       | j                          y Nr   )super__init___freeze)selfr   	__class__s     >/app/.venv/lib/python3.12/site-packages/telegram/_videochat.pyr   zVideoChatStarted.__init__.   s    J/    )	__name__
__module____qualname____doc__	__slots__r   r   r   __classcell__r   s   @r   r   r   "   s/     I;? hx&8 D  r   r   c                   @     e Zd ZdZdZdddedee   ddf fdZ xZ	S )	VideoChatEndeda"  
    This object represents a service message about a
    video chat ended in the chat.

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

    .. versionadded:: 13.4
    .. versionchanged:: 20.0
        This class was renamed from ``VoiceChatEnded`` in accordance to Bot API 6.0.

    Args:
        duration (:obj:`int`): Voice chat duration in seconds.

    Attributes:
        duration (:obj:`int`): Voice chat duration in seconds.

    )durationNr   r%   r   r   c                x    t         |   |       || _        | j                  f| _        | j	                          y r   )r   r   r%   	_id_attrsr   )r   r%   r   r   s      r   r   zVideoChatEnded.__init__K   s3     	J/%--)r   )
r   r   r   r   r    intr   r   r   r!   r"   s   @r   r$   r$   4   s?    ( I *.	

 X&	

 

 
r   r$   c            	       ~     e Zd ZdZdZdddee   dee   ddf fdZ	e
	 dd	ee   d
ed   ded    f fd       Z xZS )VideoChatParticipantsInviteda  
    This object represents a service message about new members invited to a video chat.

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

    .. versionadded:: 13.4
    .. versionchanged:: 20.0
        This class was renamed from ``VoiceChatParticipantsInvited`` in accordance to Bot API 6.0.

    Args:
        users (Sequence[:class:`telegram.User`]): New members that were invited to the video chat.

            .. versionchanged:: 20.0
                |sequenceclassargs|

    Attributes:
        users (tuple[:class:`telegram.User`]): New members that were invited to the video chat.

            .. versionchanged:: 20.0
                |tupleclassattrs|

    )usersNr   r+   r   r   c                    t         |   |       t        |      | _        | j                  f| _        | j                          y r   )r   r   r   r+   r'   r   )r   r+   r   r   s      r   r   z%VideoChatParticipantsInvited.__init__s   s7     	J/'9%'@
**r   databotr   c                     | j                  |      }|syt        j                  |j                  dg       |      |d<   t        |   ||      S ),See :meth:`telegram.TelegramObject.de_json`.Nr+   r-   r.   )_parse_datar   de_listgetr   de_json)clsr-   r.   r   s      r   r5   z$VideoChatParticipantsInvited.de_json   sK    
 t$TXXgr%:C@WwDc22r   N)r   r   r   r   r    r   r   r   r   r   classmethodr5   r!   r"   s   @r   r*   r*   X   s|    0 I *.	
~
 X&	

 

 >B
3H%
3,4UO
3	0	1
3 
3r   r*   c            	            e Zd ZdZdZdddej                  dee   ddf fdZ	e
	 dd	ee   d
ed   ded    f fd       Z xZS )VideoChatScheduledaa  This object represents a service message about a video chat scheduled in the chat.

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

    .. versionchanged:: 20.0
        This class was renamed from ``VoiceChatScheduled`` in accordance to Bot API 6.0.

    Args:
        start_date (:obj:`datetime.datetime`): Point in time (Unix timestamp) when the video
            chat is supposed to be started by a chat administrator

            .. versionchanged:: 20.3
                |datetime_localization|
    Attributes:
        start_date (:obj:`datetime.datetime`): Point in time (Unix timestamp) when the video
            chat is supposed to be started by a chat administrator

            .. versionchanged:: 20.3
                |datetime_localization|

    )
start_dateNr   r;   r   r   c                x    t         |   |       || _        | j                  f| _        | j	                          y r   )r   r   r;   r'   r   )r   r;   r   r   s      r   r   zVideoChatScheduled.__init__   s3     	J/(2//+r   r-   r.   r   c                     | j                  |      }|syt        |      }t        |d   |      |d<   t        |   ||      S )r0   Nr;   )tzinfor1   )r2   r	   r
   r   r5   )r6   r-   r.   
loc_tzinfor   s       r   r5   zVideoChatScheduled.de_json   sN    
 t$ 2#6
+D,>zR\wDc22r   r7   )r   r   r   r   r    dtmdatetimer   r   r   r8   r5   r!   r"   s   @r   r:   r:      s|    .  I *.	LL X&	
 
 >B3H%3,4UO3	&	'3 3r   r:   )r   rA   r@   collections.abcr   typingr   r   telegram._telegramobjectr   telegram._userr   telegram._utils.argumentparsingr   telegram._utils.datetimer	   r
   telegram._utils.typesr   telegramr   r   r$   r*   r:   r   r   r   <module>rJ      s[   & D  $ * 3  > Q *~ $!^ !H23> 23j63 63r   