o
    @Mh                     @   s(   d dl Z G dd dZG dd dZdS )    Nc                   @   s   e Zd ZdddZ			dddZdd Z			dd	d
Z			dddZ			dddZ			dddZ				dddZ
dd Z			ddedededededededefddZdS ) StateStorageBasereturnNc                 C   s   d S N selfr   r   O/var/www/html/venv/lib/python3.10/site-packages/telebot/storage/base_storage.py__init__      zStateStorageBase.__init__c                 C      t )z;
        Set data for a user in a particular chat.
        NotImplementedError)r   chat_iduser_idkeyvaluebusiness_connection_idmessage_thread_idbot_idr   r   r   set_data      zStateStorageBase.set_datac                 C   r   )z;
        Get data for a user in a particular chat.
        r   )r   r   r   r   r   r   get_data   s   zStateStorageBase.get_datac                 C   r   )z
        Set state for a particular user.

        ! Note that you should create a
        record if it does not exist, and
        if a record with state already exists,
        you need to update a record.
        r   )r   r   r   stater   r   r   r   r   r   	set_state   s   zStateStorageBase.set_statec                 C   r   )z5
        Delete state for a particular user.
        r   r   r   r   r   r   r   r   r   r   delete_state'   r   zStateStorageBase.delete_statec                 C   r   )z=
        Reset data for a particular user in a chat.
        r   r   r   r   r   
reset_data1   r   zStateStorageBase.reset_datac                 C   r   r   r   r   r   r   r   	get_state;      zStateStorageBase.get_statec                 C   r   r   r   r   r   r   r   get_interactive_dataB   r   z%StateStorageBase.get_interactive_datac                 C   r   r   r   )r   r   r   datar   r   r   saveI   r
   zStateStorageBase.saver   r   prefix	separatorr   r   r   c           	      C   s^   |g}|r| t| |r| | |r| t| | t| | t| ||S )z.
        Convert parameters to a key.
        )appendstrjoin)	r   r   r   r"   r#   r   r   r   paramsr   r   r   _get_keyL   s   

zStateStorageBase._get_key)r   NNNN)__name__
__module____qualname__r	   r   r   r   r   r   r   r   r!   intr%   r(   r   r   r   r   r      s`    







		r   c                   @   s0   e Zd ZdZ			d	ddZdd Zdd ZdS )
StateDataContextz
    Class for data.
    Nc                 C   sH   || _ |j|||||d}t|| _|| _|| _|| _|| _|| _	d S )N)r   r   r   r   r   )
objr   copydeepcopyr    r   r   r   r   r   )r   r/   r   r   r   r   r   resr   r   r   r	   k   s   	
zStateDataContext.__init__c                 C   s   | j S r   )r    r   r   r   r   	__enter__   s   zStateDataContext.__enter__c                 C   s"   | j | j| j| j| j| j| jS r   )r/   r!   r   r   r    r   r   r   )r   exc_typeexc_valexc_tbr   r   r   __exit__   s   zStateDataContext.__exit__r)   )r*   r+   r,   __doc__r	   r3   r7   r   r   r   r   r.   f   s    	
r.   )r0   r   r.   r   r   r   r   <module>   s    b