
    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    T/var/www/flask-api/venv/lib/python3.12/site-packages/telebot/storage/base_storage.py__init__zStateStorageBase.__init__   s        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_ids           r   set_datazStateStorageBase.set_data   
     "!r   c                     t         )z;
        Get data for a user in a particular chat.
        r   )r
   r   r   s      r   get_datazStateStorageBase.get_data   s
     "!r   c                     t         )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                     t         )z5
        Delete state for a particular user.
        r   r
   r   r   r   r   r   s         r   delete_statezStateStorageBase.delete_state'   r   r   c                     t         )z=
        Reset data for a particular user in a chat.
        r   r    s         r   
reset_datazStateStorageBase.reset_data1   r   r   c                     t         r   r   r    s         r   	get_statezStateStorageBase.get_state;   
    
 "!r   c                     t         r   r   r    s         r   get_interactive_dataz%StateStorageBase.get_interactive_dataB   r&   r   c                     t         r   r   )r
   r   r   datas       r   savezStateStorageBase.saveI   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_keyL   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+   intr0   r3   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                     || _         |j                  |||||      }t        j                  |      | _        || _        || _        || _        || _        || _	        y )N)r   r   r   r   r   )
objr   copydeepcopyr*   r   r   r   r   r   )r
   r<   r   r   r   r   r   ress           r   r   zStateDataContext.__init__k   sd     ll#9/  
 MM#&	&<#!2r   c                     | j                   S r   )r*   r	   s    r   	__enter__zStateDataContext.__enter__   s    yyr   c                     | j                   j                  | j                  | j                  | j                  | j
                  | j                  | j                        S r   )r<   r+   r   r   r*   r   r   r   )r
   exc_typeexc_valexc_tbs       r   __exit__zStateDataContext.__exit__   sE    xx}}LLLLII''""KK
 	
r   r4   )r5   r6   r7   __doc__r   rA   rF   r   r   r   r:   r:   f   s!      $30
r   r:   )r=   r   r:   r   r   r   <module>rH      s    _& _&D(
 (
r   