Ë
    õ¡Ÿj0  ã                  ó�   — d Z ddlmZ ddlmZmZ ddlmZ ddlZddlm	Z	 dd„Z
dd„Zdd	„Zdd
„Zdd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Zy)zM
author: Yagnik Poshiya
organization: Webbrains Technologies Private Limited
é    )Úannotations)ÚdatetimeÚtimezone)ÚAnyN)ÚClientc                 ód   — t        j                  t        j                  «      j	                  «       S )N)r   Únowr   ÚutcÚ	isoformat© ó    úa/var/www/html/agent-engine/apps/workers/async/embedding-pipeline-worker/src/supabase/documents.pyÚ_utcnow_isor      s   € Ü�<‰<œŸ™Ó%×/Ñ/Ó1Ð1r   c               ó4  — t        j                  d«      }| j                  d«      j                  d«      j	                  d|«      j                  «       j                  «       }|j                  st        d|› �«      ‚|j                  d|«       |j                  S )Núembedding-worker.dbÚ	documentszuid,project_agent_id,organization_id,file_name,file_type,file_size_bytes,storage_bucket,storage_path,status,is_deletedÚidzDocument not found: z fetch_document ok document_id=%s)
ÚloggingÚ	getLoggerÚtableÚselectÚeqÚmaybe_singleÚexecuteÚdataÚ
ValueErrorÚdebug)ÚsupabaseÚdocument_idÚlogÚress       r   Úfetch_documentr"      s„   € Ü
×
Ñ
Ð1Ó
2€Cà�‰�{Ó#ß	‰ð Dó

÷ 
‰ˆD�+Ó	ß	‰‹ß	‰‹ð ð �8Š8ÜÐ/°¨}Ð=Ó>Ð>Ø‡I�IÐ0°+Ô>Ø�8‰8€Or   c               óÔ   — t        j                  d«      }| j                  d«      j                  dd dœ«      j	                  d|«      j                  «        |j                  d|«       y )Nr   r   Ú
processing)ÚstatusÚerror_messager   z)document_status processing document_id=%s)r   r   r   Úupdater   r   Úinfo©r   r   r    s      r   Úmark_document_processingr*   $   sS   € Ü
×
Ñ
Ð1Ó
2€CØ‡N�N�;Ó×&Ñ&Ø°$Ñ7óç�bˆˆ{ÓŸG™GœIØ‡H�HÐ8¸+ÕFr   c               ó  — t        j                  d«      }| j                  d«      j                  dt	        |«      t        «       d dœ«      j                  d|«      j                  «        |j                  d|t	        |«      «       y )Nr   r   Úready)r%   Úchunk_countÚprocessed_atr&   r   z3document_status ready document_id=%s chunk_count=%s)	r   r   r   r'   Úintr   r   r   r(   )r   r   r-   r    s       r   Úmark_document_readyr0   ,   sh   € Ü
×
Ñ
Ð1Ó
2€CØ‡N�N�;Ó×&Ñ&Ø¬3¨{Ó+;Ì[Ë]ÐmqÑróç�bˆˆ{ÓŸG™GœIØ‡H�HÐBÀKÔQTÐU`ÓQaÕbr   c               óì   — t        j                  d«      }| j                  d«      j                  d|d d t	        «       dœ«      j                  d|«      j                  «        |j                  d|«       y )Nr   r   Úfailedi   )r%   r&   r.   r   z%document_status failed document_id=%s)r   r   r   r'   r   r   r   Úwarning)r   r   Úerrorr    s       r   Úmark_document_failedr5   4   s]   € Ü
×
Ñ
Ð1Ó
2€CØ‡N�N�;Ó×&Ñ&Ø¨e°E°T¨lÌKËMÑZóç�bˆˆ{ÓŸG™GœIØ‡K�KÐ7¸ÕEr   c               óÌ   — t        j                  d«      }| j                  d«      j                  «       j	                  d|«      j                  «        |j                  d|«       y )Nr   Údocument_chunksr   z&document_chunks cleared document_id=%s)r   r   r   Údeleter   r   r(   r)   s      r   Úclear_document_chunksr9   <   sN   € Ü
×
Ñ
Ð1Ó
2€Cà‡N�NÐ$Ó%×,Ñ,Ó.×1Ñ1°-ÀÓM×UÑUÔWØ‡H�HÐ5°{ÕCr   c               ó~  — t        j                  d«      }|sy g }|D ]T  }|j                  ||t        |d   «      t	        |d   «      |j                  d«      |d   |j                  d«      dœ«       ŒV | j                  d«      j                  |«      j                  «        |j                  d	|t        |«      «       y )
Nr   Úchunk_indexÚcontentÚtoken_countÚ	embeddingÚmetadata)r   Úproject_agent_idr;   r<   r=   r>   r?   r7   z/document_chunks inserted document_id=%s rows=%s)r   r   Úappendr/   ÚstrÚgetr   Úinsertr   r(   Úlen)r   r   r@   Úchunksr    ÚrowsÚchs          r   Úinsert_document_chunksrI   C   s·   € ô ×
Ñ
Ð1Ó
2€CáØà€DØò 
ˆØ�‰à*Ø$4Ü" 2 mÑ#4Ó5Ü˜r )™}Ó-Ø!Ÿv™v mÓ4Ø ™_ØŸF™F :Ó.ñõ
	
ð
ð ‡N�NÐ$Ó%×,Ñ,¨TÓ2×:Ñ:Ô<Ø‡H�HÐ>ÀÌSÐQUËYÕWr   )ÚreturnrB   )r   r   r   rB   rJ   zdict[str, Any])r   r   r   rB   rJ   ÚNone)r   r   r   rB   r-   r/   rJ   rK   )r   r   r   rB   r4   rB   rJ   rK   )
r   r   r   rB   r@   rB   rF   zlist[dict[str, Any]]rJ   rK   )Ú__doc__Ú
__future__r   r   r   Útypingr   r   Úsupabase.clientr   r   r"   r*   r0   r5   r9   rI   r   r   r   ú<module>rP      sx   ðñõ
 #ç 'Ý ã Ý "ó2óó"GócóFóDðXØðXð ðXð ð	Xð
 !ðXð 
ôXr   