o
    /hd                     @   s:   d dl mZmZ d dlmZ d dlmZ G dd dZdS )    )AnyCallable)Socket)convert_change_datac                   @   s`   e Zd ZdededefddZedefddZd	e	d
ef fddZ
d	e	d
ef fddZdS )SupabaseRealtimeClientsocketschema
table_namec                 C   s2   |dkr	d| nd| d| }| || _d S )N*z	realtime::)set_channelsubscription)selfr   r   r	   topic r   U/var/www/html/govbot/env/lib/python3.10/site-packages/supabase/lib/realtime_client.py__init__   s
   
zSupabaseRealtimeClient.__init__payloadc                 C   sR   i i d}| j dv r| j|d< t| j| j | j dv r'| j|d< t| j| j |S )N)newold)INSERTUPDATEr   )r   DELETEr   )typerecordr   columns
old_record)r   recordsr   r   r   get_payload_records   s   




z*SupabaseRealtimeClient.get_payload_recordscallback.c                    s$    fdd}j  || S )Nc                    s8   | j | j| j| ji i d}i || } | d S )N)r   tablecommit_timestamp
event_typer   r   )r   r    r!   r   r   )r   enriched_payloadr   r   r   r   cb   s   z%SupabaseRealtimeClient.on.<locals>.cbr   joinon)r   eventr   r%   r   r$   r   r(      s   zSupabaseRealtimeClient.onc                    sP   | j  d d | j  d fdd | j  d fdd | j S )Nok
SUBSCRIBEDerrorc                    s
    d| S )NSUBSCRIPTION_ERRORr   )xr   r   r   <lambda>/   s   
 z2SupabaseRealtimeClient.subscribe.<locals>.<lambda>timeoutc                      s    dS )NRETRYING_AFTER_TIMEOUTr   r   r/   r   r   r0   2   s    r&   )r   r   r   r/   r   	subscribe+   s   

z SupabaseRealtimeClient.subscribeN)__name__
__module____qualname__r   strr   staticmethodr   r   r   r(   r3   r   r   r   r   r      s    
r   N)typingr   r   realtime.connectionr   realtime.transformersr   r   r   r   r   r   <module>   s    