
    Fi              
       j   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  SSKJr  SSKJr  \" S	S
/S9r\R+                  S5      \" 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\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)zHRouter: Plan de Apoyo Individual por curso (course_individual_supports).    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLoginStoreCourseIndividualSupportUpdateCourseIndividualSupport)CourseIndividualSupportClass)Sessionz/course_individual_supportszCourse Individual Supports)prefixtagsz/by_course/{course_id}Fz)True = incluir registros con deleted_date)description	course_idinclude_deletedsession_userdbc           	          [        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)uT   Lista apoyos individuales del curso (área, horario, fechas, student_ids por apoyo).)r   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   r   resultes         `C:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\course_individual_supports.pyr"   r"      s    
-b1BBYBx::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

s$   AB +B 
C $B;5C ;C z/{id}idc                     [        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)z9Obtiene un apoyo individual por id (incluye student_ids).r   r     r   Registro no encontradoNr   r   r    r!   r   r   )
r   	get_by_idr#   r   r   HTTP_404_NOT_FOUNDr%   r&   r$   r'   r+   r   r   r(   r)   s        r*   r/   r/   +   s    
-b1;;B?::h7*"55#&6::iIa3blpq  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB *B 
C$B<6C<Cz/storer   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)ziCrea un apoyo individual (course_id, support_area_id, horario, fecha_inicio, fecha_termino, student_ids).
model_dumpr   r   r   r   zError al guardarNr   r   r   r+      zRegistro creado)hasattrr3   dictr   storer#   r   r   r$   HTTP_201_CREATEDr&   r'   )r   r   r   payloadr(   data_outr)   s          r*   r7   r7   D   s   
'.t\'B'B$//#		-b177@::h7*"AA#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMe//"vzz)EV/Waij
 	
  
=="s1vtD
 	

s%   BC0 A!C0 0
D):$D$D)$D)c           	      h    [        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      SUR                  S5      0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)ztActualiza un apoyo individual por id (opcional: support_area_id, horario, fecha_inicio, fecha_termino, student_ids).r3   T)exclude_unsetNr   r   r-   r   r.   r   r   r    zRegistro actualizador+   r   )r5   r3   r6   itemsr   updater#   r   r   r0   r%   r&   r$   r'   )	r+   r   r   r   kvr9   r(   r)   s	            r*   r>   r>   _   s4   
9@|9T9T$///5lplululwl}l}l  [Rldhde  DE[_[\[_l  [R-b188E::h7*"55#&6::iIa3blpq  **"vzz)E[/\gkmsmwmwx|m}f~
 	
 [R  
=="s1vtD
 	

s=   AC8 	C2C2AC8 5<C8 2C8 8
D1$D,&D1,D1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	UR                  SS
5      SS.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)u4   Borrado lógico del apoyo individual (deleted_date).r   r   r-   r   r.   Nr   r   r    zRegistro eliminador   )
r   deleter#   r   r   r0   r%   r&   r$   r'   r1   s        r*   rB   rB   z   s    
-b188<::h7*"55#&6::iIa3blpq  **"vzz)EY/Zdhi
 	
  
=="s1vtD
 	

s$   AB	 +B	 	
C$B=7C=CN)__doc__fastapir   r   r   r   fastapi.responsesr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   3app.backend.classes.course_individual_support_classr   sqlalchemy.ormr   course_individual_supportsr#   intboolr"   r/   postr7   putr>   rB        r*   <module>rR      s   N 5 5 * * > f f \ "&(
&	'   89 "%5`a%&=>&/	


 
 		
 :
2 ( &&=>&/


 	
 )
0   * &&=>&/

&

 	
 +
4 ( &&=>&/	


'
 
 		
 )
4 ""7+ &&=>&/


 	
 ,
rQ   