§
    ÔŸ’j‡  ã                  ón   — d dl mZ d dlZd dlmZ ddlmZ  ej        d¦  «        Z G d„ de¦  «        Z	dS )	é    )ÚannotationsN)ÚAnyé   )ÚMissingDocumentHelpersMixinzdscons.missing_document.contentc                  ó:   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚMissingDocumentContentMixinzPContent, payload, and planning builders for generated missing document packages.Úproject_codeÚstrÚdocument_typeÚdocument_metaúdict[str, Any]ÚscaffoldÚ	file_nameÚgenerated_atÚreturnc                óº  ‡ — |||                      d¦  «        p‰                      |¦  «        |                      dd¦  «        t          |                      dd¦  «        ¦  «        ||d         t          |d                  dœ|d         |                      d	¦  «        t	          |d
         ¦  «        dœˆ fd„|d         D ¦   «         d„ |d         D ¦   «         |dddœdœ
S )uV   Táº¡o payload structured Ä‘á»ƒ parent agent cÃ³ thá»ƒ render hoáº·c ghi file sau nÃ y.ÚlabelÚ	doc_stageÚunknownÚcriticalFÚfile_extension)r   r   Ú	mime_typeÚgenerator_typeÚtemplate_keyÚsections)r   r   r   c                óL   •— g | ] }|d ‰                      |¦  «        d|› d�dœ‘Œ!S )Úpending_inputú[[ú]])Ú
field_nameÚstatusr   Úexample_value)Ú_humanize_field_name)Ú.0r    Úselfs     €úOC:\Projects\DSCons\app\services\missing_document_generation\content_builders.pyú
<listcomp>zJMissingDocumentContentMixin._build_placeholder_payload.<locals>.<listcomp>)   sW   ø€ ð  ð  ð  ð ð #-Ø-Ø!×6Ò6°zÑBÔBØ%8¨*Ð%8Ð%8Ð%8ð	ð ð ð  ð  ó    Úrequired_inputsc                ó   — i | ]	}|d |› d�“Œ
S )r   r   © )r$   r    s     r&   ú
<dictcomp>zJMissingDocumentContentMixin._build_placeholder_payload.<locals>.<dictcomp>2   s6   € ð ð ð àð Ð/ Ð/Ð/Ð/ðð ð r(   Úsafe_placeholder_onlyÚ#missing_document_generation_service)r   Úgeneration_modeÚsource)
r	   r   Údocument_labelr   r   ÚoutputÚtemplater)   ÚplaceholdersÚmetadata)ÚgetÚ_humanize_document_typeÚboolÚ_TEXT_FORMATSÚlist)r%   r	   r   r   r   r   r   s   `      r&   Ú_build_placeholder_payloadz6MissingDocumentContentMixin._build_placeholder_payload   s,  ø€ ð )Ø*Ø+×/Ò/°Ñ8Ô8ð ;Ø×+Ò+¨MÑ:Ô:Ø&×*Ò*¨;¸	ÑBÔBÝ˜]×.Ò.¨z¸5ÑAÔAÑBÔBà&Ø"*Ð+;Ô"<Ý*¨8Ð4DÔ+EÔFðð ð #+Ð+;Ô"<Ø (§¢¨^Ñ <Ô <Ý  ¨*Ô!5Ñ6Ô6ðð ð
 ð  ð  ð  ð #+Ð+<Ô"=ð ñ  ô  ðð à"*Ð+<Ô"=ðñ ô ð
 !-Ø#:Ø?ðð ð=#
ð #
ð #	
r(   c                óÒ  — d|                      d¦  «        p|                      |¦  «        › �ddddd|› �d|› �d|                      d	d
¦  «        › �d|                      d¦  «        rdnd› �d|› �d|› �dddg}|d         D ]1}|                     d|                      |¦  «        › d|› d�¦  «         Œ2|                     g d¢¦  «         |d         D ]5}	|                     d|	› �dd|                      |	¦  «        › d�dg¦  «         Œ6|                     g d¢¦  «         |                      d¦  «        r |                     dd|d         › �g¦  «         d                     |¦  «        S )u[   Sinh ná»™i dung markdown placeholder an toÃ n, khÃ´ng pháº£i vÄƒn báº£n phÃ¡t hÃ nh tháº­t.z# r   Ú uc   > Báº£n nhÃ¡p placeholder do há»‡ thá»‘ng táº¡o tá»± Ä‘á»™ng Ä‘á»ƒ bá»• sung há»“ sÆ¡ cÃ²n thiáº¿u.ud   > Chá»‰ dÃ¹ng cho bÆ°á»›c rÃ  soÃ¡t / chuáº©n bá»‹ dá»¯ liá»‡u, chÆ°a pháº£i vÄƒn báº£n phÃ¡t hÃ nh.u   - MÃ£ dá»± Ã¡n: u   - Loáº¡i tÃ i liá»‡u: u   - Giai Ä‘oáº¡n há»“ sÆ¡: r   r   u   - Má»©c Ä‘á»™ Æ°u tiÃªn: r   Únormalu   - TÃªn file dá»± kiáº¿n: u!   - Thá»�i Ä‘iá»ƒm táº¡o scaffold: u*   ## Dá»¯ liá»‡u Ä‘áº§u vÃ o cáº§n bá»• sungr)   z- **z**: `[[z]]`)r=   u    ## Khung ná»™i dung Ä‘á»� xuáº¥tr=   r   z### z[[noi_dung_r   )u   ## Ghi chÃº váº­n hÃ nhr=   u^   - Reviewer cáº§n xÃ¡c minh Ä‘áº§y Ä‘á»§ thÃ´ng tin phÃ¡p lÃ½, sá»‘ liá»‡u vÃ  chá»§ thá»ƒ kÃ½.ur   - CÃ³ thá»ƒ dÃ¹ng payload structured Ä‘i kÃ¨m Ä‘á»ƒ render sang Ä‘á»‹nh dáº¡ng file text/markdown á»Ÿ bÆ°á»›c sau.uc   - KhÃ´ng tá»± Ä‘á»™ng phÃ¡t hÃ nh vÄƒn báº£n nÃ y náº¿u chÆ°a cÃ³ ngÆ°á»�i phá»¥ trÃ¡ch kiá»ƒm tra.Únotesu   - Ghi chÃº template: ú
)r6   r7   Úappendr#   ÚextendÚ_slugifyÚjoin)
r%   r	   r   r   r   r   r   Úlinesr    Úsections
             r&   Ú_build_placeholder_contentz6MissingDocumentContentMixin._build_placeholder_content=   sù  € ð ]�×"Ò" 7Ñ+Ô+ÐZ¨t×/KÒ/KÈMÑ/ZÔ/ZÐ\Ð\ØØqØrØØ-˜|Ð-Ð-Ø4 ]Ð4Ð4ØS¨×(9Ò(9¸+ÀyÑ(QÔ(QÐSÐSØc°m×6GÒ6GÈ
Ñ6SÔ6SÐ(a¨
¨
ÐYaÐcÐcØ3¨	Ð3Ð3Ø>°Ð>Ð>ØØ8Øð
ˆð" #Ð#4Ô5ð 	ð 	ˆJØ�LŠLØT�t×0Ò0°Ñ<Ô<ÐTÐTÀZÐTÐTÐTñô ð ð ð 	�ŠÐAÐAÐAÑBÔBÐBà 
Ô+ð 	ð 	ˆGØ�LŠLØ!˜Ð!Ð! 2Ð'O°T·]²]À7Ñ5KÔ5KÐ'OÐ'OÐ'OÐQSÐTñô ð ð ð 	�Šðð ð ñ	
ô 	
ð 	
ð �<Š<˜Ñ Ô ð 	LØ�LŠL˜"ÐI°h¸wÔ6GÐIÐIÐJÑKÔKÐKà�yŠy˜ÑÔÐr(   Úitemsúlist[dict[str, Any]]c           	     ó‚   — g }|D ]9}|                      |d         |d         |d         rdndd|d         dœ¦  «         Œ:|S )	u=   Táº¡o checklist thao tÃ¡c ngáº¯n gá»�n cho toÃ n bá»™ bundle.r   r   r   Úhighr>   u@   Bá»• sung required_inputs rá»“i ghi placeholder_content ra file.Úoutput_path)r   r   ÚpriorityÚnext_actionrL   )rA   )r%   rH   ÚplanÚitems       r&   Ú_build_generation_planz2MissingDocumentContentMixin._build_generation_plans   sp   € ð &(ˆØð 		ð 		ˆDØ�KŠKà%)¨/Ô%:Ø!% kÔ!2Ø*.¨zÔ*:Ð H  ÀØ#eØ#'¨Ô#6ðð ñô ð ð ð ˆr(   c                ó`   — t          d„ |D ¦   «         ¦  «        }|t          |¦  «        |z
  ddœS )u$   TÃ³m táº¯t nhanh phá»¥c vá»¥ API/UI.c              3  ó*   K  — | ]}|d          ¯
dV — ŒdS )r   r   Nr+   )r$   rP   s     r&   ú	<genexpr>z=MissingDocumentContentMixin._build_summary.<locals>.<genexpr>†   s,   è è € ÐEÐE 4°D¸Ô4DÐE˜QÐEÐEÐEÐEÐEÐEr(   uŠ   Ä�Ã£ táº¡o scaffold an toÃ n cho cÃ¡c há»“ sÆ¡ cÃ²n thiáº¿u. Cáº§n bá»• sung dá»¯ liá»‡u báº¯t buá»™c trÆ°á»›c khi ghi file chÃ­nh thá»©c.)Úcritical_documentsÚnormal_documentsÚmessage)ÚsumÚlen)r%   rH   Úcritical_counts      r&   Ú_build_summaryz*MissingDocumentContentMixin._build_summary„   sD   € åÐEÐE¨5ÐEÑEÔEÑEÔEˆà"0Ý # E¡
¤
¨^Ñ ;ð`ð	
ð 
ð 	
r(   údict[str, dict[str, Any]]c           
     óh  — i }| j                              ¦   «         D ]•\  }}|D ]�}t          |                     dd¦  «        ¦  «                             ¦   «         }|sŒ:||                     d¦  «        p|                      |¦  «        t          |                     dd¦  «        ¦  «        |dœ||<   ŒŽŒ–|S )uP   Láº­p chá»‰ má»¥c metadata tÃ i liá»‡u tá»« bá»™ quy táº¯c readiness hiá»‡n cÃ³.r   r=   r   r   F)r   r   r   r   )Ú_stage_requirementsrH   r
   r6   Ústripr7   r8   )r%   Údocument_indexr   ÚrequirementsÚrequirementr   s         r&   Ú_build_document_indexz1MissingDocumentContentMixin._build_document_index�   sÑ   € à46ˆØ'+Ô'?×'EÒ'EÑ'GÔ'Gð 	ð 	Ñ#ˆI�|Ø+ð 
ð 
�Ý # K§O¢O°OÀRÑ$HÔ$HÑ IÔ I× OÒ OÑ QÔ Q�Ø$ð Øà%2Ø(Ÿ_š_¨WÑ5Ô5ð CØ×3Ò3°MÑBÔBÝ $ [§_¢_°ZÀÑ%GÔ%GÑ HÔ HØ!*ð1ð 1�˜}Ñ-Ð-ð	
ð Ðr(   N)r	   r
   r   r
   r   r   r   r   r   r
   r   r
   r   r   )r	   r
   r   r
   r   r   r   r   r   r
   r   r
   r   r
   )rH   rI   r   rI   )rH   rI   r   r   )r   r\   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   rG   rQ   r[   rc   r+   r(   r&   r   r      s€   € € € € € ØZÐZð-
ð -
ð -
ð -
ð^4 ð 4 ð 4 ð 4 ðlð ð ð ð"

ð 

ð 

ð 

ðð ð ð ð ð r(   r   )
Ú
__future__r   ÚloggingÚtypingr   Úhelpersr   Ú	getLoggerÚloggerr   r+   r(   r&   ú<module>rn      s–   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0à	ˆÔ	Ð<Ñ	=Ô	=€ðTð Tð Tð Tð TÐ"=ñ Tô Tð Tð Tð Tr(   