
    .jj
                    h    S r SSKJ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	)uT   Tool MCP: save_document_to_google_drive — sube el documento al árbol del colegio.    )annotations)TYPE_CHECKING)AgentsMcpClass)SessionLocal)check_mcp_secret)FastMCPc                \    U R                  5          S               SS jj5       ng )Nc           
        [        U5        [        5       n [        U5      R                  U [	        U5      [	        U5      [	        U5      [	        U=(       d    S5      S:  a  [	        U5      OSU=(       d    SR                  5       =(       d    S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      U	R                  S5      U	R                  S5      U	S.$ ! UR                  5         f = f)u  Sube un documento ya generado a Google Drive del cliente.

Árbol (crea carpetas si no existen):
  Nombre del liceo / Año / Curso / RUT numérico del alumno / archivo

Nombre del archivo siempre:
  {RUT_numerico}_{Tipo de documento}.{ext}
  Ejemplo: 274309032_Informe a la Familia.docx

Normalmente create_document ya sube a Drive al generar. Usa esta tool
para reintentar o subir de nuevo un save_id concreto.

Args:
    agent_id: UUID del agente PIE360.
    customer_id: Cliente dueño (Drive de ese customer).
    student_id: Estudiante.
    document_id: Tipo de documento del catálogo.
    save_id: ID del save generado (recomendado). Si 0, usa file_name.
    file_name: Nombre del archivo en system/students (alternativa a save_id).
    secret: MCP_SECRET.
r   N )agent_idcustomer_id
student_iddocument_idsave_id	file_namestatuserrormessagezError al subir a Google DrivedataT
drive_pathweb_view_linkfilenamereplaced)okr   r   r   r   r   googleDrive)	r   r   r   save_document_to_google_driveintstripcloseget
ValueError)
r   r   r   r   r   r   secretdbresultr   s
             eC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\mcp\tools\save_document_to_google_drive.pyr   /register.<locals>.save_document_to_google_drive   s   > 	 ^
	#B'EE!,z?,(+GLq(9A(=G4$?113;t F F HHJ::h7*VZZ	2U6UVVzz&!'Rzz),((<0!XXo6,,
 	
 HHJs   A;E	 	E)r   r   r   )r   strr   r   r   r   r   r   r   r   r   r'   r"   r'   returndict)tool)mcpr   s     r%   registerr,      sq    XXZ 7
7
7
 7
 	7

 7
 7
 7
 
7
 7
    N)r+   z	'FastMCP'r(   None)__doc__
__future__r   typingr   $app.backend.classes.agents_mcp_classr   app.backend.db.databaser   app.backend.mcp.authr   mcp.server.fastmcpr   r,    r-   r%   <module>r7      s"    Z "   ? 0 1*9
r-   