
    ?Di!              
       :   S r SSKJr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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\R5                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R/                  S5      \" SSS9\" SSS9\" \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\R5                  S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 \RC                  S5      \" \5      \" \	5      4S\S\S\4S! jj5       r"g")#u_   Router: Card 2 - Registro de apoyos por curso y área (objetivos, estudiantes, intervenciones).    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLoginStoreCourseRecordSupportUpdateCourseRecordSupport$StoreCourseRecordSupportIntervention%UpdateCourseRecordSupportIntervention)CourseRecordSupportClass)Sessionz/course_record_supportszCourse Record Supports (Card 2))prefixtagsz/by_course/{course_id}	course_idsession_userdbc           	          [        U5      R                  U S9nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      / S.S9$ [        [        R                  S	S
UR                  S/ 5      S.S9$ ! [         a/  n[        [        R
                  S[        U5      / S.S9s SnA$ SnAff = f)uW   Lista por curso: todas las áreas con registro (objetivos, student_ids, interventions).)r   r   error  messageErrorr   r   datastatus_codecontent   OKr   N)	r   get_by_course_idgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstr)r   r   r   resultes        \C:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\course_record_supports.pyr"   r"      s    
)"->>>S::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

$   AB +B 
C $B;5C ;C z/recordr   c                 X    [        U S5      (       a  U R                  5       OU R                  5       n[        U5      R	                  U5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S	9$ UR                  S
5      b  UR                  S
5      OSUR                  S5      0n[        [        R                  SUR                  SS5      US.S	9$ ! [         a/  n[        [        R                  S[        U5      SS.S	9s SnA$ SnAff = f)ud   Guarda registro por curso y área: objetivos de aprendizaje + estudiantes que recibirán los apoyos.
model_dumpr   r   r   r   Error al guardarNr   r   r   idr    zDatos guardados)hasattrr-   dictr   save_recordr#   r   r   r$   r%   r&   r'   r   r   r   payloadr(   data_outr)   s          r*   r2   r2   0   s   
'.t\'B'B$//#		)"-99'B::h7*"AA#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMe**"vzz)EV/Waij
 	
  
=="s1vtD
 	

%   BC0 A!C0 0
D):$D$D)$D)z/interventions.zID del curso)descriptionu   ID del área de apoyosupport_area_idc           	          [        U5      R                  XS9nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      / S.S9$ [        [        R                  S	S
UR                  S/ 5      S.S9$ ! [         a/  n[        [        R
                  S[        U5      / S.S9s SnA$ SnAff = f)u8   Lista intervenciones (Ingresar apoyo) por curso y área.)r   r8   r   r   r   r   r   r   r   r    r!   r   N)	r   get_interventionsr#   r   r   r$   r%   r&   r'   )r   r8   r   r   r(   r)   s         r*   r:   r:   K   s    
)"-??)?u::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

r+   z/interventions/{id}r/   c                     [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      SS.S9$ [        [        R                  S	S
UR                  S5      S.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)u!   Obtiene una intervención por id.r   r     r   No encontradoNr   r   r    r!   r   r   )
r   get_intervention_by_idr#   r   r   HTTP_404_NOT_FOUNDr%   r&   r$   r'   r/   r   r   r(   r)   s        r*   r>   r>   e   s    
)"-DDRH::h7*"55#&6::i3Ycgh  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB *B 
C$B<6C<Cz/interventions/storec                 X    [        U S5      (       a  U R                  5       OU R                  5       n[        U5      R	                  U5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S	9$ UR                  S
5      b  UR                  S
5      OSUR                  S5      0n[        [        R                  SUR                  SS5      US.S	9$ ! [         a/  n[        [        R                  S[        U5      SS.S	9s SnA$ SnAff = f)ur   Crea una intervención (Ingresar apoyo): fecha, horas pedagógicas, lugar, profesional, actividades desarrolladas.r-   r   r   i  r   r.   Nr   r   r   r/      zApoyo registrador   )r0   r-   r1   r   store_interventionr#   r   r   HTTP_400_BAD_REQUESTHTTP_201_CREATEDr&   r$   r'   r3   s          r*   rC   rC   ~   s   
'.t\'B'B$//#		)"-@@I::h7*"77#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMe//"vzz)EW/Xbjk
 	
  
=="s1vtD
 	

r6   c                 d    [        US5      (       a  UR                  SS9O7UR                  5       R                  5        VVs0 s H  u  pEUc  M
  XE_M     snnn[	        U5      R                  X5      n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      UR                  S5      S
.S9$ s  snnf ! [         a/  n[        [        R                  S[        U5      SS
.S9s SnA$ SnAff = f)u#   Actualiza una intervención por id.r-   T)exclude_unsetNr   r   r<   r   r=   r   r   r    r!   r   r   )r0   r-   r1   itemsr   update_interventionr#   r   r   r?   r%   r&   r$   r'   )	r/   r   r   r   kvr4   r(   r)   s	            r*   rI   rI      s,   
9@|9T9T$///5lplululwl}l}l  [Rldhde  DE[_[\[_l  [R)"-AA"N::h7*"55#&6::i3Ycgh  **"vzz)T/JTZT^T^_eTfg
 	
 [R  
=="s1vtD
 	

s=   AC6 	C0C0AC6 5:C6 0C6 6
D/ $D*$D/*D/c                     [        U5      R                  U 5      nUR                  S5      S:X  a+  [        [        R
                  SUR                  SS5      S.S9$ [        [        R                  SUR                  SS	5      S.S9$ ! [         a.  n[        [        R                  S
[        U5      S.S9s SnA$ SnAff = f)u!   Elimina una intervención por id.r   r   r<   r   r=   )r   r   r   r    u   Intervención eliminadar   N)
r   delete_interventionr#   r   r   r?   r%   r&   r$   r'   r@   s        r*   rM   rM      s    
)"-AA"E::h7*"55#&6::i3YZ  **"vzz)E^/_`
 	
  
=="s1v6
 	

s$   AB *B 
B?#B:4B?:B?N)#__doc__fastapir   r   r   r   fastapi.responsesr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   r   r   /app.backend.classes.course_record_support_classr   sqlalchemy.ormr   course_record_supportsr#   intr"   postr2   r:   r>   rC   putrI   deleterM        r*   <module>r]      sx   e 5 5 * * >  U ""$
+	,  45 &&=>&/


 	
 6
0 Y' &&=>&/

"

 	
 (
4 ,-3N; 2IJ%&=>&/	


 
 		
 .
2 12 &&=>&/


 	
 3
0 34 &&=>&/

.

 	
 5
4 12 &&=>&/	


/
 
 		
 3
4 45 &&=>&/


 	
 6
r\   