§
    t�’jÛ  ã                  óz   — d dl mZ d dlZd dlmZ d dlmZ ddlmZ  ej	        d¦  «        Z
 G d„ d	e¦  «        ZdS )
é    )ÚannotationsN)ÚMapping)ÚAnyé   )ÚPayloadCoercionHelpersMixinz"dscons.generation_payload.sectionsc                  ó:   — e Zd ZdZd%d„Zd&d„Zd'd„Zd(d!„Zd)d#„Zd$S )*ÚPayloadSectionBuildersMixinzQSection payload builders for legal signatories, organization info, and readiness.Úsource_dataúMapping[str, Any]Úprimary_pathÚstrÚfallback_pathsútuple[str, ...]Údefault_nameú
str | NoneÚdefault_addressÚdefault_representative_nameÚdefault_representative_titleÚreturnú!GenerationOrganizationInfo | Nonec                óF  —  | j         ||g|¢R Ž }|                      |dd¦  «        }	|                      |dd¦  «        }
|                      |dd¦  «        }|                      |d¦  «        }|                      |dd	d
¦  «        }|                      |ddd¦  «        }|	p|}	|p|}|p|}|p|}t          |                      |	¦  «        |                      |¦  «        |                      |¦  «        |                      |¦  «        g¦  «        sdS t	          |	pd|
||||¬¦  «        S )uN   Dá»±ng thÃ´ng tin tá»• chá»©c tá»« object lá»“ng nhau hoáº·c cÃ¡c field rá»�i.ÚnameÚorganization_nameÚ
short_nameÚabbrÚ
departmentÚunitÚaddressÚrepresentative_nameÚ	full_nameÚcontact_nameÚrepresentative_titleÚtitleÚpositionNu+   [[suggested]] ChÆ°a xÃ¡c Ä‘á»‹nh Ä‘Æ¡n vá»‹)r   r   r   r   r   r"   )Ú_pick_first_mappingÚ_pick_first_str_from_mappingÚanyÚ_has_meaningful_valueÚGenerationOrganizationInfo)Úselfr
   r   r   r   r   r   r   Úorganization_datar   r   r   r   r   r"   s                  úEC:\Projects\DSCons\app\modules\agents\application\section_builders.pyÚ_build_organization_infoz4PayloadSectionBuildersMixin._build_organization_info   s¥  € ð 5˜DÔ4Ø˜ð
Ø(6ð
ð 
ð 
Ðð ×0Ò0Ø˜vÐ':ñ
ô 
ˆð ×6Ò6Ø˜|¨Vñ
ô 
ˆ
ð ×6Ò6Ø˜|¨Vñ
ô 
ˆ
ð ×3Ò3Ð4EÀyÑQÔQˆØ"×?Ò?ØØ!ØØñ	
ô 
Ðð  $×@Ò@ØØ"ØØñ	 
ô  
Ðð Ð#�|ˆØÐ,˜_ˆØ1ÐPÐ5PÐØ3ÐSÐ7SÐåà×*Ò*¨4Ñ0Ô0Ø×*Ò*¨7Ñ3Ô3Ø×*Ò*Ð+>Ñ?Ô?Ø×*Ò*Ð+?Ñ@Ô@ð	ñ
ô 
ð 	ð �4å)ØÐFÐFØ!Ø!ØØ 3Ø!5ð
ñ 
ô 
ð 	
ó    Údefault_full_nameÚdefault_titleÚorganizationÚdefault_signing_placeÚdefault_signing_date_textúGenerationSignatoryInfo | Nonec	                óä  —  | j         ||g|¢R Ž }	|                      |	dd¦  «        }
|                      |	dd¦  «        }|                      |	dd¦  «        }|                      |	d¦  «        }|                      |	dd	¦  «        }|
p|}
|p|}|p
|r|j        nd
}|p|}|p|}t          |                      |
¦  «        |                      |¦  «        |d
ug¦  «        sd
S t          |
pd|||||¬¦  «        S )uR   Dá»±ng thÃ´ng tin ngÆ°á»�i kÃ½ tá»« object lá»“ng nhau vÃ  tá»• chá»©c liÃªn quan.r    r   r#   r$   r   Úcompany_nameÚsigning_placeÚsigning_date_textÚ	date_textNu-   [[suggested]] ChÆ°a xÃ¡c Ä‘á»‹nh ngÆ°á»�i kÃ½)r    r#   r   r1   r7   r8   )r%   r&   r   r'   r(   ÚGenerationSignatoryInfo)r*   r
   r   r   r/   r0   r1   r2   r3   Úsignatory_datar    r#   r   r7   r8   s                  r,   Ú_build_signatory_infoz1PayloadSectionBuildersMixin._build_signatory_infoM   s�  € ð 2˜Ô1Ø˜ð
Ø(6ð
ð 
ð 
ˆð ×5Ò5Ø˜K¨ñ
ô 
ˆ	ð ×1Ò1°.À'È:ÑVÔVˆØ ×=Ò=ØØØñ
ô 
Ðð
 ×9Ò9Ø˜Oñ
ô 
ˆð !×=Ò=ØØØñ
ô 
Ðð Ð2Ð!2ˆ	ØÐ&˜ˆØ-ð 
Ø!-Ð7ˆLÔÐ°4ð 	ð &Ð>Ð)>ˆØ-ÐJÐ1JÐåà×*Ò*¨9Ñ5Ô5Ø×*Ò*¨5Ñ1Ô1Ø DÐ(ðñ
ô 
ð 	ð �4å&ØÐRÐ#RØØ/Ø%Ø'Ø/ð
ñ 
ô 
ð 	
r.   ÚtemplateÚGenerationTemplateRegistryEntryÚproject_nameÚdossier_codeÚhandover_date_textÚhandover_locationÚsite_descriptionú*dict[str, str | int | float | bool | None]c                óÊ  — |                       |d¦  «        }i }	|                     ¦   «         D ]G\  }
}t          |t          t          t
          t          f¦  «        s|€||	|
<   Œ5t          |¦  «        |	|
<   ŒHd||                      |ddd¦  «        |                      |ddd	d
d¦  «        |j        |j	        |j
        ||||dœ}|                     ¦   «         D ]\  }
}|
|	vr||	|
<   Œ|	S )uR   Tá»•ng há»£p ngá»¯ cáº£nh phá»¥ Ä‘á»ƒ UI hoáº·c bÆ°á»›c render sá»­ dá»¥ng tiáº¿p.Úextra_contextNu"   BIÃŠN Báº¢N BÃ€N GIAO Máº¶T Báº°NGÚhandover_noteszhandover.notesÚnotesÚlegal_basis_summaryzlegal_basis.summaryzapproval_decision.summaryz$project.approval_decisions.0.summaryzcontract.contract_name)Údocument_titleÚhandover_scope_summaryrG   rI   Útemplate_keyÚtemplate_nameÚtemplate_versionr?   r@   rA   rB   )r%   ÚitemsÚ
isinstancer   ÚintÚfloatÚboolÚ_pick_first_strrL   rM   Úversion)r*   r
   r=   r?   r@   rA   rB   rC   Úexisting_contextrF   ÚkeyÚvalueÚdefaultss                r,   Ú_build_extra_contextz0PayloadSectionBuildersMixin._build_extra_context‰   s5  € ð  ×3Ò3°KÀÑQÔQÐØDFˆà*×0Ò0Ñ2Ô2ð 	0ð 	0‰JˆC�Ý˜%¥#¥s­Eµ4Ð!8Ñ9Ô9ð 0¸U¸]Ø%*�˜cÑ"Ð"å%(¨¡Z¤Z�˜cÑ"Ð"ð CØ&6Ø"×2Ò2ØØ Ø Øñ	ô ð $(×#7Ò#7ØØ%Ø%Ø+Ø6Ø(ñ$ô $ð %Ô1Ø%Ô3Ø (Ô 0Ø(Ø(Ø"4Ø!2ð/@
ð @
ˆð4 #Ÿ.š.Ñ*Ô*ð 	+ð 	+‰JˆC�Ø˜-Ð'Ð'Ø%*�˜cÑ"øàÐr.   ÚGenerationReadinessStatusc                ó(   — t          dg g d¬¦  «        S )uR   Táº¡o readiness táº¡m Ä‘á»ƒ khá»Ÿi táº¡o payload trÆ°á»›c khi tÃ­nh chÃ­nh thá»©c.Ú	not_readyu$   Payload Ä‘ang Ä‘Æ°á»£c khá»Ÿi táº¡o.)ÚstatusÚmissing_required_fieldsÚunresolved_review_fieldsÚsummary)r[   ©r*   s    r,   Ú_build_initial_readinessz4PayloadSectionBuildersMixin._build_initial_readiness½   s%   € å(ØØ$&Ø%'Ø:ð	
ñ 
ô 
ð 	
r.   ÚGenerationReviewWorkflowStatusc                ó(   — t          dddd¬¦  «        S )uD   Táº¡o tráº¡ng thÃ¡i review máº·c Ä‘á»‹nh cho payload má»›i assemble.Údraft_generatedN)r^   Úreviewer_nameÚreviewed_atÚreview_notes)rd   rb   s    r,   Ú_build_default_review_workflowz:PayloadSectionBuildersMixin._build_default_review_workflowÆ   s%   € å-Ø$ØØØð	
ñ 
ô 
ð 	
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   r0   r   r1   r   r2   r   r3   r   r   r4   )r
   r   r=   r>   r?   r   r@   r   rA   r   rB   r   rC   r   r   rD   )r   r[   )r   rd   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   r<   rZ   rc   rj   © r.   r,   r	   r	      s�   € € € € € Ø[Ð[ð<
ð <
ð <
ð <
ð|:
ð :
ð :
ð :
ðx2ð 2ð 2ð 2ðh
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r.   r	   )Ú
__future__r   ÚloggingÚcollections.abcr   Útypingr   Úcoercion_helpersr   Ú	getLoggerÚloggerr	   ro   r.   r,   ú<module>rw      s¨   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à 9Ð 9Ð 9Ð 9Ð 9Ð 9à	ˆÔ	Ð?Ñ	@Ô	@€ðA
ð A
ð A
ð A
ð A
Ð"=ñ A
ô A
ð A
ð A
ð A
r.   