
    YiG                         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 " 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            	         ^  \ rS rSr% SrSr\R                  R                  r\	\R                     \
S'    \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\S    4U 4S jjj5       rSrU =r$ )ReactionType    a  Base class for Telegram ReactionType Objects.
There exist :class:`telegram.ReactionTypeEmoji`, :class:`telegram.ReactionTypeCustomEmoji`
and :class:`telegram.ReactionTypePaid`.

.. versionadded:: 20.8
.. versionchanged:: 21.5

    Added paid reaction.

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

)typeEMOJICUSTOM_EMOJIPAIDN
api_kwargsr   )emojicustom_emojipaidr   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      =/app/.venv/lib/python3.13/site-packages/telegram/_reaction.pyr   ReactionType.__init__A   s6     	J/)?)?L	    databotr   returnc                 N  > U R                  U5      nUc  gU(       d
  U [        L a  gU R                  [        U R                  [
        U R                  [        0nU [        L a7  UR                  S5      U;   a"  X1R                  S5         R                  X5      $ [        TU ])  XS9$ z,See :meth:`telegram.TelegramObject.de_json`.Nr   )r$   r%   )_parse_datar   r   ReactionTypeEmojir   ReactionTypeCustomEmojir   ReactionTypePaidgetpopde_jsonr   )clsr$   r%   _class_mappingr    s       r!   r/   ReactionType.de_jsonO   s    
 t$<|+ II(5HH&9
 ,488F#3~#E!((6"23;;DFFwD22r#   N)__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   r   __annotations__r   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?*3*@*@*E*ED%	&&
'E *.34i6L6LL
 X&  >B3H%3,4UO3	.	!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*   h   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__~   sE     	l00ZH^^#J"jj]DN    A
A)rD   r   r4   r5   r6   r7   r8   r9   strr   r   r   r<   r=   r>   s   @r!   r*   r*   h   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+      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   rK   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rB   )r   r   r   r   rC   rK   rD   )r   rK   r   r    s      r!   r    ReactionTypeCustomEmoji.__init__   sI     	l77JO^^(7 "224DN rF   )rD   rK   rG   r>   s   @r!   r+   r+      s5    $ %I *.	
5
5 X&	
5 
5r#   r+   c                   F   ^  \ rS rSrSrSrSS.S\\   4U 4S jjjrSr	U =r
$ )r,      z
The reaction is paid.

.. versionadded:: 21.5

Attributes:
    type (:obj:`str`): Type of the reaction,
        always :tg-const:`telegram.ReactionType.PAID`.
 Nr   r   c                ^   > [         TU ]  [        R                  US9  U R	                  5         g rB   )r   r   r   r   r   )r   r   r    s     r!   r   ReactionTypePaid.__init__   s$    l//JGr#   )r4   r5   r6   r7   r8   r9   r   r   r   r<   r=   r>   s   @r!   r,   r,      s(     I;? hx&8  r#   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\S    4U 4S j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   rV   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   rV   rD   r   )r   r   rV   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   )r0   r$   r%   r    s      r!   r/   ReactionCount.de_json   sI    
 t$#++DHHV,<cBVwD22r#   )rD   rV   r   r3   )r4   r5   r6   r7   r8   r9   r   intr   r   r   r;   r/   r<   r=   r>   s   @r!   rT   rT      s|    "I *. 
 X& $ >B3H%3,4UO3	/	"3 3r#   rT   N)r8   typingr   r   r   r   r   telegramr   telegram._telegramobjectr	   telegram._utilsr
   telegram._utils.typesr   r   r   r*   r+   r,   rT   rP   r#   r!   <module>ra      sd   & L A A  3   *E3> E3P +  +F5l 5D| $53N 53r#   