§
    s�’jé  ã                  óf  — d dl mZ d dlmZ d dl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 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )Úannotations)ÚAny)Ú	BaseModelÚFieldÚmodel_validatorc                  óž   — 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Zded<   dZ	ded<   dZ
ded<    ee¬¦  «        Zded<   dS )ÚRemediationRequiredInputItemuc   Má»™t input báº¯t buá»™c cáº§n cÃ³ trÆ°á»›c khi láº­p hoáº·c thá»±c thi phÆ°Æ¡ng Ã¡n kháº¯c phá»¥c.ÚstrÚ
input_codeÚlabelÚmissingÚstatusNú
str | NoneÚdescriptionÚexample_valueÚsource_hintTÚboolÚrequiredFÚblocking©Údefault_factoryúdict[str, Any]Úmetadata)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   r   r   r   r   Údictr   © ó    úKC:\Projects\DSCons\app\models\operations_remediation\remediation_schemas.pyr	   r	      s®   € € € € € € ØmÐmà€O€O�OØ€J€J�JØ€FÐÐÐÑØ"€KÐ"Ð"Ð"Ñ"Ø $€MÐ$Ð$Ð$Ñ$Ø"€KÐ"Ð"Ð"Ñ"Ø€HÐÐÐÑØ€HÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r!   r	   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	<    ee¬
¦  «        Z	ded<   dZ
ded<   dZded<    ee¬
¦  «        Zded<   dS )Ú"RemediationArtifactRequirementItemuQ   Má»™t Ä‘áº§u ra hoáº·c artifact cáº§n Ä‘Æ°á»£c táº¡o/chá»‘t Ä‘á»ƒ Ä‘Ã³ng finding.r
   Úartifact_coder   Úartifact_typeTr   r   Úreview_requiredr   ú	list[str]Úacceptance_criteriaNr   Údelivery_formatÚdestination_folderr   r   )r   r   r   r   r   r   r'   r   Úlistr)   r*   r+   r   r   r    r!   r"   r$   r$      s»   € € € € € € Ø[Ð[àÐÐÑØ€J€J�JØÐÐÑØ€HÐÐÐÑØ €OÐ Ð Ð Ñ Ø%* U¸4Ð%@Ñ%@Ô%@ÐÐ@Ð@Ð@Ñ@Ø"&€OÐ&Ð&Ð&Ñ&Ø%)ÐÐ)Ð)Ð)Ñ)Ø$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r!   r$   c                  ó  — e Zd ZU dZded<   ded<   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<    ee¬¦  «        Zded<    ee¬¦  «        Zded<   dZded<    ee¬¦  «        Zded<   dS )ÚRemediationTaskItemu;   Má»™t bÆ°á»›c cÃ´ng viá»‡c trong baseline remediation plan.r
   Útask_idÚ	task_codeÚtitleNr   r   Ú	task_typeÚpendingr   ÚmediumÚpriorityé   ÚintÚsequence_noÚowner_department_codeÚowner_employee_coder   r(   Údependency_task_idsÚexpected_output_codesFr   r   r   r   )r   r   r   r   r   r   r   r5   r8   r9   r:   r   r,   r;   r<   r   r   r   r    r!   r"   r.   r.   $   s  € € € € € € ØEÐEà€L€L�LØ€N€N�NØ€J€J�JØ"€KÐ"Ð"Ð"Ñ"Ø€N€N�NØ€FÐÐÐÑØ€HÐÐÐÑØ€KÐÐÐÑØ(,ÐÐ,Ð,Ð,Ñ,Ø&*ÐÐ*Ð*Ð*Ñ*Ø%* U¸4Ð%@Ñ%@Ô%@ÐÐ@Ð@Ð@Ñ@Ø', u¸TÐ'BÑ'BÔ'BÐÐBÐBÐBÑBØ€HÐÐÐÑØ$˜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<    ee¬¦  «        Zded<   dZded<   dZded<   dS )ÚRemediationReadinessSummaryuW   TÃ³m táº¯t má»©c sáºµn sÃ ng vÃ  cÃ¡c Ä‘iá»ƒm ngháº½n cá»§a phÆ°Æ¡ng Ã¡n kháº¯c phá»¥c.Úblockedr
   r   r   r7   Úready_input_countÚmissing_input_countÚblocking_input_countÚartifact_countÚ
task_countr   r(   Úblocking_reasonsÚcoverage_gap_countNr   Úmessage)r   r   r   r   r   r   r@   rA   rB   rC   rD   r   r,   rE   rF   rG   r    r!   r"   r>   r>   7   sÃ   € € € € € € ØaÐaà€FÐÐÐÑØÐÐÐÐÑØ ÐÐ Ð Ð Ñ Ø !ÐÐ!Ð!Ð!Ñ!Ø€NÐÐÐÑØ€JÐÐÐÑØ"' %¸Ð"=Ñ"=Ô"=ÐÐ=Ð=Ð=Ñ=ØÐÐÐÐÑØ€GÐÐÐÑÐÐr!   r>   c                  óf  — e Zd ZU dZded<   ded<   ded<   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ed<   ded<    e
e¬¦  «        Zded<    e
e¬¦  «        Zded<    e
e¬¦  «        Z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 )$ÚRemediationPlanItemuF   PhÆ°Æ¡ng Ã¡n kháº¯c phá»¥c machine-readable cho má»™t dossier finding.r
   Úplan_idÚproject_codeÚreview_session_idÚ
finding_idNr   Úfinding_codeÚdocument_typeÚdossier_stager4   r5   r9   r:   r+   Úoutput_filenameÚnaming_ruler   z"list[RemediationRequiredInputItem]Úrequired_inputsz(list[RemediationArtifactRequirementItem]Úartifact_requirementszlist[RemediationTaskItem]Úremediation_tasksr>   Úreadiness_summaryÚderivedÚsourceFr   Úused_fallbackrG   r   r   )r   r   r   r   r   rN   rP   r5   r9   r:   r   r,   rS   rT   rU   rX   rY   rG   r   r   r    r!   r"   rI   rI   E   s—  € € € € € € ØPÐPà€L€L�LØÐÐÑØÐÐÑØ€O€O�OØ#€LÐ#Ð#Ð#Ñ#ØÐÐÑØ $€MÐ$Ð$Ð$Ñ$Ø€HÐÐÐÑØ(,ÐÐ,Ð,Ð,Ñ,Ø&*ÐÐ*Ð*Ð*Ñ*ØÐÐÑØÐÐÑØÐÐÑØ:?¸%ÐPTÐ:UÑ:UÔ:U€OÐUÐUÐUÑUØFKÀeØðGñ Gô GÐð ð ð ñ ð 49°5ÈÐ3NÑ3NÔ3NÐÐNÐNÐNÑNØ2Ð2Ð2Ñ2Ø€FÐÐÐÑØ€MÐÐÐÑØ€GÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r!   rI   c                  óœ   — e Zd ZU dZ 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¬¦  «        dd„¦   «         ZdS )ÚRemediationBuildRequestuA   Request payload Ä‘á»ƒ build má»™t remediation plan tÆ°á»�ng minh..r6   )Ú
min_lengthr
   rK   Nr   rL   rM   rN   rO   Úafter)ÚmodeÚreturnc                óü   — t          | j        o| j                             ¦   «         | j        o| j                             ¦   «         | j        o| j                             ¦   «         g¦  «        st          d¦  «        ‚| S )uQ   YÃªu cáº§u Ã­t nháº¥t má»™t selector Ä‘á»ƒ xÃ¡c Ä‘á»‹nh finding cáº§n build plan.u\   Cáº§n cung cáº¥p finding_id, finding_code hoáº·c document_type Ä‘á»ƒ build remediation plan.)ÚanyrM   ÚstriprN   rO   Ú
ValueError)Úselfs    r"   Úensure_finding_selectorz/RemediationBuildRequest.ensure_finding_selectorj   s…   € õ à”Ð; D¤O×$9Ò$9Ñ$;Ô$;ØÔ!Ð? dÔ&7×&=Ò&=Ñ&?Ô&?ØÔ"ÐA tÔ'9×'?Ò'?Ñ'AÔ'Aðñ
ô 
ð 		õ Ønñô ð ð ˆr!   )r_   r[   )r   r   r   r   r   rK   r   rL   rM   rN   rO   r   re   r    r!   r"   r[   r[   a   s­   € € € € € € ØKÐKà˜˜c¨aÐ0Ñ0Ô0€LÐ0Ð0Ð0Ñ0Ø$(ÐÐ(Ð(Ð(Ñ(Ø!€JÐ!Ð!Ð!Ñ!Ø#€LÐ#Ð#Ð#Ñ#Ø $€MÐ$Ð$Ð$Ñ$à€_˜'Ð"Ñ"Ô"ðð ð ñ #Ô"ðð ð r!   r[   c                  óL   — 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S )ÚRemediationBuildResponseu<   Response payload cho thao tÃ¡c build má»™t remediation plan.NzRemediationPlanItem | NoneÚitemÚfallbackr
   rX   Fr   rY   r   rG   )	r   r   r   r   rh   r   rX   rY   rG   r    r!   r"   rg   rg   z   s\   € € € € € € ØFÐFà'+€DÐ+Ð+Ð+Ñ+Ø€FÐÐÐÑØ€MÐÐÐÑØ€GÐÐÐÑÐÐr!   rg   c                  óp  — 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
<   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<    ee¬¦  «        Zded<    ee¬¦  «        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 )!ÚRemediationGapItemuS   Má»™t readiness/remediation gap Ä‘Æ°á»£c chuáº©n hÃ³a tá»« dossier review findings.r
   rK   rL   rM   Nr   rN   rO   rP   r4   r5   r9   r:   r?   Ú
gap_statusr   r(   rE   Úmissing_input_codesÚmissing_input_labelsFr   Úrequires_document_type_mappingÚcan_build_planrJ   Úsuggested_task_typerW   rX   rY   r   r   )r   r   r   r   r   rN   rO   rP   r5   r9   r:   rl   r   r,   rE   rm   rn   ro   rp   rJ   rq   rX   rY   r   r   r    r!   r"   rk   rk   ƒ   s•  € € € € € € Ø]Ð]àÐÐÑØÐÐÑØ€O€O�OØ#€LÐ#Ð#Ð#Ñ#Ø $€MÐ$Ð$Ð$Ñ$Ø $€MÐ$Ð$Ð$Ñ$Ø€HÐÐÐÑØ(,ÐÐ,Ð,Ð,Ñ,Ø&*ÐÐ*Ð*Ð*Ñ*Ø€JÐÐÐÑØ"' %¸Ð"=Ñ"=Ô"=ÐÐ=Ð=Ð=Ñ=Ø%* U¸4Ð%@Ñ%@Ô%@ÐÐ@Ð@Ð@Ñ@Ø&+ e¸DÐ&AÑ&AÔ&AÐÐAÐAÐAÑAØ+0Ð"Ð0Ð0Ð0Ñ0Ø €NÐ Ð Ð Ñ Ø€GÐÐÐÑØ&*ÐÐ*Ð*Ð*Ñ*Ø€FÐÐÐÑØ€MÐÐÐÑØ$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:Ð:Ð:r!   rk   c                  ó`   — e Zd ZU dZ ee¬¦  «        Zded<   dZded<   dZ	d	ed
<   dZ
ded<   dS )ÚRemediationGapsResponseuB   Danh sÃ¡ch readiness/remediation gaps suy ra tá»« review findings.r   zlist[RemediationGapItem]Úitemsri   r
   rX   Fr   rY   Nr   rG   ©r   r   r   r   r   r,   rt   r   rX   rY   rG   r    r!   r"   rs   rs   œ   si   € € € € € € ØLÐLà&+ e¸DÐ&AÑ&AÔ&A€EÐAÐAÐAÑAØ€FÐÐÐÑØ€MÐÐÐÑØ€GÐÐÐÑÐÐr!   rs   c                  ó`   — e Zd ZU dZ ee¬¦  «        Zded<   dZded<   dZ	d	ed
<   dZ
ded<   dS )ÚRemediationListResponseuE   Danh sÃ¡ch remediation plans suy diá»…n tá»« dossier review sessions.r   zlist[RemediationPlanItem]rt   ri   r
   rX   Fr   rY   Nr   rG   ru   r    r!   r"   rw   rw   ¥   si   € € € € € € ØOÐOà', u¸TÐ'BÑ'BÔ'B€EÐBÐBÐBÑBØ€FÐÐÐÑØ€MÐÐÐÑØ€GÐÐÐÑÐÐr!   rw   c                  óø   — e Zd ZU dZded<   ded<   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<    ee¬¦  «        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 )ÚRemediationPlanSummaryItemuQ   TÃ³m táº¯t remediation plan Ä‘á»ƒ nhÃºng vÃ o operational state hoáº·c dashboard.r
   rK   rL   rM   Nr   rN   rO   rP   r4   r5   r9   r:   r?   Úreadiness_statusr   r(   rE   r+   rQ   rW   rX   Fr   rY   rG   )r   r   r   r   r   rN   rP   r5   r9   r:   rz   r   r,   rE   r+   rQ   rX   rY   rG   r    r!   r"   ry   ry   ®   s#  € € € € € € Ø[Ð[àÐÐÑØÐÐÑØ€O€O�OØ#€LÐ#Ð#Ð#Ñ#ØÐÐÑØ $€MÐ$Ð$Ð$Ñ$Ø€HÐÐÐÑØ(,ÐÐ,Ð,Ð,Ñ,Ø&*ÐÐ*Ð*Ð*Ñ*Ø%ÐÐ%Ð%Ð%Ñ%Ø"' %¸Ð"=Ñ"=Ô"=ÐÐ=Ð=Ð=Ñ=Ø%)ÐÐ)Ð)Ð)Ñ)Ø"&€OÐ&Ð&Ð&Ñ&Ø€FÐÐÐÑØ€MÐÐÐÑØ€GÐÐÐÑÐÐr!   ry   N)Ú
__future__r   Útypingr   Úpydanticr   r   r   r	   r$   r.   r>   rI   r[   rg   rk   rs   rw   ry   r    r!   r"   ú<module>r~      s  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð;ð ;ð ;ð ;ð ; 9ñ ;ô ;ð ;ð;ð ;ð ;ð ;ð ;¨ñ ;ô ;ð ;ð;ð ;ð ;ð ;ð ;˜)ñ ;ô ;ð ;ð&ð ð ð ð  )ñ ô ð ð;ð ;ð ;ð ;ð ;˜)ñ ;ô ;ð ;ð8ð ð ð ð ˜iñ ô ð ð2ð ð ð ð ˜yñ ô ð ð;ð ;ð ;ð ;ð ;˜ñ ;ô ;ð ;ð2ð ð ð ð ˜iñ ô ð ðð ð ð ð ˜iñ ô ð ðð ð ð ð  ñ ô ð ð ð r!   