
    zi)              
          S SK JrJrJ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JrJrJr  S SKJr  \" SS	/S
9r\R)                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R-                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R-                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R-                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R)                  S5      \" 5       \" \5      \" \	5      4S\S\S\4S jj5       r\R9                  S5      \" \5      \" \	5      4S\S\S\S\4S jj5       r\R=                  S5      \" \5      \" \	5      4S\S\S\4S jj5       rg)    )	APIRouterstatusDepends)JSONResponse),SchoolIntegrationProgramExitCertificateClass)get_db)get_current_active_user)	UserLogin,StoreSchoolIntegrationProgramExitCertificate-UpdateSchoolIntegrationProgramExitCertificate+SchoolIntegrationProgramExitCertificateList)Sessionz-/school_integration_program_exit_certificatesz,School Integration Program Exit Certificates)prefixtagsz/storedatasession_userdbc           	        #     [        U5      nUR                  U R                  5       5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	UR	                  SS
5      SUR	                  S5      0S.S9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S9s SnA$ SnAff = f7f)uI   Crea un nuevo certificado de egreso del programa de integración escolar.r   error  messagezError guardando certificadoNr   r   r   status_codecontent   zCertificado creado exitosamenteidzError creando certificado: )r   storedict
isinstancegetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED	Exceptionstr)r   r   r   serviceresultes         rC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\school_integration_program_exit_certificates.py1store_school_integration_program_exit_certificater*      s     
>rBtyy{+fd##

8(<(G"AA!%zz)5RS   //!::i1RSvzz$/0
 	
  
==8QA
 	

sA   D A?C D <C  D 
C='C82C=3D 8C==D z/list/{student_id}
student_idc           	        #     [        U5      nUR                  U S9n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S	9$ [        [        R                  S
U(       a  SOSUS.S	9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S	9s SnA$ SnAff = f7f)z.Lista todos los certificados de un estudiante.r+   r   r   r   r   Error listando certificadosNr   r      Certificados encontradosz(No hay certificados para este estudianteError listando certificados: )r   get_allr    r   r!   r   r   r"   HTTP_200_OKr$   r%   )r+   r   r   r&   r   r(   s         r)   list_certificates_by_studentr4   :   s     
>rB*5dD!!dhhx&8G&C"AA!#xx	3PQ   **9=5Cm
 	
  
==:3q6(C
 	

sA   CA/B 3C4$B C
C#'C
CCCCz/student/{student_id}c           	        #     [        U5      nUR                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	S
US.S9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S9s SnA$ SnAff = f7f)u8   Obtiene el último certificado por el ID del estudiante.r   r     r   z,Certificado no encontrado para el estudianteNr   r   r/   Certificado encontrador   Error obteniendo certificado: )r   get_by_student_idr    r   r!   r   r   HTTP_404_NOT_FOUNDr3   r$   r"   r%   )r+   r   r   r&   r'   r(   s         r)   get_certificate_by_studentr;   `   s     
>rB**:6fd##

8(<(G"55!%zz)5cd   **3
 	
  
==;CF8D
 	

A   CA1B 5C6B C
C'C	CC	CCz/{id}r   c           	        #     [        U5      nUR                  U 5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      SS.S9$ [	        [
        R                  S	S
US.S9$ ! [         a2  n[	        [
        R                  SS[        U5       3SS.S9s SnA$ SnAff = f7f)z!Obtiene un certificado por su ID.r   r   r6   r   zCertificado no encontradoNr   r   r/   r7   r   r8   )r   r!   r    r   r   r   r:   r3   r$   r"   r%   r   r   r   r&   r'   r(   s         r)   get_certificater?      s     
>rBRfd##

8(<(G"55!%zz)5PQ   **3
 	
  
==;CF8D
 	

r<   /filtersc           	        #     [        U5      nUR                  U R                  S9n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S	9$ [        [        R                  S
U(       a  SOSUS.S	9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S	9s SnA$ SnAff = f7f)z3Lista certificados. Filtro opcional por student_id.r-   r   r   r   r   r.   Nr   r   r/   r0   zNo hay certificados registradosr1   )r   r2   r+   r    r   r!   r   r   r"   r3   r$   r%   )rA   r   r   r&   r   r(   s         r)   list_certificatesrC      s     
>rB'*<*<=dD!!dhhx&8G&C"AA!#xx	3PQ   **9=5Cd
 	
  
==:3q6(C
 	

sA   C"A9B# =C">$B# "C"#
C-'CCC"CC"c           	        #     [        U5      nUR                  XR                  SS95      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS	.S
9$ [        [        R                  SUR	                  SS5      SUR	                  S5      0S	.S
9$ ! [         a2  n[        [        R                  SS[        U5       3SS	.S
9s SnA$ SnAff = f7f)z#Actualiza un certificado existente.T)exclude_unsetr   r   r6   r   zError actualizando certificadoNr   r   r/   z$Certificado actualizado exitosamenter   r   z Error actualizando certificado: )r   updater   r    r!   r   r   r:   r3   r$   r"   r%   )r   r   r   r   r&   r'   r(   s          r)   update_certificaterG      s     
>rBIIDI$ABfd##

8(<(G"55!%zz)5UV   **!::i1WXvzz$/0
 	
  
===c!fXF
 	

sA   C?A>C  C?<C  ?C? 
C<
'C71C<2C?7C<<C?c           	        #     [        U5      nUR                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	UR	                  SS
5      SS.S9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S9s SnA$ SnAff = f7f)zElimina un certificado.r   r   r6   r   zError eliminando certificadoNr   r   r/   z"Certificado eliminado exitosamenter   zError eliminando certificado: )r   deleter    r   r!   r   r   r:   r3   r$   r"   r%   r>   s         r)   delete_certificaterJ      s     
>rB#fd##

8(<(G"55!%zz)5ST   **!::i1UV
 	
  
==;CF8D
 	

sA   C!A1B" 5C!6+B" !C!"
C,'CCC!CC!N) fastapir   r   r   fastapi.responsesr   Eapp.backend.classes.school_integration_program_exit_certificate_classr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   r   sqlalchemy.ormr   ,school_integration_program_exit_certificatespostr*   r!   intr4   r;   r?   rC   putrG   rI   rJ        r)   <module>rX      s_   . . * ~ * >  #/8:
8	90 , .228< &&=>&/"

6"
"
 	"
 ="
J .112FG &&=>&/"
"
"
 	"
 H"
J .112IJ &&=>&/"
"
"
 	"
 K"
J .11': &&=>&/"
"
"
 	"
 ;"
J .2237;f;h%&=>&/"
8"
"
 	"
 8"
J .11': &&=>&/	#
#

7#
 #
 		#
 ;#
L .44W= &&=>&/"
"
"
 	"
 >"
rW   