
    aj0                    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)uJ   Tool MCP: create_document — genera Word/PDF con la 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      (       a  U(       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UR                  S5      =(       d    0 nSUR                  S	5      UR                  S5      UR                  S5      =(       d    / [        UR                  S5      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  Genera el documento con la plantilla YA subida del agente.

Rellena el Word/PDF, lo guarda en la carpeta del estudiante,
actualiza el formulario (ficha) cuando aplica, y devuelve link de descarga.

Args:
    agent_id: UUID del agente PIE360.
    customer_id: Cliente dueño.
    student_id: Estudiante destino.
    document_id: Plantilla en agents_document_templates.
    fields_json: JSON {nombre_campo: valor} alineado a detected_fields.
    meta_json: Metadatos opcionales.
    secret: MCP_SECRET.
u    fields_json no es JSON válido: Nz5fields_json debe ser un objeto con al menos un campo.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 create_documentdataTsaveresponseFiles
formFilled)okr   r   r   r   )r   stripjsonloadsJSONDecodeError
ValueError
isinstancedictr   r   create_documentintclosegetbool)r   r   r   r   fields_json	meta_jsonsecretr   excr   parseddbresultr   s                 WC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\mcp\tools\create_document.pyr    !register.<locals>.create_document   s   0 	 	P0;0A0A0C0CTZZ,F &$''vTUU**RI. fd++ !EFFD^
	#B'77!,z?, 8 F HHJ::h7*VZZ	2P6PQQzz&!'Rzz),HHV$!XXo6<"txx56
 	
? ## 	P?uEFCO	P '' R #A#!GHcQR" HHJs;   -F3  G 8H	 3GGGH2HH	H) r.   )r   strr   r!   r   r!   r   r!   r%   r/   r&   r/   r'   r/   returnr   )tool)mcpr    s     r,   registerr3      sn    XXZ ?
?
?
 ?
 	?

 ?
 ?
 ?
 
?
 ?
    )r2   z	'FastMCP'r0   None)__doc__
__future__r   r   typingr   $app.backend.classes.agents_mcp_classr   app.backend.db.databaser   app.backend.mcp.authr   mcp.server.fastmcpr   r3    r4   r,   <module>r>      s&    P "    ? 0 1*A
r4   