Ë
    å°ùi"
  ã            	       óü  — d dl Z d dlZd dlmZ d dlmZmZmZ d dlZd dl	m
Z
  e
«         e j                  d«      Zej                  j                  ej                  j                  ej                  j                  e«      «      «      Z ej$                  dej                  j'                  ed«      «      Z ej$                  dd	«      j+                  d
«      Zdedefd„Zddedededefd„Zdedefd„Zdedefd„Zy)é    N)ÚPath)ÚquoteÚunquoteÚurlparse)Úload_dotenvÚai_visual_helperÚ
DESIGN_DIRÚdesignÚAI_SERVICE_URLzhttp://127.0.0.1:8001ú/ÚvalueÚreturnc                 ó  — t        | xs d«      j                  «       }|sy|j                  d«      s|j                  d«      rt        |«      j                  }n|}t
        j                  j                  t        |«      «      S )NÚ zhttp://zhttps://)ÚstrÚstripÚ
startswithr   ÚpathÚosÚbasenamer   )r   Úrawr   s      ú=/var/www/pod-logistic/pod-api-clone/utils/ai_visual_helper.pyÚextract_design_file_namer      sc   € Ü
ˆeŠk�rÓ
×
 Ñ
 Ó
"€CÙØà
‡~�~�iÔ  C§N¡N°:Ô$>Ü˜‹}×!Ñ!‰àˆä�7‰7×ÑœG D›MÓ*Ð*ó    Úimage_bytesÚfilenameÚcontent_typec                 óž   — d|xs d| |xs dfi}t        j                  t        › d�|d¬«      }|j                  «        |j	                  «       S )NÚfilez	query.pngú	image/pngz/search-imageéZ   )ÚfilesÚtimeout)ÚrequestsÚpostr   Úraise_for_statusÚjson)r   r   r   r"   Úresponses        r   Úsearch_image_filer)      s_   € àØÒ#˜ØØÒ'˜Kð
ð€Eô �}‰}ÜÐ
˜-Ð(ØØô€Hð
 ×ÑÔØ�=‰=‹?Ðr   Údesign_valuec                 óî   — t        | «      }|sy	 t        j                  t        › dt	        |«      › �d¬«      }|j                  «        y# t        $ r!}t        j                  d||«       Y d}~yd}~ww xY w)uT   Ä�Æ°a file vÃ o hÃ ng chá»� FIFO Ä‘á»ƒ AI há»�c ná»�n, tráº£ vá»� ngay khÃ´ng chá»�.Fz/queue-index/é
   ©r#   Tz AI queue-index failed for %s: %sN)	r   r$   r%   r   r   r&   Ú	ExceptionÚloggerÚwarning)r*   Ú	file_namer(   Úexcs       r   Úindex_design_filer3   1   sr   € ä(¨Ó6€IÙØð	Ü—=‘=ÜÐ˜m¬E°)Ó,<Ð+=Ð>Øô
ˆð 	×!Ñ!Ô#ØøÜò Ü�‰Ð9¸9ÀcÔJÜûðús   �9A
 Á
	A4ÁA/Á/A4c                 ó
  — t        | «      }|syd}	 t        j                  t        › dt	        |«      › �d¬«      }|j                  «        d}	 t        j                  j                  t        |«      }t        j                  j                  |«      rt        j                  |«       d}|S # t        $ r!}t        j                  d||«       Y d }~Œ‚d }~ww xY w# t        $ r"}t        j                  d||«       Y d }~|S d }~ww xY w)NFz/delete-product/é   r-   TzAI delete failed for %s: %sz*Local design file delete failed for %s: %s)r   r$   Údeleter   r   r&   r.   r/   r0   r   r   Újoinr	   ÚexistsÚremove)r*   r1   Ú
deleted_okr(   r2   Ú	file_paths         r   Údelete_design_filer<   C   sð   € Ü(¨Ó6€IÙØà€JðFÜ—?‘?ÜÐÐ.¬u°YÓ/?Ð.@ÐAØô
ˆð 	×!Ñ!Ô#Øˆ
ð
UÜ—G‘G—L‘L¤¨YÓ7ˆ	Ü�7‰7�>‰>˜)Ô$Ü�I‰I�iÔ Øˆ
ð Ðøô ò FÜ�‰Ð4°iÀ×EÑEûðFûô ò UÜ�‰ÐCÀYÐPS×TÐTàÐûðUús0   ’;B* ÁAC Â*	CÂ3CÃCÃ	DÃ C=Ã=D)r    )Úloggingr   Úpathlibr   Úurllib.parser   r   r   r$   Údotenvr   Ú	getLoggerr/   r   ÚdirnameÚabspathÚ__file__ÚBASE_DIRÚgetenvr7   r	   Úrstripr   r   r   ÚbytesÚdictr)   Úboolr3   r<   © r   r   ú<module>rL      sù   ðÛ Û 	Ý ß 1Ñ 1ã Ý á „à	ˆ×	Ñ	Ð-Ó	.€à�7‰7�?‰?˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¸8Ó+DÓEÓF€ØˆR�Y‰Y�| R§W¡W§\¡\°(¸HÓ%EÓF€
Ø�—‘Ð+Ð-DÓE×LÑLÈSÓQ€ð
+ Cð 
+¨Có 
+ñ 5ð °Cð Àsð Ð]aó ð$ Cð ¨Dó ð$ Sð ¨Tô r   