U
    g5                     @   s   d Z ddlmZ ddlmZ ddlmZ G dd deZG dd deZG d	d
 d
eZ	G dd deZ
G dd deZG dd deZG dd deZdS )z>This module contains objects related to Telegram forum topics.    )Optional)TelegramObject)JSONDictc                       sB   e Zd ZdZdZdddeeeee ee d fddZ	  Z
S )	
ForumTopica  
    This object represents a forum topic.

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

    .. versionadded:: 20.0

    Args:
        message_thread_id (:obj:`int`): Unique identifier of the forum topic
        name (:obj:`str`): Name of the topic
        icon_color (:obj:`int`): Color of the topic icon in RGB format
        icon_custom_emoji_id (:obj:`str`, optional): Unique identifier of the custom emoji shown
            as the topic icon.

    Attributes:
        message_thread_id (:obj:`int`): Unique identifier of the forum topic
        name (:obj:`str`): Name of the topic
        icon_color (:obj:`int`): Color of the topic icon in RGB format
        icon_custom_emoji_id (:obj:`str`): Optional. Unique identifier of the custom emoji shown
            as the topic icon.
    )
icon_coloricon_custom_emoji_idmessage_thread_idnameN
api_kwargs)r   r	   r   r   r   c                   sD   t  j|d || _|| _|| _|| _| j| j| jf| _|   d S Nr
   )super__init__r   r	   r   r   	_id_attrs_freeze)selfr   r	   r   r   r   	__class__ 8/tmp/pip-unpacked-wheel-swnnwir2/telegram/_forumtopic.pyr   5   s    	zForumTopic.__init__)N)__name__
__module____qualname____doc__	__slots__intstrr   r   r   __classcell__r   r   r   r   r      s    r   c                       s@   e Zd ZdZdZdddeeee ee d fddZ	  Z
S )	ForumTopicCreateda>  
    This object represents the content of a service message about a new forum topic created in
    the chat.

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

    .. versionadded:: 20.0

    Args:
        name (:obj:`str`): Name of the topic
        icon_color (:obj:`int`): Color of the topic icon in RGB format
        icon_custom_emoji_id (:obj:`str`, optional): Unique identifier of the custom emoji shown
            as the topic icon.

    Attributes:
        name (:obj:`str`): Name of the topic
        icon_color (:obj:`int`): Color of the topic icon in RGB format
        icon_custom_emoji_id (:obj:`str`): Optional. Unique identifier of the custom emoji shown
            as the topic icon.
    )r   r   r	   Nr
   )r	   r   r   r   c                   s:   t  j|d || _|| _|| _| j| jf| _|   d S r   )r   r   r	   r   r   r   r   )r   r	   r   r   r   r   r   r   r   b   s    zForumTopicCreated.__init__)N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   I   s    r   c                       s6   e Zd ZdZdZddee dd fddZ  ZS )ForumTopicClosedz
    This object represents a service message about a forum topic closed in the chat.
    Currently holds no information.

    .. versionadded:: 20.0
    r   Nr
   r   returnc                   s   t  j|d |   d S r   r   r   r   r   r   r   r   r   r   ~   s    zForumTopicClosed.__init__	r   r   r   r   r   r   r   r   r   r   r   r   r   r   t   s   r   c                       s6   e Zd ZdZdZddee dd fddZ  ZS )ForumTopicReopenedz
    This object represents a service message about a forum topic reopened in the chat.
    Currently holds no information.

    .. versionadded:: 20.0
    r   Nr
   r    c                   s   t  j|d |   d S r   r"   r#   r   r   r   r      s    zForumTopicReopened.__init__r$   r   r   r   r   r%      s   r%   c                       sB   e Zd ZdZdZdddee ee ee d fddZ  Z	S )	ForumTopicEditedaI  
    This object represents a service message about an edited forum topic.

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

    .. versionadded:: 20.0

    Args:
        name (:obj:`str`, optional): New name of the topic, if it was edited.
        icon_custom_emoji_id (:obj:`str`, optional): New identifier of the custom emoji shown as
            the topic icon, if it was edited; an empty string if the icon was removed.

    Attributes:
        name (:obj:`str`): Optional. New name of the topic, if it was edited.
        icon_custom_emoji_id (:obj:`str`): Optional. New identifier of the custom emoji shown as
            the topic icon, if it was edited; an empty string if the icon was removed.
    )r   r	   Nr
   )r	   r   r   c                   s4   t  j|d || _|| _| j| jf| _|   d S r   )r   r   r	   r   r   r   )r   r	   r   r   r   r   r   r      s
    zForumTopicEdited.__init__)NN)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&      s     r&   c                       s4   e Zd ZdZdZddee d fddZ  ZS )GeneralForumTopicHiddenz
    This object represents a service message about General forum topic hidden in the chat.
    Currently holds no information.

    .. versionadded:: 20.0
    r   Nr
   c                   s   t  j|d |   d S r   r"   r#   r   r   r   r      s    z GeneralForumTopicHidden.__init__r$   r   r   r   r   r'      s   r'   c                       s4   e Zd ZdZdZddee d fddZ  ZS )GeneralForumTopicUnhiddenz
    This object represents a service message about General forum topic unhidden in the chat.
    Currently holds no information.

    .. versionadded:: 20.0
    r   Nr
   c                   s   t  j|d |   d S r   r"   r#   r   r   r   r      s    z"GeneralForumTopicUnhidden.__init__r$   r   r   r   r   r(      s   r(   N)r   typingr   Ztelegram._telegramobjectr   Ztelegram._utils.typesr   r   r   r   r%   r&   r'   r(   r   r   r   r   <module>   s   /+&