§
     ’j8  ã                  ó0  — d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ  e¦   «         Ze                     d	e¬
¦  «         ee¦  «        fd!d„¦   «         Ze                     de¬
¦  «         ee¦  «        fd"d„¦   «         Ze                     de¬
¦  «         e eg d¢¦  «        ¦  «        fd#d„¦   «         Z e                     d¦  «        d e eg d¢¦  «        ¦  «        fd$d„¦   «         Z!d S )%é    )Úannotations)ÚAny)Ú	APIRouterÚDependsÚHTTPException)Úget_qdrant_store)Úget_current_userÚrequire_role)	ÚDossierCoverageResponseÚDossierCriticalMissingItemÚDossierDocumentIndexItemÚDossierMissingDocumentItemÚDossierReadinessResponseÚDossierReadinessSummaryÚDossierStageReadinessÚ MissingDocumentGenerationRequestÚ!MissingDocumentGenerationResponse)ÚDossierReportService)Ú(build_missing_document_generation_bundlez$/v1/dossiers/{project_code}/coverage)Úresponse_modelÚproject_codeÚstrÚcurrent_userúdict[str, Any]Úreturnr   c                ó¬   — ddl m} 	  |¦   «                              | ¦  «        S # t          $ r$}t	          dt          |¦  «        ¬¦  «        |‚d}~ww xY w)zAReturn manifest-based dossier coverage report for a project code.r   )ÚRemediationPlanningServicei”  ©Ústatus_codeÚdetailN)Ú9app.modules.core.application.remediation_planning_servicer   Úget_project_coverageÚ
ValueErrorr   r   )r   r   r   Úexcs       ú_C:\Projects\DSCons\app\modules\dossier\presentation\dossier_modules\dossier_readiness_routes.pyÚdossier_coverager&      sx   € ð eÐdÐdÐdÐdÐdðGØ)Ð)Ñ+Ô+×@Ò@ÀÑNÔNÐNøÝð Gð Gð GÝ¨µC¸±H´HÐ=Ñ=Ô=À3ÐFøøøøðGøøøs   ˆ% ¥
A¯AÁAz%/v1/dossiers/{project_code}/readinessr   c                ó(  — t          t          ¦   «         ¦  «        }	 |                     | ¦  «        }n1# t          $ r$}t	          dt          |¦  «        ¬¦  «        |‚d}~ww xY wd„ |d                              ¦   «         D ¦   «         }d„ |d                              ¦   «         D ¦   «         }d„ |d	         D ¦   «         }d
„ |d                              ¦   «         D ¦   «         }t          |d         |d         ||||t          di |d         ¤Ž¬¦  «        S )z3Return dossier readiness report for a project code.é�  r   Nc                ó4   — i | ]}|d          t          di |¤Ž“ŒS )Údocument_type© )r   ©Ú.0Úitems     r%   ú
<dictcomp>z%dossier_readiness.<locals>.<dictcomp>8   s>   € ð ð ð àð 	ˆ_ÔÕ7Ð?Ð?¸$Ð?Ð?ðð ð ó    Údocument_indexc                ó.   — i | ]\  }}|d „ |D ¦   «         “ŒS )c                ó&   — g | ]}t          d i |¤Ž‘ŒS ©r+   )r   r,   s     r%   ú
<listcomp>z0dossier_readiness.<locals>.<dictcomp>.<listcomp>=   s'   € ÐEÐEÐE°tÕ*Ð2Ð2¨TÐ2Ð2ÐEÐEÐEr0   r+   )r-   ÚstageÚitemss      r%   r/   z%dossier_readiness.<locals>.<dictcomp><   s=   € ð ð ð áˆE�5ð 	ÐEÐE¸uÐEÑEÔEðð ð r0   Údocuments_missingc                ó&   — g | ]}t          d i |¤Ž‘ŒS r4   )r   r,   s     r%   r5   z%dossier_readiness.<locals>.<listcomp>@   s4   € ð ð ð Ø/3Õ"Ð*Ð* TÐ*Ð*ðð ð r0   Úcritical_missingc                ó.   — i | ]\  }}|t          d i |¤Ž“ŒS r4   )r   )r-   r6   r.   s      r%   r/   z%dossier_readiness.<locals>.<dictcomp>C   s=   € ð ð ð áˆE�4ð 	Õ$Ð,Ð, tÐ,Ð,ðð ð r0   Ú	readinessr   Údocuments_presentÚsummary)r   r=   r1   r8   r:   r<   r>   r+   )
r   r   Úbuild_project_reportr#   r   r   Úvaluesr7   r   r   )	r   r   Úreport_serviceÚreportr$   r1   r8   r:   r<   s	            r%   Údossier_readinessrC   +   sr  € õ *Õ*:Ñ*<Ô*<Ñ=Ô=€NðGØ×4Ò4°\ÑBÔBˆˆøÝð Gð Gð GÝ¨µC¸±H´HÐ=Ñ=Ô=À3ÐFøøøøðGøøøðð àÐ+Ô,×3Ò3Ñ5Ô5ðñ ô €Nðð à"Ð#6Ô7×=Ò=Ñ?Ô?ðñ ô Ððð Ø7=Ð>PÔ7Qðñ ô Ððð à! +Ô.×4Ò4Ñ6Ô6ðñ ô €Iõ
 $Ø˜NÔ+Ø Ð!4Ô5Ø%Ø+Ø)ØÝ'Ð<Ð<¨&°Ô*;Ð<Ð<ðñ ô ð s   �3 ³
A!½AÁA!z/v1/dossiers/generate-missing)Ú
superadminÚdirectorÚpmÚsite_engineerÚpayloadr   r   c                óP   — t          | j        | j        ¬¦  «        }t          di |¤ŽS )uJ   Táº¡o káº¿ hoáº¡ch vÃ  placeholder content cho cÃ¡c há»“ sÆ¡ cÃ²n thiáº¿u.)r   Úmissing_document_typesr+   )r   r   rJ   r   )rH   r   Úbundles      r%   Ú"generate_missing_dossier_documentsrL   S   s:   € õ 6ØÔ)Ø&Ô=ðñ ô €Fõ -Ð6Ð6¨vÐ6Ð6Ð6r0   z+/v1/dossiers/generate-template/{finding_id}Úbien_ban_nghiem_thu_noi_boÚ
finding_idÚtemplate_typec                óŠ   — ddl m}  |¦   «         }|                     | |¬¦  «        }d|v rt          d|d         ¬¦  «        ‚|S )u_   Sinh biá»ƒu máº«u tÃ i liá»‡u Ä‘iá»�n sáºµn thÃ´ng tin há»£p Ä‘á»“ng cho há»“ sÆ¡ cÃ²n thiáº¿u.r   )ÚDossierGeneratorService)rN   rO   Úerrorr(   r   )Ú9app.modules.dossier.application.dossier_generator_servicerQ   Úgenerate_dossier_templater   )rN   rO   r   rQ   ÚserviceÚress         r%   rT   rT   e   sk   € ð bÐaÐaÐaÐaÐaà%Ð%Ñ'Ô'€GØ
×
+Ò
+Ø¨]ð ,ñ ô €Cð �#€~€~Ý¨°C¸´LÐAÑAÔAÐAØ€Jr0   N)r   r   r   r   r   r   )r   r   r   r   r   r   )rH   r   r   r   r   r   )rN   r   rO   r   r   r   r   r   )"Ú
__future__r   Útypingr   Úfastapir   r   r   Úapp.api.dependenciesr   Ú"app.modules.auth.presentation.authr	   r
   Úapp.models.schemasr   r   r   r   r   r   r   r   r   Ú6app.modules.dossier.application.dossier_report_servicer   ÚBapp.modules.agents.application.missing_document_generation_servicer   ÚrouterÚgetr&   rC   ÚpostrL   rT   r+   r0   r%   ú<module>rb      s’  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð XÐ WÐ WÐ WÐ WÐ Wðð ð ð ð ð ð 
ˆ‰Œ€ð ‡‚Ø*Ð;Rð ñ ô ð 7>°gÐ>NÑ6OÔ6Oð	Gð 	Gð 	Gð 	Gñô ð	Gð ‡‚Ø+Ð<Tð ñ ô ð 7>°gÐ>NÑ6OÔ6Oð"ð "ð "ð "ñô ð"ðJ ‡‚Ø#Ø4ð ñ ô ð $+ 7ØˆÐFÐFÐFÑGÔGñ$ô $ð7ð 7ð 7ð 7ñ	ô ð7ð ‡‚Ð:Ñ;Ô;ð 6Ø#* 7ØˆÐFÐFÐFÑGÔGñ$ô $ðð ð ð ñ <Ô;ðð ð r0   