§
    û‡›j  ã                  óä   — d dl mZ d dlZd dlZd dlmZ d dlZd dlmZ  ej	        d¦  «        Z
 ej        dd¦  «        Z ej        dd	¦  «        Z ej        d
d¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚAny)ÚEmailNotificationPortz#dscons.infrastructure.adapter.brevoÚBREVO_API_KEYzYxkeysib-62fd40cd7703d8bab006809b025fb4516719c4726af9a2e2b447889f96f3c800-fu9anSd3gwhkHthMÚBREVO_SENDER_EMAILzadmin@dinhsonconstruction.comÚBREVO_SENDER_NAMEzDSCons Enterprisec                  ó6   — e Zd ZdZ	 	 	 	 ddd„Z	 	 	 	 ddd„ZdS )ÚBrevoEmailAdapterzTSecondary (Driven) Adapter implementing EmailNotificationPort via Brevo REST API v3.Nç       @Úapi_keyú
str | NoneÚdefault_sender_emailÚdefault_sender_nameÚtimeout_secondsÚfloatÚreturnÚNonec                óh   — |pt           | _        |pt          | _        |pt          | _        || _        d S )N)r   Ú_api_keyr   Ú_sender_emailr   Ú_sender_nameÚ_timeout)Úselfr   r   r   r   s        úLC:\Projects\DSCons\app\modules\core\infrastructure\adapters\brevo_adapter.pyÚ__init__zBrevoEmailAdapter.__init__   s7   € ð  Ð0¥=ˆŒØ1ÐGÕ5GˆÔØ/ÐDÕ3DˆÔØ'ˆŒˆˆó    úDSCons UserÚrecipient_emailÚstrÚsubjectÚhtml_contentÚrecipient_nameÚsender_emailÚsender_nameÚattachmentsúlist[dict[str, str]] | Noneúdict[str, Any]c              ƒ  ó  K  — |p| j         |p| j        dœ||dœg||dœ}|r||d<   d| j        ddœ}		 t          j        | j        ¬¦  «        4 ƒd{V —†}
|
                     d	||	¬
¦  «        ƒ d{V —†}|j        dk    rm|                     ¦   «         }t           
                    d||                     d¦  «        ¦  «         d|                     d¦  «        dœcddd¦  «        ƒd{V —† S t                               d|j        |j        ¦  «         d|j        |j        dœcddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS # t          $ r7}t                               d|¦  «         dt          |¦  «        dœcY d}~S d}~ww xY w)z%Sends an email via Brevo REST API v3.)ÚnameÚemail)r*   r)   )ÚsenderÚtor    ÚhtmlContentÚ
attachmentzapplication/json)Úacceptzapi-keyzcontent-type)ÚtimeoutNz#https://api.brevo.com/v3/smtp/email)ÚjsonÚheaderséÉ   z+Sent email successfully via Brevo to %s: %sÚ	messageIdT)ÚsuccessÚ
message_idz,Failed to send email via Brevo: HTTP %s - %sF)r5   ÚerrorÚstatus_codez4Exception occurred while sending email via Brevo: %s)r5   r7   )r   r   r   ÚhttpxÚAsyncClientr   Úpostr8   r1   ÚloggerÚinfoÚgetr7   ÚtextÚ	Exceptionr   )r   r   r    r!   r"   r#   r$   r%   Úpayloadr2   ÚclientÚresponseÚdataÚexcs                 r   Ú
send_emailzBrevoEmailAdapter.send_email$   sÍ  è è € ð $Ð8 tÔ'8Ø%Ð;¨Ô);ðð ð -°nÐEÐEÐFØØ'ð#
ð #
ˆð ð 	0Ø$/ˆG�LÑ!ð )Ø”}Ø.ð
ð 
ˆð	9ÝÔ(°´Ð?Ñ?Ô?ð ð ð ð ð ð ð À6Ø!'§¢Ø9Ø Ø#ð "-ñ "ô "ð ð ð ð ð ð �ð
 Ô'¨3Ò.Ð.Ø#Ÿ=š=™?œ?�DÝ—K’KØEØ'ØŸš Ñ-Ô-ñô ð ð
 (,¸4¿8º8ÀKÑ;PÔ;PÐQÐQðð ð ð ñ ô ð ð ð ð ð ð ð ð õ —’ØBØÔ(Ø”Mñô ð ð  %Ø%œ]Ø#+Ô#7ðð ð)ð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð øõ2 ð 	9ð 	9ð 	9Ý�LŠLÐOÐQTÑUÔUÐUØ$­s°3©x¬xÐ8Ð8Ð8Ð8Ð8Ð8Ð8Ð8øøøøð	9øøøsN   ² E ÁBD1ÃE Ã)5D1ÄE Ä1
D;Ä;E Ä>D;Ä?E Å
FÅ,F Å:FÆ F)NNNr   )
r   r   r   r   r   r   r   r   r   r   )r   NNN)r   r   r    r   r!   r   r"   r   r#   r   r$   r   r%   r&   r   r'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rF   © r   r   r
   r
      sh   € € € € € Ø^Ð^ð #Ø+/Ø*.Ø!$ð
(ð 
(ð 
(ð 
(ð 
(ð" ,Ø#'Ø"&Ø37ð:9ð :9ð :9ð :9ð :9ð :9ð :9r   r
   )Ú
__future__r   ÚloggingÚosÚtypingr   r9   Ú/app.modules.core.domain.ports.notification_portr   Ú	getLoggerr<   Úgetenvr   r   r   r
   rK   r   r   ú<module>rS      sï   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð à €€€à QÐ QÐ QÐ QÐ QÐ Qà	ˆÔ	Ð@Ñ	AÔ	A€à�”	ØØ_ñô €ð �R”YÐ3Ð5TÑUÔUÐ Ø�B”IÐ1Ð3FÑGÔGÐ ðI9ð I9ð I9ð I9ð I9Ð-ñ I9ô I9ð I9ð I9ð I9r   