§
    s�’j  ã                  ój  — d Z ddlmZ ddlmZmZ ddlmZmZ erddl	m
Z
mZmZm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d„Z G d„ de¦  «        Z e¦   «          dS )a  Company operational state schema cluster extracted from app.models.schemas.

This module is intentionally narrow in phase 1 of the refactor:
it hosts the company operational state response family while keeping
compatibility imports available from app.models.schemas.
é    )Úannotations)ÚTYPE_CHECKINGÚAny)Ú	BaseModelÚField©ÚDossierCaseÚDossierReviewSessionRecordÚOperationsActionItemÚRemediationPlanSummaryItemc                  óØ   — e Zd ZU dZ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	<   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<   dZded<   dZded<   dS )ÚCompanyOperationalSummaryz'High-level company operational summary.r   ÚintÚtotal_projectsÚactive_projectsÚblocked_projectsÚhigh_risk_projectsÚ
open_risksÚopen_cases_countÚopen_actions_countÚblocked_items_countÚbacklog_items_countÚactive_review_sessionsÚemployees_activeÚemployees_blockedÚemployees_in_progressÚemployees_completedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   © ó    úBC:\Projects\DSCons\app\models\company_operational_state_schemas.pyr   r      s  € € € € € € Ø1Ð1à€NÐÐÐÑØ€OÐÐÐÑØÐÐÐÐÑØÐÐÐÐÑØ€JÐÐÐÑØÐÐÐÐÑØÐÐÐÐÑØ ÐÐ Ð Ð Ñ Ø ÐÐ Ð Ð Ñ Ø"#ÐÐ#Ð#Ð#Ñ#ØÐÐÐÐÑØÐÐÐÐÑØ!"ÐÐ"Ð"Ð"Ñ"Ø ÐÐ Ð Ð Ñ Ð Ð r$   r   c                  óü   — e Zd ZU dZded<   ded<   dZded<   dZded<   dZ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<   dZded<   dZded<   dZded<    ee¬¦  «        Zded<   dS )ÚCompanyOperationalProjectStatez0Operational state snapshot for a single project.ÚstrÚproject_codeÚproject_nameNú
str | NoneÚclient_nameÚlocationÚproject_managerÚstatusÚcurrent_phasez
int | NoneÚoverall_progress_percentÚbudget_statusr   r   Úopen_risks_countr   Úupcoming_tasks_countÚmilestone_countÚsummaryÚsource©Údefault_factoryúdict[str, Any]Úmetadata)r   r   r    r!   r"   r,   r-   r.   r0   r1   r2   r3   r   r4   r5   r6   r7   r   Údictr;   r#   r$   r%   r'   r'   *   s'  € € € € € € Ø:Ð:àÐÐÑØÐÐÑØ"€KÐ"Ð"Ð"Ñ"Ø€HÐÐÐÑØ"&€OÐ&Ð&Ð&Ñ&Ø€K€K�KØ $€MÐ$Ð$Ð$Ñ$Ø+/ÐÐ/Ð/Ð/Ñ/Ø $€MÐ$Ð$Ð$Ñ$ØÐÐÐÐÑØ ÐÐ Ð Ð Ñ Ø !ÐÐ!Ð!Ð!Ñ!Ø€OÐÐÐÑØ€GÐÐÐÑØ€FÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r$   r'   c                  ó¬   — e Zd ZU dZdZded<   dZded<   ded<   dZded<   dZded	<   dZ	ded
<   ded<   dZ
ded<   dZded<    ee¬¦  «        Zded<   dS )ÚCompanyOperationalRiskItemz6Risk item aggregated from project and dossier sources.Nr+   r)   r*   r(   ÚtitleÚseverityr/   ÚownerÚsource_typeÚreference_idÚ
mitigationr8   r:   r;   )r   r   r    r!   r)   r"   r*   r@   r/   rA   rC   rD   r   r<   r;   r#   r$   r%   r>   r>   ?   sÂ   € € € € € € Ø@Ð@à#€LÐ#Ð#Ð#Ñ#Ø#€LÐ#Ð#Ð#Ñ#Ø€J€J�JØ€HÐÐÐÑØ€FÐÐÐÑØ€EÐÐÐÑØÐÐÑØ#€LÐ#Ð#Ð#Ñ#Ø!€JÐ!Ð!Ð!Ñ!Ø$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r$   r>   c                  óä   — e Zd ZU dZ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	<   d
ed<   dZded<   dZded<   dZded<   d
ed<   dZded<   dZded<    ee¬¦  «        Zded<   dS )ÚCompanyOperationalBlockedItemz;Blocked item requiring attention across company operations.Nr+   r)   r*   Úreview_session_idÚfinding_codeÚemployee_codeÚdepartment_coder(   r?   r/   rA   ÚreasonrB   rC   Údue_dater8   r:   r;   )r   r   r    r!   r)   r"   r*   rG   rH   rI   rJ   r/   rA   rK   rC   rL   r   r<   r;   r#   r$   r%   rF   rF   N   s  € € € € € € ØEÐEà#€LÐ#Ð#Ð#Ñ#Ø#€LÐ#Ð#Ð#Ñ#Ø$(ÐÐ(Ð(Ð(Ñ(Ø#€LÐ#Ð#Ð#Ñ#Ø $€MÐ$Ð$Ð$Ñ$Ø"&€OÐ&Ð&Ð&Ñ&Ø€J€J�JØ€FÐÐÐÑØ€EÐÐÐÑØ€FÐÐÐÑØÐÐÑØ#€LÐ#Ð#Ð#Ñ#Ø€HÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r$   rF   c                  óò   — e Zd ZU dZ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	<   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Zded<   dZded<    ee¬¦  «        Zded<   dS )ÚCompanyOperationalBacklogItemz!Backlog or queued follow-up item.Nr+   r)   r*   rG   rH   rI   rJ   r(   r?   Úassigneer/   ÚpriorityrL   rB   rC   Únoter8   r:   r;   )r   r   r    r!   r)   r"   r*   rG   rH   rI   rJ   rO   r/   rP   rL   rC   rQ   r   r<   r;   r#   r$   r%   rN   rN   a   s  € € € € € € Ø+Ð+à#€LÐ#Ð#Ð#Ñ#Ø#€LÐ#Ð#Ð#Ñ#Ø$(ÐÐ(Ð(Ð(Ñ(Ø#€LÐ#Ð#Ð#Ñ#Ø $€MÐ$Ð$Ð$Ñ$Ø"&€OÐ&Ð&Ð&Ñ&Ø€J€J�JØ€HÐÐÐÑØ€FÐÐÐÑØ€HÐÐÐÑØ€HÐÐÐÑØÐÐÑØ#€LÐ#Ð#Ð#Ñ#Ø€DÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r$   rN   c                  ón   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<    e	e
¬¦  «        Zd	ed
<   dS )Ú!CompanyOperationalWorkforceStatusz&Aggregated workforce execution status.r   r   Útotal_employees_activer   r   r   r8   z	list[str]ÚnotesN)r   r   r    r!   rT   r"   r   r   r   r   ÚlistrU   r#   r$   r%   rS   rS   u   s~   € € € € € € Ø0Ð0à"#ÐÐ#Ð#Ð#Ñ#ØÐÐÐÐÑØ!"ÐÐ"Ð"Ð"Ñ"Ø ÐÐ Ð Ð Ñ Ø�u¨TÐ2Ñ2Ô2€EÐ2Ð2Ð2Ñ2Ð2Ð2r$   rS   c                  ór   — e Zd ZU 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<   dZ
ded<   dS )ÚCompanyOperationalSourceStatusz<Availability and fallback details for an operational source.r(   Úsource_nameNr+   r7   TÚboolÚ	availableFÚused_fallbackr   r   Úrecord_countÚlast_updated_atÚmessage)r   r   r    r!   r"   r7   r[   r\   r]   r^   r_   r#   r$   r%   rX   rX      sŠ   € € € € € € ØFÐFàÐÐÑØ€FÐÐÐÑØ€IÐÐÐÑØ€MÐÐÐÑØ€LÐÐÐÑØ"&€OÐ&Ð&Ð&Ñ&Ø€GÐÐÐÑÐÐr$   rX   c                  ó~   — e Zd ZU d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<    ee	¬¦  «        Z
ded<   dS )Ú"CompanyOperationalStateSummaryItemz6Compact summary card for operational state extensions.r(   ÚcodeÚlabelÚvalueNr+   ÚunitÚtrendÚinfor@   r8   r:   r;   )r   r   r    r!   r"   re   rf   r@   r   r<   r;   r#   r$   r%   ra   ra   ‹   s„   € € € € € € Ø@Ð@à€I€I�IØ€J€J�JØ€J€J�JØ€DÐÐÐÑØ€EÐÐÐÑØ€HÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r$   ra   ÚreturnÚNonec                 óŠ   — 	 ddl m} m}m} ddlm} t                               | |||dœ¬¦  «         dS # t          $ r Y dS w xY w)zBResolve forward references after legacy schema types are imported.r   )r	   r   r   )r
   r   )Ú_types_namespaceN)	Ú!app.models.operations_remediationr	   r   r   Ú"app.models.workflow_review_schemasr
   ÚCompanyOperationalStateResponseÚmodel_rebuildÚ	Exception)r	   r   r   r
   s       r%   Ú)rebuild_company_operational_state_schemasrq   —   s¯   € ðð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 	RÐQÐQÐQÐQÐQå'×5Ò5à*Ø.HØ(<Ø.Hð	ð ð 	6ñ 	
ô 	
ð 	
ð 	
ð 	
øõ ð ð ð Øˆˆðøøøs   ‚04 ´
AÁAc                  óì  — e Zd ZU dZded<   ded<   ded<   ded<    ee¬	¦  «        Zd
ed<    ee¬	¦  «        Zded<    ee¬	¦  «        Z	ded<    ee¬	¦  «        Z
ded<   ded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded<    ee¬	¦  «        Zded <    ee¬	¦  «        Zd!ed"<   d#Zd$ed%<   d#S )&rn   z@Response payload for the company operational state digital twin.r(   Úgenerated_atr7   rZ   r\   r   r6   r8   z$list[CompanyOperationalProjectState]Úprojectsz list[CompanyOperationalRiskItem]Úrisksz#list[CompanyOperationalBlockedItem]Úblocked_itemsz#list[CompanyOperationalBacklogItem]ÚbacklogrS   Ú	workforcez$list[CompanyOperationalSourceStatus]Úsource_statuszlist[DossierCase]Úoperations_caseszlist[OperationsActionItem]Úoperations_actionsÚoperations_blockersz list[RemediationPlanSummaryItem]Úremediation_plansz(list[CompanyOperationalStateSummaryItem]Úremediation_summaryz list[DossierReviewSessionRecord]Údossier_reviewsr:   Úpolicy_overviewNr+   r_   )r   r   r    r!   r"   r   rV   rt   ru   rv   rw   ry   rz   r{   r|   r}   r~   r   r<   r€   r_   r#   r$   r%   rn   rn   ­   sú  € € € € € € ØJÐJàÐÐÑØ€K€K�KØÐÐÑØ&Ð&Ð&Ñ&Ø5:°UÈ4Ð5PÑ5PÔ5P€HÐPÐPÐPÑPØ.3¨eÀDÐ.IÑ.IÔ.I€EÐIÐIÐIÑIØ9>¸ÈtÐ9TÑ9TÔ9T€MÐTÐTÐTÑTØ38°5ÈÐ3NÑ3NÔ3N€GÐNÐNÐNÑNØ0Ð0Ð0Ñ0Ø:?¸%ÐPTÐ:UÑ:UÔ:U€MÐUÐUÐUÑUØ*/¨%ÀÐ*EÑ*EÔ*EÐÐEÐEÐEÑEØ5:°UÈ4Ð5PÑ5PÔ5PÐÐPÐPÐPÑPØ?D¸uØð@ñ @ô @Ðð ð ð ñ ð ;@¸%ÐPTÐ:UÑ:UÔ:UÐÐUÐUÐUÑUØDIÀEØðEñ Eô EÐð ð ð ñ ð 9>¸ÈdÐ8SÑ8SÔ8S€OÐSÐSÐSÑSØ&+ e¸DÐ&AÑ&AÔ&A€OÐAÐAÐAÑAØ€GÐÐÐÑÐÐr$   rn   N)rh   ri   )r!   Ú
__future__r   Útypingr   r   Úpydanticr   r   Úapp.models.schemasr	   r
   r   r   r   r'   r>   rF   rN   rS   rX   ra   rq   rn   r#   r$   r%   ú<module>r…      s<  ððð ð #Ð "Ð "Ð "Ð "Ð "à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %àð ðð ð ð ð ð ð ð ð ð ð ð ð!ð !ð !ð !ð ! 	ñ !ô !ð !ð&;ð ;ð ;ð ;ð ; Yñ ;ô ;ð ;ð*;ð ;ð ;ð ;ð ; ñ ;ô ;ð ;ð;ð ;ð ;ð ;ð ; Iñ ;ô ;ð ;ð&;ð ;ð ;ð ;ð ; Iñ ;ô ;ð ;ð(3ð 3ð 3ð 3ð 3¨	ñ 3ô 3ð 3ð	ð 	ð 	ð 	ð 	 Yñ 	ô 	ð 	ð	;ð 	;ð 	;ð 	;ð 	;¨ñ 	;ô 	;ð 	;ðð ð ð ð,ð ð ð ð  iñ ô ð ð6 *Ð )Ñ +Ô +Ð +Ð +Ð +r$   