
    U+i              
       b   d Z ddlmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZ ddlmZ ddlmZ  ed	d
g      Zej+                  d       edd       ee       ee	      fdedededefd       Zej+                  d       ee       ee	      fdededefd       Zej5                  d       ee       ee	      fdededefd       Zej9                  d       ee       ee	      fdedededefd       Zej=                  d       ee       ee	      fdededefd       Zy)z@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           	         	 t        |      j                  | |      }|j                  d      dk(  r/t        t        j
                  d|j                  dd      g d      S t        t        j                  d	d
|j                  dg       d      S # t        $ r2}t        t        j
                  dt        |      g d      cY d}~S d}~ww xY w)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         V/var/www/pie360backend.cl/public_html/app/backend/routes/course_individual_supports.pyr"   r"      s    
-b1BBYhwBx::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

s$   AB !.B 	C'C CCz/{id}idc                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j
                  d|j                  dd      dd      S t        t        j                  d	d
|j                  d      d      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)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'C=CCz/storer   c                 Z   	 t        | d      r| j                         n| j                         }t        |      j	                  |      }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	      S |j                  d
      |j                  d
      nd|j                  d      i}t        t        j                  d|j                  dd      |d	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY w)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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C/ A#C/ /	D*8'D%D*%D*c           	      n   	 t        |d      r|j                  d      n4|j                         j                         D ci c]  \  }}|	|| c}}}t	        |      j                  | |      }|j                  d      dk(  r/t        t        j                  d|j                  dd	      dd
      S t        t        j                  d|j                  dd      d|j                  d      id
      S c c}}w # t        $ r2}t        t        j                  dt        |      dd
      cY d}~S d}~ww xY w)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>   _   s7   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R-b188WE::h7*"55#&6::iIa3blpq  **"vzz)E[/\gkmsmwmwx|m}f~
 	
 [R  
=="s1vtD
 	

s<   ?C9 
C3C3A!C9 3?C9 3C9 9	D4'D/)D4/D4c                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j
                  d|j                  dd      dd      S t        t        j                  d	|j                  dd
      dd      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)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	'C>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   F 5 5 * * > f f \ "&(
&	'   89 "%5`a%&=>&/	


 
 		
 :
2 ( &&=>&/


 	
 )
0   * &&=>&/

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

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