§
    F~šjc  ã                  óâ   — d Z ddl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mZ ddlmZmZmZ  G d	„ d
ee¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )zHDomain Entities and Value Objects for Debt Clearing and Auto-Settlement.é    )Úannotations)ÚdateÚdatetime)ÚDecimal)ÚEnum)ÚOptional)ÚUUIDÚuuid4)Ú	BaseModelÚ
ConfigDictÚFieldc                  ó.   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
ÚClearingMethodÚEXACT_INVOICE_NOÚEXACT_AMOUNT_PARTNERÚSUBSET_SUM_INVOICESÚFIFO_PARTNERÚVPBANK_LOANÚNON_INVOICE_VAS_JOURNALÚADVANCE_DEPOSITÚMANUALN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   © ó    úFC:\Projects\DSCons\app\modules\financial\domain\settlement_entities.pyr   r      s:   € € € € € Ø)ÐØ1ÐØ/ÐØ!€LØ€KØ7ÐØ'€OØ€F€F€Fr   r   c                  ó   — e Zd ZdZdZdZdS )ÚSettlementStatusÚsettledÚ	tentativeÚreversedN)r   r   r   ÚSETTLEDÚ	TENTATIVEÚREVERSEDr   r   r   r   r      s   € € € € € Ø€GØ€IØ€H€H€Hr   r   c                  óF  — e Zd ZU dZ ed¬¦  «        Z ee¬¦  «        Zde	d<   de	d<   de	d<   d	Z
d
e	d<   d	Zd
e	d<   d	Zde	d<   d	Zde	d<   dZde	d<   de	d<   de	d<   ej        Zde	d<    ed¦  «        Zde	d<   ej        Zde	d<   d	Zde	d<    eej        ¬¦  «        Zde	d<   d	S ) ÚDebtSettlementu^   Domain Entity Ä‘áº¡i diá»‡n cho má»™t báº£n ghi cáº¥n trá»« gáº¡ch ná»£ (Clearing Settlement).T©Úarbitrary_types_allowed)Údefault_factoryr	   ÚidÚ
company_idÚbank_transaction_idNzOptional[UUID]Ú
invoice_idÚ
partner_idzOptional[str]Úpartner_tax_codeÚpartner_nameÚ331ÚstrÚaccount_coder   Úsettlement_amount_vndr   Úsettlement_dater   Úclearing_methodz1.0000Úconfidence_scorer   ÚstatusÚnotesr   Ú
created_at)r   r   r   Ú__doc__r   Úmodel_configr   r
   r+   Ú__annotations__r.   r/   r0   r1   r4   r   r   r7   r   r8   r   r#   r9   r:   r   Úutcnowr;   r   r   r   r'   r'       sC  € € € € € € ØhÐhà�:°dÐ;Ñ;Ô;€Làˆu UÐ+Ñ+Ô+€BÐ+Ð+Ð+Ñ+ØÐÐÑØÐÐÑØ!%€JÐ%Ð%Ð%Ñ%Ø!%€JÐ%Ð%Ð%Ñ%Ø&*ÐÐ*Ð*Ð*Ñ*Ø"&€LÐ&Ð&Ð&Ñ&Ø€LÐÐÐÑØ"Ð"Ð"Ñ"ØÐÐÑØ&4Ô&I€OÐIÐIÐIÑIØ ' ¨Ñ 1Ô 1ÐÐ1Ð1Ð1Ñ1Ø/Ô7€FÐ7Ð7Ð7Ñ7Ø€EÐÐÐÑØ ˜5°´ÐAÑAÔA€JÐAÐAÐAÑAÐAÐAr   r'   c                  ó    — e Zd ZU dZ ed¬¦  «        ZdZded<   dZded<    e	d¦  «        Z
d	ed
<   dZded<   dZded<   dZded<   g Zded<   dS )ÚClearingResultuX   Value Object tá»•ng há»£p káº¿t quáº£ cá»§a má»™t Ä‘á»£t quÃ©t khá»›p ná»£ tá»± Ä‘á»™ng.Tr(   r   ÚintÚtotal_transactions_scannedÚmatched_countÚ0r   Útotal_cleared_amount_vndÚinvoices_settled_countÚinvoices_partially_paid_countFÚboolÚdry_runzlist[DebtSettlement]ÚsettlementsN)r   r   r   r<   r   r=   rC   r>   rD   r   rF   rG   rH   rJ   rK   r   r   r   rA   rA   6   s­   € € € € € € ØbÐbà�:°dÐ;Ñ;Ô;€Là&'ÐÐ'Ð'Ð'Ñ'Ø€MÐÐÐÑØ(/¨°©¬ÐÐ4Ð4Ð4Ñ4Ø"#ÐÐ#Ð#Ð#Ñ#Ø)*Ð!Ð*Ð*Ð*Ñ*Ø€GÐÐÐÑØ(*€KÐ*Ð*Ð*Ñ*Ð*Ð*r   rA   N)r<   Ú
__future__r   r   r   Údecimalr   Úenumr   Útypingr   Úuuidr	   r
   Úpydanticr   r   r   r3   r   r   r'   rA   r   r   r   ú<module>rR      s_  ðØ NÐ Nà "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð �S˜$ñ ô ð ðð ð ð ð �s˜Dñ ô ð ðBð Bð Bð Bð B�Yñ Bô Bð Bð,+ð +ð +ð +ð +�Yñ +ô +ð +ð +ð +r   