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   W/var/www/html/venv/lib/python3.10/site-packages/telebot/asyncio_storage/base_storage.py__init__   s   zStateStorageBase.__init__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                    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                    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                    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                    r	   )z=
        Reset data for a particular user in a chat.
        r
   r   r   r   r   
reset_data1   r   zStateStorageBase.reset_datac                    r	   r   r
   r   r   r   r   	get_state;   s   zStateStorageBase.get_statec                 C   s   t )zu
        Should be sync, but should provide a context manager
        with __aenter__ and __aexit__ methods.
        r
   r   r   r   r   get_interactive_dataB   s   	z%StateStorageBase.get_interactive_datac                    r	   r   r
   )r   r   r   datar   r   r   saveM   s   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_keyP   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   s.   || _ d | _|| _|| _|| _|| _|| _d S r   )objr   r   r   r   r   r   )r   r,   r   r   r   r   r   r   r   r   r   o   s   	
zStateDataContext.__init__c                    s:   | j j| j| j| j| j| jdI d H }t|| _	| j	S )N)r   r   r   r   r   )
r,   r   r   r   r   r   r   copydeepcopyr   )r   r   r   r   r   
__aenter__   s   zStateDataContext.__aenter__c                    s*   | j | j| j| j| j| j| jI d H S r   )r,   r   r   r   r   r   r   r   )r   exc_typeexc_valexc_tbr   r   r   	__aexit__   s   
zStateDataContext.__aexit__r&   )r'   r(   r)   __doc__r   r/   r3   r   r   r   r   r+   j   s    	
r+   )r-   r   r+   r   r   r   r   <module>   s    f