§
    t�’jU  ã                  ó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)ÚMapping)ÚAnyz!dscons.generation_payload.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 )ÚPayloadCoercionHelpersMixinzRData extraction, dictionary fallback resolution, and string normalization helpers.ÚreturnÚGenerationTemplateRegistryEntryc                óP   — t          t          ¦  «        }|€t          d¦  «        ‚|S )uI   Láº¥y template active cho pilot hoáº·c raise lá»—i khi chÆ°a cáº¥u hÃ¬nh.NuA   ChÆ°a tÃ¬m tháº¥y template active cho bien_ban_ban_giao_mat_bang.)Ú"get_active_template_registry_entryÚPILOT_DOCUMENT_TYPEÚ
ValueError)ÚselfÚtemplates     úEC:\Projects\DSCons\app\modules\agents\application\coercion_helpers.pyÚ_require_active_templatez4PayloadCoercionHelpersMixin._require_active_template   s2   € å5Õ6IÑJÔJˆØÐÝØSñô ð ð ˆó    Úsource_dataúMapping[str, Any]ÚpathsÚstrc                ón   — |D ]1}|                       ||¦  «        }t          |t          ¦  «        r|c S Œ2i S )uF   Láº¥y mapping Ä‘áº§u tiÃªn há»£p lá»‡ tá»« danh sÃ¡ch Ä‘Æ°á»�ng dáº«n.)Ú_get_nested_valueÚ
isinstancer   )r   r   r   ÚpathÚvalues        r   Ú_pick_first_mappingz/PayloadCoercionHelpersMixin._pick_first_mapping   sM   € ð ð 	ð 	ˆDØ×*Ò*¨;¸Ñ=Ô=ˆEÝ˜%¥Ñ)Ô)ð Ø���ðàˆ	r   ú
str | Nonec                ór   — |D ]3}|                       ||¦  «        }|                      |¦  «        }|�|c S Œ4dS )uI   Láº¥y chuá»—i Ä‘áº§u tiÃªn cÃ³ Ã½ nghÄ©a tá»« danh sÃ¡ch Ä‘Æ°á»�ng dáº«n.N)r   Ú_coerce_to_string)r   r   r   r   r   Ú
normalizeds         r   Ú_pick_first_strz+PayloadCoercionHelpersMixin._pick_first_str"   sW   € ð ð 	"ð 	"ˆDØ×*Ò*¨;¸Ñ=Ô=ˆEØ×/Ò/°Ñ6Ô6ˆJØÐ%Ø!Ð!Ð!Ð!ð &àˆtr   Úkeysc                óp   — |D ]2}|                      |¦  «        }|                      |¦  «        }|�|c S Œ3dS )u>   Láº¥y chuá»—i Ä‘áº§u tiÃªn cÃ³ Ã½ nghÄ©a tá»« mapping pháº³ng.N)Úgetr   )r   r   r"   Úkeyr   r    s         r   Ú_pick_first_str_from_mappingz8PayloadCoercionHelpersMixin._pick_first_str_from_mapping/   sS   € ð ð 	"ð 	"ˆCØ—O’O CÑ(Ô(ˆEØ×/Ò/°Ñ6Ô6ˆJØÐ%Ø!Ð!Ð!Ð!ð &àˆtr   r   r   c                óP  — |}|                      d¦  «        D ]�}t          |t          ¦  «        r|                     |¦  «        }Œ-t          |t          ¦  «        rI|                     ¦   «         r5t          |¦  «        }d|cxk    rt          |¦  «        k     rn n	||         }Œ‹ dS |S )uS   Ä�á»�c giÃ¡ trá»‹ theo Ä‘Æ°á»�ng dáº«n a.b.c cÃ³ há»— trá»£ index list dáº¡ng sá»‘.ú.r   N)Úsplitr   r   r$   ÚlistÚisdigitÚintÚlen)r   r   r   ÚcurrentÚpartÚindexs         r   r   z-PayloadCoercionHelpersMixin._get_nested_value<   s²   € à"ˆØ—J’J˜s‘O”Oð 		ð 		ˆDÝ˜'¥7Ñ+Ô+ð Ø!Ÿ+š+ dÑ+Ô+�ØÝ˜'¥4Ñ(Ô(ð ¨T¯\ª\©^¬^ð Ý˜D™	œ	�Ø˜Ð,Ð,Ò,Ð,¥ G¡¤Ò,Ð,Ð,Ð,Ð,Ø% eœn�GØØ�4�4Øˆr   r   c                óÊ   — |€dS t          |t          ¦  «        r|                     ¦   «         }|pdS t          |t          t          t
          f¦  «        rt          |¦  «        S dS )uA   Chuáº©n hÃ³a giÃ¡ trá»‹ Ä‘Æ¡n thÃ nh chuá»—i náº¿u cÃ³ Ã½ nghÄ©a.N)r   r   Ústripr,   ÚfloatÚbool)r   r   r    s      r   r   z-PayloadCoercionHelpersMixin._coerce_to_stringK   s`   € àˆ=Ø�4Ý�e�SÑ!Ô!ð 	&ØŸš™œˆJØÐ% Ð%Ý�e�c¥5­$Ð/Ñ0Ô0ð 	Ý�u‘:”:ÐØˆtr   r4   c                óz   — |€dS t          |t          ¦  «        r!t          |                     ¦   «         ¦  «        S dS )uM   Kiá»ƒm tra giÃ¡ trá»‹ cÃ³ Ä‘á»§ Ã½ nghÄ©a Ä‘á»ƒ dÃ¹ng cho payload hay khÃ´ng.NFT)r   r   r4   r2   )r   r   s     r   Ú_has_meaningful_valuez1PayloadCoercionHelpersMixin._has_meaningful_valueV   s9   € àˆ=Ø�5Ý�e�SÑ!Ô!ð 	'Ý˜Ÿš™œÑ&Ô&Ð&Øˆtr   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   r   r   )r   r   r   r4   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r&   r   r   r6   © r   r   r   r   
   s¦   € € € € € Ø\Ð\ðð ð ð ð
ð 
ð 
ð 
ðð ð ð ðð ð ð ðð ð ð ð	ð 	ð 	ð 	ðð ð ð ð ð r   r   )
Ú
__future__r   ÚloggingÚcollections.abcr   Útypingr   Ú	getLoggerÚloggerr   r;   r   r   ú<module>rB      s“   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð>Ñ	?Ô	?€ðRð Rð Rð Rð Rñ Rô Rð Rð Rð Rr   