
    x'h                     4    d dl Z  G d d      Z G d d      Zy)    Nc                       e Zd ZddZ	 	 	 ddZd Z	 	 	 ddZ	 	 	 ddZ	 	 	 ddZ	 	 	 dd	Z		 	 	 dd
Z
d Z	 	 	 ddedededededededefdZy)StateStorageBasereturnNc                      y N )selfs    \/var/www/flask-api/venv/lib/python3.12/site-packages/telebot/asyncio_storage/base_storage.py__init__zStateStorageBase.__init__   s        c                    K   t         w)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_ids           r
   set_datazStateStorageBase.set_data         "!   	c                    K   t         w)z;
        Get data for a user in a particular chat.
        r   )r	   r   r   s      r
   get_datazStateStorageBase.get_data   s      "!r   c                    K   t         w)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   s          r
   	set_statezStateStorageBase.set_state   s      "!r   c                    K   t         w)z5
        Delete state for a particular user.
        r   r	   r   r   r   r   r   s         r
   delete_statezStateStorageBase.delete_state'   r   r   c                    K   t         w)z=
        Reset data for a particular user in a chat.
        r   r    s         r
   
reset_datazStateStorageBase.reset_data1   r   r   c                    K   t         wr   r   r    s         r
   	get_statezStateStorageBase.get_state;   s     
 "!r   c                     t         )zu
        Should be sync, but should provide a context manager
        with __aenter__ and __aexit__ methods.
        r   r    s         r
   get_interactive_dataz%StateStorageBase.get_interactive_dataB   s
     "!r   c                    K   t         wr   r   )r	   r   r   datas       r
   savezStateStorageBase.saveM   s     !!r   r   r   prefix	separatorr   r   r   c                 (   |g}|r|j                  t        |             |r|j                  |       |r|j                  t        |             |j                  t        |             |j                  t        |             |j                  |      S )z.
        Convert parameters to a key.
        )appendstrjoin)	r	   r   r   r+   r,   r   r   r   paramss	            r
   _get_keyzStateStorageBase._get_keyP   sr     MM#f+&!MM01MM#/01c'l#c'l#~~f%%r   )r   NNNN)__name__
__module____qualname__r   r   r   r   r!   r#   r%   r'   r*   intr/   r2   r   r   r
   r   r      s      $""  $"   $"  $"  $"  $	"" '+!%&& & 	&
 & !$& & & 
&r   r   c                   *    e Zd ZdZ	 	 	 ddZd Zd Zy)StateDataContextz
    Class for data.
    Nc                 f    || _         d | _        || _        || _        || _        || _        || _        y r   )objr)   r   r   r   r   r   )r	   r;   r   r   r   r   r   s          r
   r   zStateDataContext.__init__o   s7     	&<#!2r   c                   K   | j                   j                  | j                  | j                  | j                  | j
                  | j                         d {   }t        j                  |      | _	        | j                  S 7 *w)N)r   r   r   r   r   )
r;   r   r   r   r   r   r   copydeepcopyr)   )r	   r)   s     r
   
__aenter__zStateDataContext.__aenter__   sl     XX&&LLLL#'#>#>"44;; ' 
 
 MM$'	yy
s   ABB+Bc                    K   | j                   j                  | j                  | j                  | j                  | j
                  | j                  | j                         d {   S 7 wr   )r;   r*   r   r   r)   r   r   r   )r	   exc_typeexc_valexc_tbs       r
   	__aexit__zStateDataContext.__aexit__   sS     XX]]LLLLII''""KK
 
 	
 
s   A A)"A'#A)r3   )r4   r5   r6   __doc__r   r?   rD   r   r   r
   r9   r9   j   s!      $3"	
r   r9   )r=   r   r9   r   r   r
   <module>rF      s    c& c&L)
 )
r   