§
    s�’j  ã                  óø   — 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
m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dS )z;Schemas for Executive Financial War Room & Cashflow Runway.é    )Úannotations)ÚdateÚdatetime©ÚDecimal)ÚEnum)Ú	BaseModelÚFieldc                  ó   — e Zd ZdZdZdZdZdS )ÚBusinessPillarEnumÚpillar_1_epc_contractingÚpillar_2_fleet_logisticsÚpillar_3_equipment_rentalÚpillar_4_materials_earthworkN)Ú__name__Ú
__module__Ú__qualname__ÚPILLAR_1_EPCÚPILLAR_2_FLEETÚPILLAR_3_EQUIPMENTÚPILLAR_4_MATERIALS© ó    ú;C:\Projects\DSCons\app\models\financial_war_room_schemas.pyr   r      s&   € € € € € Ø-€LØ/€NØ4ÐØ7ÐÐÐr   r   c                  ó  — e Zd ZU ded<   ded<    ed„ ¬¦  «        Zded<    ed	„ ¬¦  «        Zded
<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Z	ded<    ed„ ¬¦  «        Z
ded<   dZded<   dZded<   dS )ÚPillarFinancialSummaryr   Ú	pillar_idÚstrÚpillar_namec                 ó    — t          d¦  «        S ©Nz0.0000r   r   r   r   ú<lambda>zPillarFinancialSummary.<lambda>   s   € ½7À8Ñ;LÔ;L€ r   ©Údefault_factoryr   Útotal_revenuec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zPillarFinancialSummary.<lambda>   s   € ½ÀÑ8IÔ8I€ r   Ú
total_costc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zPillarFinancialSummary.<lambda>   s   € ½'À(Ñ:KÔ:K€ r   Úgross_profitc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zPillarFinancialSummary.<lambda>   s   € ÅWÈXÑEVÔEV€ r   Úgross_margin_percentagec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zPillarFinancialSummary.<lambda>   s   € ÅÈÑARÔAR€ r   Úreceivables_pendingc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zPillarFinancialSummary.<lambda>   ó   € ½gÀhÑ>OÔ>O€ r   Úpayables_pendingr   ÚintÚactive_contracts_countÚLOWÚ
risk_levelN)r   r   r   Ú__annotations__r
   r%   r'   r)   r+   r-   r0   r2   r4   r   r   r   r   r      s  € € € € € € Ø!Ð!Ð!Ñ!ØÐÐÑØ"˜UÐ3LÐ3LÐMÑMÔM€MÐMÐMÐMÑMØ˜%Ð0IÐ0IÐJÑJÔJ€JÐJÐJÐJÑJØ!˜EÐ2KÐ2KÐLÑLÔL€LÐLÐLÐLÑLØ', uÐ=VÐ=VÐ'WÑ'WÔ'WÐÐWÐWÐWÑWØ#( 5Ð9RÐ9RÐ#SÑ#SÔ#SÐÐSÐSÐSÑSØ % Ð6OÐ6OÐ PÑ PÔ PÐÐPÐPÐPÑPØ"#ÐÐ#Ð#Ð#Ñ#Ø€JÐÐÐÑÐÐr   r   c                  óª   — e Zd ZU ded<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Zded<    ed	„ ¬¦  «        Zded
<    ed„ ¬¦  «        Zded<   dS )ÚCashflowForecastDayr   Údate_strc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowForecastDay.<lambda>"   s   € ½WÀXÑ=NÔ=N€ r   r#   r   Úexpected_inflowc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowForecastDay.<lambda>#   r/   r   Úexpected_outflowc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowForecastDay.<lambda>$   s   € µw¸xÑ7HÔ7H€ r   Ú	net_dailyc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowForecastDay.<lambda>%   ó   € ½wÀxÑ?PÔ?P€ r   Úprojected_balanceN)	r   r   r   r5   r
   r:   r<   r>   rA   r   r   r   r7   r7       s¥   € € € € € € Ø€M€M�MØ$˜uÐ5NÐ5NÐOÑOÔO€OÐOÐOÐOÑOØ % Ð6OÐ6OÐ PÑ PÔ PÐÐPÐPÐPÑPØ˜Ð/HÐ/HÐIÑIÔI€IÐIÐIÐIÑIØ!& Ð7PÐ7PÐ!QÑ!QÔ!QÐÐQÐQÐQÑQÐQÐQr   r7   c                  óú   — e Zd ZU  ed„ ¬¦  «        Zded<    e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<    ed„ ¬¦  «        Zded<   dZded<    ee¬¦  «        Zded<   dS )ÚCashflowRunwaySummaryc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowRunwaySummary.<lambda>)   s   € Å'È(ÑBSÔBS€ r   r#   r   Úcurrent_cash_balancec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowRunwaySummary.<lambda>+   ó   € ¥¨Ñ 1Ô 1€ r   Útotal_expected_inflow_30dc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowRunwaySummary.<lambda>.   rG   r   Útotal_expected_outflow_30déZ   r1   Únet_runway_daysr   Ústress_test_delay_daysFÚboolÚliquidity_risk_alertc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zCashflowRunwaySummary.<lambda>3   ó   € ½GÀHÑ<MÔ<M€ r   Úlowest_balanceNú
str | NoneÚ	risk_datezlist[CashflowForecastDay]Úforecast_30d)r   r   r   r
   rE   r5   rH   rJ   rL   rM   rO   rR   rT   ÚlistrU   r   r   r   rC   rC   (   s!  € € € € € € Ø$) EÐ:SÐ:SÐ$TÑ$TÔ$TÐÐTÐTÐTÑTØ).¨Ø1Ð1ð*ñ *ô *Ðð ð ð ñ ð +0¨%Ø1Ð1ð+ñ +ô +Ðð ð ð ñ ð €OÐÐÐÑØ"#ÐÐ#Ð#Ð#Ñ#Ø!&ÐÐ&Ð&Ð&Ñ&Ø#˜eÐ4MÐ4MÐNÑNÔN€NÐNÐNÐNÑNØ €IÐ Ð Ð Ñ Ø.3¨eÀDÐ.IÑ.IÔ.I€LÐIÐIÐIÑIÐIÐIr   rC   c                  óþ   — e Zd ZU ded<   ded<   ded<    ed„ ¬¦  «        Zded<    ed	„ ¬¦  «        Zded
<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Z	ded<   dZ
ded<   dZded<   dS )ÚContractMarginAlertr   Úproject_codeÚproject_nameÚclient_namec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zContractMarginAlert.<lambda><   rQ   r   r#   r   Úcontract_valuec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zContractMarginAlert.<lambda>=   ó   € ÅÈÑ@QÔ@Q€ r   Úaccumulated_billedc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zContractMarginAlert.<lambda>>   r/   r   Úaccumulated_costc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zContractMarginAlert.<lambda>?   r_   r   Úcurrent_margin_pctc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zContractMarginAlert.<lambda>@   r_   r   Úplanned_margin_pctÚNORMALÚalert_statusNrS   Ú
root_cause)r   r   r   r5   r
   r]   r`   rb   rd   rf   rh   ri   r   r   r   rX   rX   8   s  € € € € € € ØÐÐÑØÐÐÑØÐÐÑØ#˜eÐ4MÐ4MÐNÑNÔN€NÐNÐNÐNÑNØ"' %Ð8QÐ8QÐ"RÑ"RÔ"RÐÐRÐRÐRÑRØ % Ð6OÐ6OÐ PÑ PÔ PÐÐPÐPÐPÑPØ"' %Ð8QÐ8QÐ"RÑ"RÔ"RÐÐRÐRÐRÑRØ"' %Ð8QÐ8QÐ"RÑ"RÔ"RÐÐRÐRÐRÑRØ €LÐ Ð Ð Ñ Ø!€JÐ!Ð!Ð!Ñ!Ð!Ð!r   rX   c                  ó  — e Zd ZU ded<   ded<   dZded<   dZded	<    ed
„ ¬¦  «        Zded<    ed„ ¬¦  «        Zded<    ed„ ¬¦  «        Z	ded<    ed„ ¬¦  «        Z
ded<    ee¬¦  «        Zded<   ded<    ee¬¦  «        Zded<   dS )ÚExecutiveWarRoomDatar   Ú
as_of_dater   Úgenerated_atÚ
0202111150r   Úcompany_tax_idu&   CÃ”NG TY TNHH XÃ‚Y Dá»°NG Ä�á»ŠNH SÆ NÚcompany_namec                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zExecutiveWarRoomData.<lambda>J   r@   r   r#   r   Útotal_revenue_ytdc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zExecutiveWarRoomData.<lambda>K   rQ   r   Útotal_cost_ytdc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zExecutiveWarRoomData.<lambda>L   s   € ÅGÈHÑDUÔDU€ r   Útotal_gross_profit_ytdc                 ó    — t          d¦  «        S r!   r   r   r   r   r"   zExecutiveWarRoomData.<lambda>N   rG   r   Úoverall_margin_percentagezlist[PillarFinancialSummary]Úpillars_breakdownrC   Úcashflow_runwayzlist[ContractMarginAlert]Úmargin_alertsN)r   r   r   r5   ro   rp   r
   rr   rt   rv   rx   rV   ry   r{   r   r   r   rk   rk   E   s0  € € € € € € ØÐÐÑØÐÐÑØ&€NÐ&Ð&Ð&Ñ&Ø@€LÐ@Ð@Ð@Ñ@Ø!& Ð7PÐ7PÐ!QÑ!QÔ!QÐÐQÐQÐQÑQØ#˜eÐ4MÐ4MÐNÑNÔN€NÐNÐNÐNÑNØ&+ eÐ<UÐ<UÐ&VÑ&VÔ&VÐÐVÐVÐVÑVØ).¨Ø1Ð1ð*ñ *ô *Ðð ð ð ñ ð 7<°eÈDÐ6QÑ6QÔ6QÐÐQÐQÐQÑQØ*Ð*Ð*Ñ*Ø/4¨uÀTÐ/JÑ/JÔ/J€MÐJÐJÐJÑJÐJÐJr   rk   N)Ú__doc__Ú
__future__r   r   r   Údecimalr   Úenumr   Úpydanticr	   r
   r   r   r   r7   rC   rX   rk   r   r   r   ú<module>r�      s“  ðØ AÐ Aà "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ð8ð 8ð 8ð 8ð 8˜˜dñ 8ô 8ð 8ð
ð 
ð 
ð 
ð 
˜Yñ 
ô 
ð 
ðRð Rð Rð Rð R˜)ñ Rô Rð RðJð Jð Jð Jð J˜Iñ Jô Jð Jð 
"ð 
"ð 
"ð 
"ð 
"˜)ñ 
"ô 
"ð 
"ðKð Kð Kð Kð K˜9ñ Kô Kð Kð Kð Kr   