
    Eziw%              
          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KJr  \" S	S
/S9r\R-                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R1                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R1                  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\R;                  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)$ProgressStatusIndividualSupportClass)get_db)get_current_active_user)	UserLogin$StoreProgressStatusIndividualSupport%UpdateProgressStatusIndividualSupport#ProgressStatusIndividualSupportList)Optional)Sessionz$/progress_status_individual_supportsz#Progress Status Individual Supports)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)z4
Crea un nuevo estado de avance PAI (Documento 19).
r   error  messagez$Error guardando estado de avance PAINr   r   r   status_codecontent   z(Estado de avance PAI creado exitosamenteidz$Error creando estado de avance PAI: )r   storedict
isinstancegetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED	Exceptionstr)r   r   r   serviceresultes         iC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\progress_status_individual_supports.py(store_progress_status_individual_supportr+      s     !
6r:tyy{+fd##

8(<(G"AA!%zz)5[\   //!::i1[\&**T*	
 		
  
==A#a&J
 	

sA   D A?C D <C  D 
C='C82C=3D 8C==D 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 estado de avance PAI por su ID.
r   r     r   z"Estado de avance PAI no encontradoNr   r      Estado de avance PAI encontrador   'Error obteniendo estado de avance PAI: )r   r"   r!   r    r   r   HTTP_404_NOT_FOUNDHTTP_200_OKr%   r#   r&   r   r   r   r'   r(   r)   s         r*   &get_progress_status_individual_supportr4   ;   s     
6r:Rfd##

8(<(G"55!%zz)5YZ   **<
 	
  
==DSVHM
 	

A   CA1B 5C6B C
C'C	CC	CCz/student/{student_id}
student_idc           	        #     [        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)uC   
Obtiene el último estado de avance PAI por el ID del estudiante.
r   r   r-   r   z5Estado de avance PAI no encontrado para el estudianteNr   r   r.   r/   r   r0   )r   get_by_student_idr!   r    r"   r   r   r1   r2   r%   r#   r&   )r6   r   r   r'   r(   r)   s         r*   1get_progress_status_individual_support_by_studentr9   e   s     
6r:**:6fd##

8(<(G"55!%zz)5lm   **<
 	
  
==DSVHM
 	

r5   /filtersc           	        #     [        U5      nUR                  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)zZ
Lista los estados de avance PAI almacenados.
Puede filtrarse por student_id y school_id.
)r6   	school_idr   r   r   r   z$Error listando estados de avance PAINr   r   r.   z!Estados de avance PAI encontradosz(No hay estados de avance PAI registradosz&Error listando estados de avance PAI: )r   get_allr6   r=   r!   r    r"   r   r   r#   r2   r%   r&   )r;   r   r   r'   r   r)   s         r*   (list_progress_status_individual_supportsr?      s     "
6r:))''  

 dD!!dhhx&8G&C"AA!#xx	3YZ   **BF>Lv
 	
  
==CCF8L
 	

sA   C-BB. C-	$B. -C-.
C*8'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 estado de avance PAI existente.
T)exclude_unsetr   r   r-   r   z'Error actualizando estado de avance PAINr   r   r.   z-Estado de avance PAI actualizado exitosamenter   r   z)Error actualizando estado de avance PAI: )r   updater    r!   r"   r   r   r1   r2   r%   r#   r&   )r   r   r   r   r'   r(   r)   s          r*   )update_progress_status_individual_supportrC      s     !
6r:IIDI$ABfd##

8(<(G"55!%zz)5^_   **!::i1`a&**T*	
 		
  
==Fs1vhO
 	

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)u=   
Elimina lógicamente un estado de avance PAI (soft delete).
r   r   r-   r   z%Error eliminando estado de avance PAINr   r   r.   z+Estado de avance PAI eliminado exitosamenter   z'Error eliminando estado de avance PAI: )r   deleter!   r    r"   r   r   r1   r2   r%   r#   r&   r3   s         r*   )delete_progress_status_individual_supportrF      s     
6r:#fd##

8(<(G"55!%zz)5\]   **!::i1^_
 	
  
==DSVHM
 	

sA   C!A1B" 5C!6+B" !C!"
C,'CCC!CC!N)!fastapir   r   r   fastapi.responsesr   <app.backend.classes.progress_status_individual_support_classr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   r   typingr   sqlalchemy.ormr   #progress_status_individual_supportspostr+   r"   intr4   r9   r?   putrC   rE   rF        r*   <module>rU      s   . . * m * > \  \  "&/1
/	0' #
 %))(3 &&=>&/)

.)
)
 	)
 4)
V %((1 &&=>&/'
'
'
 	'
 2'
R %(()@A &&=>&/'
'
'
 	'
 B'
R %))#.3V3X%&=>&/+
0+
+
 	+
 /+
Z %((1 &&=>&/	*
*

/*
 *
 		*
 2*
X %++G4 &&=>&/'
'
'
 	'
 5'
rT   