
    ajg
                    p    S r SSKJr  SSKrSSKJr  SSKJr  SSKJ	r	  SSK
Jr  \(       a  SSKJr  S
S	 jrg)uA   Tool MCP: store_data — persiste campos de plantilla del agente.    )annotationsN)TYPE_CHECKING)AgentsMcpClass)SessionLocal)check_mcp_secret)FastMCPc                Z    U R                  5         S               SS jj5       ng )Nc           	        [        U5         UR                  5       (       a  [        R                  " U5      O0 n[        U[        5      (       d  [        S5      e0 n	U(       aN  UR                  5       (       a9   [        R                  " U5      n
[        U
[        5      (       d  [        S5      eU
n	[        5       n [        U5      R                  U [        U5      [        U5      [        U5      UU	S9nUR                  5         UR                  S5      S:X  a#  [        UR                  S	5      =(       d    S
5      eSUR                  S	5      UR                  S5      S.$ ! [        R                   a  n[        SU 35      UeSnAff = f! [        R                   a  n[        SU 35      UeSnAff = f! UR                  5         f = f)u  Guarda campos de la plantilla del agente (origin=agent, status=pending).

El chat de Agentes (panel) hace poll y genera el Word/PDF con generate.

Args:
    agent_id: UUID del agente PIE360.
    customer_id: ID del cliente dueño del agente.
    student_id: ID del estudiante.
    document_id: ID del documento/plantilla (agents_document_templates).
    fields_json: JSON objeto {nombre_campo: valor} alineado a detected_fields.
    meta_json: JSON objeto opcional con metadatos.
    secret: MCP_SECRET.
u    fields_json no es JSON válido: Nz$fields_json debe ser un objeto JSON.u   meta_json no es JSON válido: z"meta_json debe ser un objeto JSON.)agent_idcustomer_id
student_iddocument_idfieldsmetastatuserrormessagezError en store_dataTdata)okr   save)r   stripjsonloadsJSONDecodeError
ValueError
isinstancedictr   r   
store_dataintcloseget)r   r   r   r   fields_json	meta_jsonsecretr   excr   parsed_metadbresults                RC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\mcp\tools\store_data.pyr   register.<locals>.store_data   s   . 	 	P0;0A0A0C0CTZZ,F &$''CDD**R"jj3 k400 !EFFD^
	#B'22!,z?, 3 F HHJ::h7*VZZ	2K6KLLzz),JJv&
 	
= ## 	P?uEFCO	P '' R #A#!GHcQR" HHJs;   -E  9F <8F6  F4FFF3F..F36G) r+   )r   strr   r   r   r   r   r   r"   r,   r#   r,   r$   r,   returnr   )tool)mcpr   s     r)   registerr0      sn    XXZ ;
;
;
 ;
 	;

 ;
 ;
 ;
 
;
 ;
    )r/   z	'FastMCP'r-   None)__doc__
__future__r   r   typingr   $app.backend.classes.agents_mcp_classr   app.backend.db.databaser   app.backend.mcp.authr   mcp.server.fastmcpr   r0    r1   r)   <module>r;      s%    G "    ? 0 1*=
r1   