§
    ÔŸ’j“  ã                  ól   — 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¦  «        ZdS )é    )ÚannotationsN)Údatetime)ÚAnyzdscons.missing_document.helpersc                  óJ   — e Zd ZdZdd„Zdd
„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dS )ÚMissingDocumentHelpersMixinzSFormatting, normalization, and scaffolding helpers for missing document generation.Úmissing_document_typesú	list[str]Úreturnc                óØ   — g }t          ¦   «         }|D ]V}t          |pd¦  «                             ¦   «         }|r||v rŒ,|                     |¦  «         |                     |¦  «         ŒW|S )ua   Chuáº©n hÃ³a danh sÃ¡ch Ä‘áº§u vÃ o, loáº¡i bá»� rá»—ng vÃ  trÃ¹ng láº·p nhÆ°ng giá»¯ thá»© tá»±.Ú )ÚsetÚstrÚstripÚaddÚappend)Úselfr   Ú
normalizedÚseenÚitemÚdocument_types         úFC:\Projects\DSCons\app\services\missing_document_generation\helpers.pyÚ_normalize_document_typesz5MissingDocumentHelpersMixin._normalize_document_types   s~   € à "ˆ
Ý™œˆØ*ð 	-ð 	-ˆDÝ  
¨™OœO×1Ò1Ñ3Ô3ˆMØ ð  M°TÐ$9Ð$9ØØ�HŠH�]Ñ#Ô#Ð#Ø×Ò˜mÑ,Ô,Ð,Ð,ØÐó    r   r   Údocument_metaúdict[str, Any]c           
     ó¸   — |                      dd¦  «        }t                               |¦  «        }|r|S dddg d¢g d¢|d|                     d	¦  «        p|› d
�dœS )uD   Láº¥y scaffold theo tÃ i liá»‡u, fallback vá»� khung markdown chung.Ú_ú-ÚmdÚmarkdown_outlineN)u   ThÃ´ng tin chungu   CÄƒn cá»© láº­p há»“ sÆ¡u   Ná»™i dung chÃ­nhu   TÃ i liá»‡u Ä‘Ã­nh kÃ¨mu   XÃ¡c nháº­n)Úproject_nameÚdocument_numberÚissue_date_textÚissuer_nameu&   ChÆ°a cÃ³ template chuyÃªn biá»‡t cho Úlabelu#   , Ä‘ang dÃ¹ng khung chung an toÃ n.)Úfile_extensionÚgenerator_typeÚtemplate_keyÚsectionsÚrequired_inputsÚoutput_filename_suffixÚnotes)ÚreplaceÚ_DOCUMENT_SCAFFOLDSÚget)r   r   r   Údefault_suffixÚscaffolds        r   Ú_get_document_scaffoldz2MissingDocumentHelpersMixin._get_document_scaffold   s    € ð '×.Ò.¨s°CÑ8Ô8ˆÝ&×*Ò*¨=Ñ9Ô9ˆØð 	ØˆOð #Ø0Ø ðð ð ð ð  ð  ð '5ð4¸×9JÒ9JÈ7Ñ9SÔ9SÐ9dÐWdð 4ð 4ð 4ð'
ð 
ð 	
r   Úproject_coder+   r&   c                óŽ   — |                      ¦   «                              dd¦  «                             dd¦  «        }|› d|› d|› �S )u6   Sinh tÃªn file cÃ³ thá»ƒ ghi ra Ä‘Ä©a á»Ÿ bÆ°á»›c sau.ú/r   ú Ú__ú.)r   r-   )r   r3   r   r+   r&   Úsafe_project_codes         r   Ú_build_output_filenamez2MissingDocumentHelpersMixin._build_output_filename<   sT   € ð )×.Ò.Ñ0Ô0×8Ò8¸¸cÑBÔB×JÒJÈ3ÐPSÑTÔTÐØ#ÐPÐPÐ'=ÐPÐPÀÐPÐPÐPr   c                óv   — |                      dd¦  «                             ¦   «                              ¦   «         S )uQ   Chuyá»ƒn document_type ká»¹ thuáº­t thÃ nh nhÃ£n dá»… Ä‘á»�c khi chÆ°a cÃ³ label.r   r6   )r-   r   Útitle)r   r   s     r   Ú_humanize_document_typez3MissingDocumentHelpersMixin._humanize_document_typeG   s0   € à×$Ò$ S¨#Ñ.Ô.×4Ò4Ñ6Ô6×<Ò<Ñ>Ô>Ð>r   Ú
field_namec                óž   — |                      dd¦  «                              dd¦  «                             ¦   «                              ¦   «         S )u9   Chuyá»ƒn field ká»¹ thuáº­t thÃ nh nhÃ£n gáº§n gÅ©i hÆ¡n.r8   z / r   r6   )r-   r   Ú
capitalize)r   r>   s     r   Ú_humanize_field_namez0MissingDocumentHelpersMixin._humanize_field_nameK   s@   € à×!Ò! # uÑ-Ô-×5Ò5°c¸3Ñ?Ô?×EÒEÑGÔG×RÒRÑTÔTÐTr   Úvaluec                óD  — |                      ¦   «                              ¦   «         }i dd“dd“dd“dd“dd	“d
d	“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“dd“dd	“dd	“dd	“d d	“d!d	“d"d“d#d“d$d“d%d“d&d“d'd(“d)d(“¥d(d(d(d*œ¥}|                     ¦   «         D ]\  }}|                     ||¦  «        }Œ|                     d+d,¦  «                             d-d,¦  «        }d-                     d.„ |                     ¦   «         D ¦   «         ¦  «        S )/uF   Chuáº©n hÃ³a heading vá»� slug ASCII Ä‘Æ¡n giáº£n cho placeholder key.u   ÄƒÚaõ   Ã¢u   Ä‘Údõ   ÃªÚeõ   Ã´Úou   Æ¡u   Æ°Úuõ   Ã¡õ   Ã u   áº£õ   Ã£u   áº¡õ   Ã©õ   Ã¨u   áº»u   áº½u   áº¹õ   Ã­Úiõ   Ã¬u   á»‰u   Ä©u   á»‹õ   Ã³õ   Ã²u   á»�õ   Ãµu   á»�õ   Ãºõ   Ã¹u   á»§u   Å©u   á»¥õ   Ã½Úyu   á»³)u   á»·u   á»¹u   á»µr5   r6   r   c              3  ó   K  — | ]}|¯|V — Œ	d S )N© )Ú.0Úparts     r   ú	<genexpr>z7MissingDocumentHelpersMixin._slugify.<locals>.<genexpr>|   s'   è è € ÐDÐD ¸tÐD˜ÐDÐDÐDÐDÐDÐDr   )r   ÚlowerÚitemsr-   ÚjoinÚsplit)r   rB   r   ÚreplacementsÚsourceÚtargets         r   Ú_slugifyz$MissingDocumentHelpersMixin._slugifyO   sm  € à—[’[‘]”]×(Ò(Ñ*Ô*ˆ
ð&
Ø�#ð&
à�#ð&
ð �#ð&
ð �#ð	&
ð
 �#ð&
ð �#ð&
ð �#ð&
ð �#ð&
ð �#ð&
ð �3ð&
ð �#ð&
ð �3ð&
ð �#ð&
ð �#ð&
ð �3ð&
ð  �3ð!&
ð" �3ð#&
ð &
ð$ �#ð%&
ð& �#ð'&
ð( �3ð)&
ð* �#ð+&
ð, �3ð-&
ð. �#ð/&
ð0 �#ð1&
ð2 �3ð3&
ð4 �#ð5&
ð6 �3ð7&
ð8 �#ð9&
ð: �#ð;&
ð< �3ð=&
ð> �#ð?&
ð@ �3ðA&
ðB �#ðC&
ðD �3ðE&
ð &
ðF ØØðK&
ð &
ð &
ˆðN +×0Ò0Ñ2Ô2ð 	<ð 	<‰NˆF�FØ#×+Ò+¨F°FÑ;Ô;ˆJˆJØ×'Ò'¨¨SÑ1Ô1×9Ò9¸#¸sÑCÔCˆ
Ø�xŠxÐDÐD¨×)9Ò)9Ñ);Ô);ÐDÑDÔDÑDÔDÐDr   c                óX   — t          j        t          ¦  «                             ¦   «         S )u/   Tráº£ chuá»—i thá»�i gian UTC ISO cho metadata.)r   ÚnowÚUTCÚ	isoformat)r   s    r   Ú_utc_nowz$MissingDocumentHelpersMixin._utc_now~   s   € åŒ|�CÑ Ô ×*Ò*Ñ,Ô,Ð,r   N)r   r	   r
   r	   )r   r   r   r   r
   r   )
r3   r   r   r   r+   r   r&   r   r
   r   )r   r   r
   r   )r>   r   r
   r   )rB   r   r
   r   )r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r2   r:   r=   rA   rg   rl   r\   r   r   r   r   
   s´   € € € € € Ø]Ð]ð
ð 
ð 
ð 
ð!
ð !
ð !
ð !
ðF	Qð 	Qð 	Qð 	Qð?ð ?ð ?ð ?ðUð Uð Uð Uð-Eð -Eð -Eð -Eð^-ð -ð -ð -ð -ð -r   r   )	Ú
__future__r   Úloggingr   Útypingr   Ú	getLoggerÚloggerr   r\   r   r   ú<module>rv      s“   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð<Ñ	=Ô	=€ðv-ð v-ð v-ð v-ð v-ñ v-ô v-ð v-ð v-ð v-r   