o
    Z/ig                     @   s   d dl Z d dlZd dlmZmZmZ d dlmZ d dlm	Z	 d dlmZmZmZ d dl
mZmZmZ ddlmZ zd d	lmZ W n eyP   d
efddZY nw dd Zd dlmZmZmZ deeeef  d
efddZdS )    N)AnyDictList)Path)#process_invoice_attachment_for_mail)r   r   r   )EnvironmentFileSystemLoaderselect_autoescape   render_results_email_html)get_mail_themereturnc                   C   s    ddddddddd	d
ddddS )NzDsystem-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serifz#020918z#071429z#122647z#0b3b73z#f5f7fbz#9ba4c4z#1fbf75z#f04444z#081937z#0d2142z#132750z#c3d1ff)
font_stackpage_bgcard_bgborder_colorbrand_color
text_colorsecondary_textsuccess_colorerror_colorstat_bgtable_header_bgtag_bgtag_text r   r   r   A/var/www/html/flask_server/apps/wp_invoices_mail_app/processor.pyr      s   r   c                 C   s(  g }| D ]}t |trt|dkr|\}}}nt|dd}t|dd}t|dd}|du rCd}td	| d
|  |d||d qtd|  zt|||d}d|d|pYi }|| W q ty }	 z$t	 }
td| d|	  t|
 |d|t
|	|
d W Y d}	~	qd}	~	ww |S )u  
    Procesa una lista de adjuntos usando la app wp_invoices.

    Devuelve una lista de dicts del tipo:
      - éxito:
        {
          "ok": True,
          "filename": "...",
          "revision_pdf_path": "...",
          "extracted": {...},   # si mail_intake lo incluye
          ...
        }
      - error:
        {
          "ok": False,
          "filename": "...",
          "error": "mensaje",
          "traceback": "stack...",
        }
       filenameunnamedcontentNmimetypezapplication/octet-streamz!Adjunto sin contenido (data=None)u   🔴 z para F)okr   erroru)   🟢 Procesando adjunto con wp_invoices: )datar   r"   T)r#   r   u   🔴 Error procesando adjunto z: )r#   r   r$   	traceback)
isinstancetuplelengetattrprintappendr   	Exceptionr&   
format_excstr)attachmentsresultsattr   r%   r"   err_msgpipeline_resultresultetbr   r   r   $process_attachments_with_wp_invoices%   sX   r8   r1   c                 C   s   t | S )z
    Wrapper para mantener compatibilidad.
    Ahora delega al motor de plantillas centralizado en renderers.py,
    que devuelve el HTML completo del correo de resultados.
    r   )r1   r   r   r   build_email_body_for_resultsx   s   r9   )osr&   typingr   r   r   pathlibr   )apps.wp_invoices.integrations.mail_intaker   jinja2r   r   r	   	renderersr   shared.branding.brandingr   r-   dictr8   r/   r9   r   r   r   r   <module>   s    Q"