
    Ii                         S r SSKJrJrJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  \(       a  SSKJr   " S S	\
5      r " S
 S\5      r " S S\5      r " S S\
5      rg)zEThis module contains objects that represents a Telegram ReactionType.    )TYPE_CHECKINGFinalLiteralOptionalUnion)	constants)TelegramObject)enum)JSONDict)Botc                   F  ^  \ rS rSr% SrSr\R                  R                  r\	\R                     \
S'    \R                  R                  r\	\R                     \
S'    SS.S\\S	   \R                  4   S
\\   4U 4S jjjr\S\\   SSS\S    4U 4S jj5       rSrU =r$ )ReactionType   a  Base class for Telegram ReactionType Objects.
There exist :class:`telegram.ReactionTypeEmoji` and :class:`telegram.ReactionTypeCustomEmoji`.

.. versionadded:: 20.8

Args:
    type (:obj:`str`): Type of the reaction. Can be
        :attr:`~telegram.ReactionType.EMOJI` or :attr:`~telegram.ReactionType.CUSTOM_EMOJI`.
Attributes:
    type (:obj:`str`): Type of the reaction. Can be
        :attr:`~telegram.ReactionType.EMOJI` or :attr:`~telegram.ReactionType.CUSTOM_EMOJI`.

)typeEMOJICUSTOM_EMOJIN
api_kwargsr   )emojicustom_emojir   c                   > [         TU ]  US9  [        R                  " [        R
                  X5      U l        U R                  5         g Nr   )super__init__r
   
get_memberr   r   r   _freeze)selfr   r   	__class__s      8/venv/lib/python3.13/site-packages/telegram/_reaction.pyr   ReactionType.__init__5   s6     	J/)?)?L	    databotr   returnc                 D  > U R                  U5      nU(       d  gU [        L aq  UR                  S5      U R                  U R                  4;   aF  UR                  S5      nX0R                  :X  a  [        R                  XS9$ [        R                  XS9$ [        TU ]  XS9$ z,See :meth:`telegram.TelegramObject.de_json`.Nr   )r"   r#   )
_parse_datar   getr   r   popReactionTypeEmojide_jsonReactionTypeCustomEmojir   )clsr"   r#   reaction_typer   s       r   r+   ReactionType.de_jsonC   s     t$,488F#3		3CSCS7T#T HHV,M		)(00d0DD*222FFwD22r!   )__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   r   __annotations__r   r   r   r   r   r   classmethodr+   __static_attributes____classcell__r   s   @r   r   r      s     I+4+A+A+G+GE5''(G82;2H2H2U2UL%	../U? *.+,i.D.DD
 X&  38H- 3E 3h~>V 3 3r!   r   c                   J   ^  \ rS rSrSrSrSS.S\S\\   4U 4S jjjr	S	r
U =r$ )
r*   T   a  
Represents a reaction with a normal emoji.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if the :attr:`emoji` is equal.

.. versionadded:: 20.8

Args:
    emoji (:obj:`str`): Reaction emoji. It can be one of
        :const:`telegram.constants.ReactionEmoji`.

Attributes:
    type (:obj:`str`): Type of the reaction,
        always :tg-const:`telegram.ReactionType.EMOJI`.
    emoji (:obj:`str`): Reaction emoji. It can be one of
    :const:`telegram.constants.ReactionEmoji`.
)r   Nr   r   r   c                   > [         TU ]  [        R                  US9  U R	                  5          Xl        U R
                  4U l        S S S 5        g ! , (       d  f       g = fN)r   r   )r   r   r   r   	_unfrozenr   	_id_attrs)r   r   r   r   s      r   r   ReactionTypeEmoji.__init__j   sE     	l00ZH^^#J"jj]DN    A
A)r@   r   r0   r1   r2   r3   r4   r5   strr   r   r   r8   r9   r:   s   @r   r*   r*   T   s5    & I *.	
+
+ X&	
+ 
+r!   r*   c                   J   ^  \ rS rSrSrSrSS.S\S\\   4U 4S jjjr	S	r
U =r$ )
r,   w   a  
Represents a reaction with a custom emoji.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if the :attr:`custom_emoji_id` is equal.

.. versionadded:: 20.8

Args:
    custom_emoji_id (:obj:`str`): Custom emoji identifier.

Attributes:
    type (:obj:`str`): Type of the reaction,
        always :tg-const:`telegram.ReactionType.CUSTOM_EMOJI`.
    custom_emoji_id (:obj:`str`): Custom emoji identifier.

)custom_emoji_idNr   rG   r   c                   > [         TU ]  [        R                  US9  U R	                  5          Xl        U R
                  4U l        S S S 5        g ! , (       d  f       g = fr>   )r   r   r   r   r?   rG   r@   )r   rG   r   r   s      r   r    ReactionTypeCustomEmoji.__init__   sI     	l77JO^^(7 "224DN rB   )r@   rG   rC   r:   s   @r   r,   r,   w   s5    $ %I *.	
5
5 X&	
5 
5r!   r,   c                      ^  \ rS rSrSrSrSS.S\S\S\\	   4U 4S	 jjjr
\S
\\	   SSS\S    4U 4S jj5       rSrU =r$ )ReactionCount   a=  This class represents a reaction added to a message along with the number of times it was
added.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if the :attr:`type` and :attr:`total_count` is equal.

.. versionadded:: 20.8

Args:
    type (:class:`telegram.ReactionType`): Type of the reaction.
    total_count (:obj:`int`): Number of times the reaction was added.

Attributes:
    type (:class:`telegram.ReactionType`): Type of the reaction.
    total_count (:obj:`int`): Number of times the reaction was added.
)total_countr   Nr   r   rM   r   c                   > [         TU ]  US9  Xl        X l        U R                  U R                  4U l        U R                  5         g r   )r   r   r   rM   r@   r   )r   r   rM   r   r   s       r   r   ReactionCount.__init__   sF     	J/"&	 + II
 	r!   r"   r#   r   r$   c                    > U R                  U5      nU(       d  g[        R                  UR                  S5      U5      US'   [        TU ]	  XS9$ r&   )r'   r   r+   r(   r   )r-   r"   r#   r   s      r   r+   ReactionCount.de_json   sI     t$#++DHHV,<cBVwD22r!   )r@   rM   r   )r0   r1   r2   r3   r4   r5   r   intr   r   r   r7   r+   r8   r9   r:   s   @r   rK   rK      sr    "I *. 
 X& $ 	38H- 	3E 	3h>W 	3 	3r!   rK   N)r4   typingr   r   r   r   r   telegramr   telegram._telegramobjectr	   telegram._utilsr
   telegram._utils.typesr   r   r   r*   r,   rK    r!   r   <module>rY      sV   & L A A  3   *23> 23j +  +F5l 5D33N 33r!   