§
    ˆ›j  ã                  ó&  — d dl mZ 	 d dlZd dlZd dlZd dlmZ d dlmZ  ej        e	¦  «        Z
 ej        dd¦  «        Z ej        dd¦  «        Z ej        d	d
¦  «        Z ej        dd¦  «        Zd dlmZ  e¦   «         Z G d„ d¦  «        ZdS )é    )ÚannotationsN)Údatetime)ÚAnyÚBREVO_API_KEYzYxkeysib-62fd40cd7703d8bab006809b025fb4516719c4726af9a2e2b447889f96f3c800-fu9anSd3gwhkHthMÚBREVO_SENDER_EMAILzadmin@dinhsonconstruction.comÚBREVO_SENDER_NAMEzDSCons EnterpriseÚALERT_RECIPIENT_EMAIL)ÚBrevoEmailAdapterc                  óT   — e Zd ZdZe	 	 	 	 ddd„¦   «         Ze	 	 	 ddd„¦   «         ZdS )ÚBrevoEmailServicez6Application Service for Transactional & System Alerts.úDSCons UserNÚrecipient_emailÚstrÚsubjectÚhtml_contentÚrecipient_nameÚsender_emailú
str | NoneÚsender_nameÚattachmentsúlist[dict[str, str]] | NoneÚreturnúdict[str, Any]c           	   ƒ  óT   K  — t                                |||||||¬¦  «        ƒ d{V —†S )u/   Gá»­i email thÃ´ng qua Brevo Secondary Adapter.)r   r   r   r   r   r   r   N)Ú_DEFAULT_BREVO_ADAPTERÚ
send_email)Úclsr   r   r   r   r   r   r   s           ú@C:\Projects\DSCons\app\modules\core\application\alert_service.pyr   zBrevoEmailService.send_email"   sX   è è € õ ,×6Ò6Ø+ØØ%Ø)Ø%Ø#Ø#ð 7ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
ó    úCore ERPÚerror_titleÚ	exceptionúException | NoneÚmodule_nameÚextra_contextúdict[str, Any] | NoneÚboolc              ƒ  ó¢  K  — t          j        ¦   «                              d¦  «        }|rt          j        ¦   «         nd}d}|r7d                     d„ |                     ¦   «         D ¦   «         ¦  «        }d|› d�}d|› d|› d	|› d
|› d|› d�}	d|› d|› d�}
|                      t          |
|	dd¬¦  «        ƒ d{V —†}| 	                    dd¦  «        S )u`   Gá»­i email thÃ´ng bÃ¡o sá»± cá»‘/log lá»—i nghiÃªm trá»�ng cá»§a ERP Ä‘áº¿n Quáº£n trá»‹ viÃªn.z%d/%m/%Y %H:%M:%SzN/AÚ c              3  ó.   K  — | ]\  }}d |› d|› d�V — ŒdS )z]<tr><td style='padding: 6px 12px; border-bottom: 1px solid #334155; color: #94a3b8;'><strong>z`:</strong></td><td style='padding: 6px 12px; border-bottom: 1px solid #334155; color: #f8fafc;'>z
</td></tr>N© )Ú.0ÚkÚvs      r   ú	<genexpr>z:BrevoEmailService.send_system_log_alert.<locals>.<genexpr>F   sa   è è € ð #ð #ñ �A�qðrÐpqð rð rØdeðrð rð rð#ð #ð #ð #ð #ð #r   z¡
            <table style='width: 100%; border-collapse: collapse; margin-top: 12px; background: #1e293b; border-radius: 6px; font-size: 13px;'>
                z"
            </table>
            uÖ  
        <div style="background-color: #0f172a; color: #f8fafc; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; border-radius: 8px; max-width: 680px; margin: 0 auto;">
            <div style="display: flex; align-items: center; border-bottom: 1px solid #334155; padding-bottom: 16px; margin-bottom: 16px;">
                <h2 style="color: #ef4444; margin: 0; font-size: 20px;">âš ï¸� [DSCons ERP Alert] ux   </h2>
            </div>
            <p style="margin: 4px 0; color: #cbd5e1;"><strong>Thá»�i gian ghi nháº­n:</strong> u¼   </p>
            <p style="margin: 4px 0; color: #cbd5e1;"><strong>PhÃ¢n há»‡ phÃ¡t sinh:</strong> <span style="background: #334155; padding: 2px 8px; border-radius: 4px; color: #38bdf8;">z%</span></p>
            
            u•  

            <div style="background-color: #1e293b; padding: 16px; border-radius: 6px; border-left: 4px solid #ef4444; margin-top: 16px;">
                <h4 style="margin: 0 0 8px 0; color: #cbd5e1; font-size: 14px;">Chi tiáº¿t Lá»—i (Stack Trace):</h4>
                <pre style="color: #fca5a5; font-size: 12px; overflow-x: auto; white-space: pre-wrap; font-family: Consolas, monospace; margin: 0;">u[  </pre>
            </div>

            <hr style="border: none; border-top: 1px solid #334155; margin: 24px 0 16px 0;" />
            <p style="font-size: 12px; color: #64748b; margin: 0;">
                Há»‡ Thá»‘ng GiÃ¡m SÃ¡t & BÃ¡o CÃ¡o Sá»± Cá»‘ Tá»± Ä�á»™ng - CÃ´ng Ty TNHH XÃ¢y Dá»±ng Ä�á»‹nh SÆ¡n.
            </p>
        </div>
        u   ðŸš¨ [ERP ALERT] z (ú)zDSCons AdminzDSCons System Monitor)r   r   r   r   r   NÚsuccessF)
r   ÚnowÚstrftimeÚ	tracebackÚ
format_excÚjoinÚitemsr   r	   Úget)r   r!   r"   r$   r%   Útime_strÚstack_traceÚcontext_htmlÚcontext_rowsÚ	html_bodyr   Úress               r   Úsend_system_log_alertz'BrevoEmailService.send_system_log_alert8   sr  è è € õ ”<‘>”>×*Ò*Ð+>Ñ?Ô?ˆØ09ÐD•iÔ*Ñ,Ô,Ð,¸uˆàˆØð 
	ØŸ7š7ð #ð #ð *×/Ò/Ñ1Ô1ð#ñ #ô #ñ ô ˆLð
àðð ð ˆLðð doðð ð
 aiðð ð yDðð ð ðð ð Vaðð ð ˆ	ð, A kÐ@Ð@°XÐ@Ð@Ð@ˆØ—N’NÝ1ØØ"Ø)Ø/ð #ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð �wŠw�y %Ñ(Ô(Ð(r   )r   NNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Nr    N)
r!   r   r"   r#   r$   r   r%   r&   r   r'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr   r?   r+   r   r   r   r      s{   € € € € € Ø@Ð@àð ,Ø#'Ø"&Ø37ð
ð 
ð 
ð 
ñ „[ð
ð* ð '+Ø%Ø/3ð6)ð 6)ð 6)ð 6)ñ „[ð6)ð 6)ð 6)r   r   )Ú
__future__r   ÚloggingÚosr4   r   Útypingr   Ú	getLoggerr@   ÚloggerÚgetenvr   r   r   r	   Ú6app.modules.core.infrastructure.adapters.brevo_adapterr
   r   r   r+   r   r   ú<module>rM      s:  ðØ "Ð "Ð "Ð "Ð "Ð "à ?à €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€à�”	ØØ_ñô €ð �R”YÐ3Ð5TÑUÔUÐ Ø�B”IÐ1Ð3FÑGÔGÐ Ø!˜œ	ØÐ<ñô Ð ð
ð ð ð ð ð ð +Ð*Ñ,Ô,Ð ðP)ð P)ð P)ð P)ð P)ñ P)ô P)ð P)ð P)ð P)r   