§
    rþ•jƒ  ã                   ó
  — d dl mZ d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ  G d
„ de¦  «        Z G d„ deeef         ¦  «        Z G d„ de¦  «        Z G d„ deedf         ¦  «        ZdS )é    )ÚOptional)ÚUUID)Údatetime)ÚICommandÚICommandHandler)ÚtransactionalÚlog_execution)ÚBasePostgresClient)Ú	event_bus)ÚPartner)ÚPartnerRepositoryc                   óX   — e Zd ZU eed<   eed<   dZee         ed<   dZee         ed<   dS )ÚCreatePartnerCommandÚnameÚtypeNÚtax_codeÚaddress)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r   © ó    ú?C:\Projects\DSCons\app\modules\partners\application\commands.pyr   r      sL   € € € € € € Ø
€I€I�IØ
€I€I�IØ"€Hˆh�sŒmÐ"Ð"Ñ"Ø!€GˆX�cŒ]Ð!Ð!Ñ!Ð!Ð!r   r   c                   óJ   — e Zd Zdefd„Zeededefd„¦   «         ¦   «         Z	dS )ÚCreatePartnerCommandHandlerÚpostgres_clientc                 ó   — || _         d S ©N©Ú_postgres_client©Úselfr   s     r   Ú__init__z$CreatePartnerCommandHandler.__init__   ó   € Ø /ˆÔÐÐr   ÚcommandÚreturnc                 óÖ  — t          | j        ¦  «        }t          |j        |j        |j        |j        ¬¦  «        }|                     |¦  «         t          |j	        ¦  «        |j        |j        |j        t          j        ¦   «                              ¦   «         dœ}| j                             ¦   «         5 }t          j        |d|¦  «         d d d ¦  «         n# 1 swxY w Y   |j	        S )N)r   r   r   r   )Ú
partner_idr   r   r   Ú	timestampÚPartnerCreatedIntegrationEvent)r   Ú_connr   r   r   r   r   Úsaver   Úidr   ÚutcnowÚ	isoformatÚcursorr   Úpublish_outbox)r$   r'   ÚrepoÚpartnerÚevent_payloadÚcurs         r   Úhandlez"CreatePartnerCommandHandler.handle   s*  € õ ! ¤Ñ,Ô,ˆõ Ø”Ø”ØÔ%Ø”Oð	
ñ 
ô 
ˆð 	�	Š	�'ÑÔÐõ ˜gœj™/œ/Ø”LØ”LØÔ(Ý!œÑ*Ô*×4Ò4Ñ6Ô6ð
ð 
ˆð ŒZ×ÒÑ Ô ð 	[ CåÔ$ SÐ*JÈMÑZÔZÐZð	[ð 	[ð 	[ñ 	[ô 	[ð 	[ð 	[ð 	[ð 	[ð 	[ð 	[øøøð 	[ð 	[ð 	[ð 	[ð ŒzÐs   Â6CÃCÃ CN)
r   r   r   r
   r%   r	   r   r   r   r8   r   r   r   r   r      si   € € € € € ð0Ð(:ð 0ð 0ð 0ð 0ð ØðÐ2ð °tð ð ð ñ „]ñ „]ðð ð r   r   c                   ó2   — e Zd ZU dZeed<   eed<   eed<   dS )ÚUpdatePartnerScoreCommandu:   [D6] Lá»‡nh cáº­p nháº­t Ä‘iá»ƒm tÃ­n nhiá»‡m Ä‘á»‘i tÃ¡c.r   Údeduct_pointsÚreasonN)r   r   r   Ú__doc__r   r   Úintr   r   r   r:   r:   6   s4   € € € € € € ØDÐDØ€M€M�MØÐÐÑØ€K€K�K€K€Kr   r:   c                   óJ   — e Zd Zdefd„Zeededdfd„¦   «         ¦   «         ZdS )Ú UpdatePartnerScoreCommandHandlerr   c                 ó   — || _         d S r    r!   r#   s     r   r%   z)UpdatePartnerScoreCommandHandler.__init__=   r&   r   r'   r(   Nc                 ó¬  — dd l }|                     t          ¦  «        }| j                             ¦   «         5 }|                     d|j        f¦  «         |                     ¦   «         }|s+|                     d|j        › �¦  «         	 d d d ¦  «         d S | 	                    dd¦  «        }||j
        z
  }| 	                    dd¦  «        }|dk     r d	}|                     d
|j        › d�¦  «         |                     d|||j        f¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d|j
        › d|j        › d|j        › �¦  «         d S )Nr   z•
                SELECT id, status, credit_score 
                FROM partners.partners 
                WHERE tax_code = %s FOR UPDATE
            u9   [Partners] KhÃ´ng tÃ¬m tháº¥y Ä‘á»‘i tÃ¡c vá»›i tax_code Úcredit_scoreéd   ÚstatusÚACTIVEé2   ÚBLACKLISTEDu$   [Partners] Cáº¢NH BÃ�O: Ä�á»‘i tÃ¡c u1    Ä‘iá»ƒm tÃ­n nhiá»‡m < 50. Ä�Æ°a vÃ o BLACKLIST!zŽ
                UPDATE partners.partners 
                SET credit_score = %s, status = %s
                WHERE tax_code = %s
            u   [Partners] Ä�Ã£ trá»« u    Ä‘iá»ƒm cá»§a u    vÃ¬ )ÚloggingÚ	getLoggerr   r-   r2   Úexecuter   ÚfetchoneÚwarningÚgetr;   ÚerrorÚinfor<   )	r$   r'   rI   Úloggerr7   ÚrowÚcurrent_scoreÚ	new_scoreÚ
new_statuss	            r   r8   z'UpdatePartnerScoreCommandHandler.handle@   sî  € ð 	ˆˆˆØ×"Ò"¥8Ñ,Ô,ˆàŒZ×ÒÑ Ô ð 	< Cà�KŠKð ð Ô"Ð$ñ	&ô &ð &ð —,’,‘.”.ˆCØð Ø—’ÐmÐ[bÔ[kÐmÐmÑnÔnÐnØð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð  ŸGšG N°CÑ8Ô8ˆMØ%¨Ô(=Ñ=ˆIØŸš ¨8Ñ4Ô4ˆJà˜2Š~ˆ~Ø*�
Ø—’ð  HÀGÔDTð  Hð  Hð  Hñ  Iô  Ið  Ià�KŠKð ð ˜Z¨Ô)9Ð:ñ	<ô <ð <ð+	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð6 	�ŠÐz¨WÔ-BÐzÐzÐSZÔScÐzÐzÐjqÔjxÐzÐzÑ{Ô{Ð{Ð{Ð{s   ¸ADÂA:DÄD Ä#D )	r   r   r   r
   r%   r	   r   r:   r8   r   r   r   r@   r@   <   sq   € € € € € ð0Ð(:ð 0ð 0ð 0ð 0ð Øð|Ð7ð |¸Dð |ð |ð |ñ „]ñ „]ð|ð |ð |r   r@   N)Útypingr   Úuuidr   r   Úapp.core.module_framework.cqrsr   r   Ú$app.core.module_framework.decoratorsr   r	   Ú&app.core.postgres.base_pkg.base_clientr
   Ú#app.core.module_framework.event_busr   Ú$app.modules.partners.domain.entitiesr   Ú0app.modules.partners.infrastructure.repositoriesr   r   r   r:   r@   r   r   r   ú<module>r^      s‡  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ EÐ EÐ EÐ EÐ EÐ EØ 9Ð 9Ð 9Ð 9Ð 9Ð 9à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø NÐ NÐ NÐ NÐ NÐ Nð"ð "ð "ð "ð "˜8ñ "ô "ð "ð!ð !ð !ð !ð ! /Ð2FÈÐ2LÔ"Mñ !ô !ð !ðFð ð ð ð  ñ ô ð ð%|ð %|ð %|ð %|ð %| Ð7PÐRVÐ7VÔ'Wñ %|ô %|ð %|ð %|ð %|r   