§
    s�’jç  ã                  ó  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZ  G d„ d	ee¦  «        Z G d
„ dee¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z G d&„ d'e¦  «        Zd(S ))z`Pydantic schemas for the 4 Core Business Pillars of Cong ty TNHH Xay Dung Dinh Son (0202111150).é    )Úannotations)Údate)ÚDecimal)ÚEnum)ÚAny)Ú	BaseModelÚFieldc                  ó   — e Zd ZdZdZdZdZdS )ÚBusinessPillarCodeÚPILLAR_1_EPCÚPILLAR_2_FLEETÚPILLAR_3_EQUIPMENTÚPILLAR_4_MATERIALSN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   © ó    ú5C:\Projects\DSCons\app\models\four_pillars_schemas.pyr   r      s1   € € € € € Ø!€Làð ð 	ð ð 	ð ÐÐr   r   c                  ó"   — e Zd ZdZdZdZdZdZdS )ÚDispatchOrderStatusÚ	SCHEDULEDÚ
IN_TRANSITÚ	DELIVEREDÚ
RECONCILEDÚ	CANCELLEDN)r   r   r   r   r   r   r   r   r   r   r   r   r      s'   € € € € € Ø€IØ€JØ€IØ€JØ€I€I€Ir   r   c                  ó   — e Zd ZdZdZdZdZdS )ÚShiftLogVerificationStatusÚPENDING_VERIFICATIONÚMATCHEDÚDISCREPANCYÚAPPROVEDN)r   r   r   r   r    r!   r"   r   r   r   r   r   %   s#   € € € € € Ø1ÐØ€GØ€KØ€H€H€Hr   r   c                  ó   — e Zd ZdZdZdZdZdS )ÚQualityCertStatusÚVALIDÚMISSINGÚEXPIREDÚREJECTEDN)r   r   r   r%   r&   r'   r(   r   r   r   r$   r$   ,   s"   € € € € € Ø€EØ€GØ€GØ€H€H€Hr   r$   c                  ó  — e Zd ZU ded<   ded<   ded<   ded<    e ed¦  «        ¬¦  «        Zd	ed
<    e ed¦  «        ¬¦  «        Zd	ed<    e ed¦  «        ¬¦  «        Zd	ed<    e ed¦  «        ¬¦  «        Z	d	ed<   dS )ÚIPCItemPayloadÚintÚ
item_orderÚstrÚwbs_codeÚ	work_nameÚunitz0.0000©Údefaultr   Úcontract_qtyÚ
unit_priceÚ
period_qtyÚaccumulated_prev_qtyN)
r   r   r   Ú__annotations__r	   r   r3   r4   r5   r6   r   r   r   r*   r*   6   s×   € € € € € € Ø€O€O�OØ€M€M�MØ€N€N�NØ€I€I�IØ!˜E¨'¨'°(Ñ*;Ô*;Ð<Ñ<Ô<€LÐ<Ð<Ð<Ñ<Ø˜%¨¨°Ñ(9Ô(9Ð:Ñ:Ô:€JÐ:Ð:Ð:Ñ:Ø˜%¨¨°Ñ(9Ô(9Ð:Ñ:Ô:€JÐ:Ð:Ð:Ñ:Ø$) E°'°'¸(Ñ2CÔ2CÐ$DÑ$DÔ$DÐÐDÐDÐDÑDÐDÐDr   r*   c                  óÖ   — e Zd ZU dZded<   dZded<   dZded	<    e ed
¦  «        ¬¦  «        Z	ded<    e ed¦  «        ¬¦  «        Z
ded<    e ed¦  «        ¬¦  «        Zded<   dS )ÚIPC03aExportRequestzDA-KM-BENKEM-2025-2026r-   Úproject_codeé   r+   Úperiod_numberNzdate | NoneÚcutoff_datez10.0000r1   r   Úadvance_recovery_rate_pctz5.0000Úretention_rate_pctú8.0000Úvat_rate_pct)r   r   r   r:   r7   r<   r=   r	   r   r>   r?   rA   r   r   r   r9   r9   A   s¿   € € € € € € Ø0€LÐ0Ð0Ð0Ñ0Ø€MÐÐÐÑØ#€KÐ#Ð#Ð#Ñ#Ø).¨°w°w¸yÑ7IÔ7IÐ)JÑ)JÔ)JÐÐJÐJÐJÑJØ"' %°°¸Ñ0AÔ0AÐ"BÑ"BÔ"BÐÐBÐBÐBÑBØ!˜E¨'¨'°(Ñ*;Ô*;Ð<Ñ<Ô<€LÐ<Ð<Ð<Ñ<Ð<Ð<r   r9   c                  óÞ   — e Zd ZU ded<   ded<   ded<   ded<   dZded<   dZded	<   d
ed<   ded<   dZded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dZded<   dS )ÚIPCDocumentDetailr-   Úcertificate_coder:   Úproject_nameÚinvestor_nameu&   CÃ”NG TY TNHH XÃ‚Y Dá»°NG Ä�á»ŠNH SÆ NÚcontractor_nameÚ
0202111150Úcontractor_tax_idr+   r<   r   r=   uO   Nghá»‹ Ä‘á»‹nh 206/2026/NÄ�-CP & Luáº­t XÃ¢y dá»±ng 2025 (Luáº­t 135/2025/QH15)Úlegal_basiszlist[dict[str, Any]]Úitemsr   Útotal_contract_valueÚperiod_work_value_pre_taxÚaccumulated_work_value_pre_taxÚadvance_recovery_amountÚretention_deducted_amountÚnet_payable_pre_taxÚ
vat_amountÚtotal_net_payable_with_vatÚVNDÚcurrencyN)r   r   r   r7   rG   rI   rJ   rU   r   r   r   rC   rC   J   s  € € € € € € ØÐÐÑØÐÐÑØÐÐÑØÐÐÑØC€OÐCÐCÐCÑCØ)ÐÐ)Ð)Ð)Ñ)ØÐÐÑØÐÐÑàYð ð ð ð ñ ð  ÐÐÑØ!Ð!Ð!Ñ!Ø&Ð&Ð&Ñ&Ø+Ð+Ð+Ñ+Ø$Ð$Ð$Ñ$Ø&Ð&Ð&Ñ&Ø Ð Ð Ñ ØÐÐÑØ'Ð'Ð'Ñ'Ø€HÐÐÐÑÐÐr   rC   c                  óœ   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   dS )ÚThreeWayMatchDetailResponser-   Úmatch_idr:   rE   r.   r   Úboq_quantityÚsite_acceptance_quantityÚinvoice_billed_quantityÚmaterial_consumed_quantityr4   Úquantity_varianceÚamount_varianceÚstatusÚboolÚis_compliantÚexplanationN©r   r   r   r7   r   r   r   rW   rW   b   s±   € € € € € € Ø€M€M�MØÐÐÑØÐÐÑØ€M€M�MØÐÐÑØ%Ð%Ð%Ñ%Ø$Ð$Ð$Ñ$Ø'Ð'Ð'Ñ'ØÐÐÑØÐÐÑØÐÐÑØ€K€K�KØÐÐÑØÐÐÑÐÐr   rW   c                  ó˜   — e Zd ZU 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Z	ded<    e
d¦  «        Zded<   dS )ÚDispatchOrderCreateRequestr-   Útruck_plateÚdriver_nameÚ
0200149705Úpartner_tax_idõ-   CÃ´ng ty TNHH MTV ThoÃ¡t nÆ°á»›c Háº£i PhÃ²ngÚpartner_nameu$   BÃ¹n tháº£i náº¡o vÃ©t cá»‘ng ngáº§mÚ
cargo_typeu-   MÆ°Æ¡ng An Kim Háº£i / Cá»‘ng há»™p LÃª ChÃ¢nÚsource_locationu!   BÃ£i Ä‘á»• bÃ¹n tháº£i Ä�Ã¬nh VÅ©Údump_locationé   r+   Úscheduled_tripsz48.0000r   Úestimated_volume_m3N)r   r   r   r7   ri   rk   rl   rm   rn   rp   r   rq   r   r   r   re   re   v   s¬   € € € € € € ØÐÐÑØÐÐÑØ&€NÐ&Ð&Ð&Ñ&ØG€LÐGÐGÐGÑGØ<€JÐ<Ð<Ð<Ñ<ØJ€OÐJÐJÐJÑJØ<€MÐ<Ð<Ð<Ñ<Ø€OÐÐÐÑØ#* 7¨9Ñ#5Ô#5ÐÐ5Ð5Ð5Ñ5Ð5Ð5r   re   c                  ó¾   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dZded<   dS )ÚDispatchOrderRecordr-   Ú
order_coder   Údispatch_daterf   rg   ri   rk   rl   rm   rn   r+   rp   Úcompleted_tripsr   Úweighed_volume_m3Úfuel_standard_litersÚfuel_actual_litersÚfuel_variance_pctr   r_   Ú ÚnotesN)r   r   r   r7   r|   r   r   r   rs   rs   ‚   s×   € € € € € € Ø€O€O�OØÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ€O€O�OØÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ!Ð!Ð!Ñ!ØÐÐÑØÐÐÑØÐÐÑØ€E€O€O€O�O€O€Or   rs   c                  ó´   — e Zd ZU dZded<   dZded<   dZded<   ded	<   d
ed<    e ed¦  «        ¬¦  «        Z	d
ed<   d
ed<   d
ed<   d
ed<   ded<   ded<   dS )ÚSludgeTransportReconciliationrh   r-   ri   rj   rk   z2026-Q1Úbilling_periodr+   Útotal_tripsr   Útotal_volume_weighed_m3z145000.0000r1   Úunit_price_per_m3Útotal_amount_pre_taxÚinvoiced_amountr^   Úreconciliation_statusÚdiscrepancy_explanationN)
r   r   r   ri   r7   rk   r   r	   r   r‚   r   r   r   r~   r~   –   sÂ   € € € € € € Ø&€NÐ&Ð&Ð&Ñ&ØG€LÐGÐGÐGÑGØ#€NÐ#Ð#Ð#Ñ#ØÐÐÑØ$Ð$Ð$Ñ$Ø!& ¨w¨w°}Ñ/EÔ/EÐ!FÑ!FÔ!FÐÐFÐFÐFÑFØ!Ð!Ð!Ñ!ØÐÐÑØÐÐÑØÐÐÑØ Ð Ð Ñ Ð Ð r   r~   c                  óæ   — e Zd ZU ded<   dZded<   ded<   ded<    e ed¦  «        ¬	¦  «        Zd
ed<   dZded<    e ed¦  «        ¬	¦  «        Z	d
ed<    e ed¦  «        ¬	¦  «        Z
d
ed<   dS )ÚShiftLogCreateRequestr-   Úequipment_codeÚ
0201889988ri   Úoperator_namer   Ú
shift_dater@   r1   r   Úhours_workedu3   Ä�Ã o mÃ³ng kÃªnh dáº«n vÃ  báº¡t taluy Ä‘áº¯p bá»�Úwork_descriptionz152.0000Úfuel_consumed_litersz650000.0000Úhourly_rate_vndN)r   r   r   r7   ri   r	   r   r�   rŽ   r�   r�   r   r   r   rˆ   rˆ   §   sÒ   € € € € € € ØÐÐÑØ&€NÐ&Ð&Ð&Ñ&ØÐÐÑØÐÐÑØ!˜E¨'¨'°(Ñ*;Ô*;Ð<Ñ<Ô<€LÐ<Ð<Ð<Ñ<ØQÐÐQÐQÐQÑQØ$) E°'°'¸*Ñ2EÔ2EÐ$FÑ$FÔ$FÐÐFÐFÐFÑFØ$˜u¨W¨W°]Ñ-CÔ-CÐDÑDÔD€OÐDÐDÐDÑDÐDÐDr   rˆ   c                  ó¤   — e Zd ZU dZded<   dZded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )ÚRentalContractReconciliationrŠ   r-   ri   u8   CÃ´ng ty TNHH Váº­n táº£i vÃ  ThÆ°Æ¡ng máº¡i Loan Kháº£irk   r‰   Úequipment_namer   Útotal_shift_hours_loggedÚoperator_timesheet_hoursÚinvoiced_rental_hoursÚhourly_rateÚtotal_earned_vndÚinvoiced_amount_vndÚhours_discrepancyÚoee_percentager   r_   r|   N)r   r   r   ri   r7   rk   r   r   r   r’   r’   ²   s¿   € € € € € € Ø&€NÐ&Ð&Ð&Ñ&ØR€LÐRÐRÐRÑRØÐÐÑØÐÐÑØ%Ð%Ð%Ñ%Ø%Ð%Ð%Ñ%Ø"Ð"Ð"Ñ"ØÐÐÑØÐÐÑØ Ð Ð Ñ ØÐÐÑØÐÐÑØ&Ð&Ð&Ñ&Ø€J€J�J€J€Jr   r’   c                  óÄ   — e Zd ZU dZded<   dZded<   ded<   ded<   ded<   d	ed
<   d	ed<   d	ed<   d	ed<    e ed¦  «        ¬¦  «        Zd	ed<   d	ed<   ded<   d	ed<   dS )ÚMaterialLossAuditRecordÚ
0201805660r-   Úsupplier_tax_iduK   CÃ´ng ty Cá»• pháº§n XÃ¢y dá»±ng ThÆ°Æ¡ng máº¡i vÃ  Dá»‹ch vá»¥ Trung KiÃªnÚsupplier_nameÚmaterial_codeÚmaterial_namer0   r   Úpurchased_quantityÚsite_received_quantityÚactual_loss_quantityÚactual_loss_rate_pctz3.0000r1   Ústandard_loss_norm_pctÚloss_variance_pctr`   Úis_within_normÚfinancial_loss_impact_vndN)	r   r   r   rŸ   r7   r    r	   r   r§   r   r   r   r�   r�   Æ   sã   € € € € € € Ø'€OÐ'Ð'Ð'Ñ'Øf€MÐfÐfÐfÑfØÐÐÑØÐÐÑØ€I€I�IØÐÐÑØ#Ð#Ð#Ñ#Ø!Ð!Ð!Ñ!Ø!Ð!Ð!Ñ!Ø&+ eØ�˜Ñ!Ô!ð'ñ 'ô 'Ðð ð ð ñ ð ÐÐÑØÐÐÑØ&Ð&Ð&Ñ&Ð&Ð&r   r�   c                  ój   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   dS )ÚQualityCertificateAuditItemr-   Úinvoice_numberr¢   rŸ   r    r$   Úco_cq_statusÚconcrete_r28_test_statusÚsteel_tensile_test_statusr`   Úpayment_clearedÚaudit_notesNrc   r   r   r   r¬   r¬   Ø   s~   € € € € € € ØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ#Ð#Ð#Ñ#Ø/Ð/Ð/Ñ/Ø0Ð0Ð0Ñ0ØÐÐÑØÐÐÑÐÐr   r¬   c                  óL   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
S )ÚQualityCertAuditSummaryResponser+   Útotal_invoices_auditedÚfully_compliant_countÚmissing_cocq_countÚmissing_lab_test_countr   Úheld_payments_value_vndz!list[QualityCertificateAuditItem]ÚrecordsNrc   r   r   r   r´   r´   ä   sZ   € € € € € € ØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ$Ð$Ð$Ñ$Ø.Ð.Ð.Ñ.Ð.Ð.r   r´   N)Ú__doc__Ú
__future__r   Údatetimer   Údecimalr   Úenumr   Útypingr   Úpydanticr   r	   r-   r   r   r   r$   r*   r9   rC   rW   re   rs   r~   rˆ   r’   r�   r¬   r´   r   r   r   ú<module>rÂ      s?  ðØ fÐ fà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ð
ð 
ð 
ð 
ð 
˜˜dñ 
ô 
ð 
ðð ð ð ð ˜#˜tñ ô ð ðð ð ð ð   dñ ô ð ðð ð ð ð ˜˜Tñ ô ð ðEð Eð Eð Eð E�Yñ Eô Eð Eð=ð =ð =ð =ð =˜)ñ =ô =ð =ðð ð ð ð ˜	ñ ô ð ð0ð ð ð ð  )ñ ô ð ð(	6ð 	6ð 	6ð 	6ð 	6 ñ 	6ô 	6ð 	6ðð ð ð ð ˜)ñ ô ð ð(!ð !ð !ð !ð ! Iñ !ô !ð !ð"Eð Eð Eð Eð E˜Iñ Eô Eð Eðð ð ð ð  9ñ ô ð ð('ð 'ð 'ð 'ð '˜iñ 'ô 'ð 'ð$	ð 	ð 	ð 	ð 	 )ñ 	ô 	ð 	ð/ð /ð /ð /ð / iñ /ô /ð /ð /ð /r   