
    U+i               
       0   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mZmZ ddlmZ ddlmZ  ed	d
g      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j/                  d       ed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j?                  d       ee       ee	      fdedededefd        Z ejC                  d       ee       ee	      fdededefd!       Z"y")#uW   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           	         	 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)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        R/var/www/pie360backend.cl/public_html/app/backend/routes/course_record_supports.pyr"   r"      s    
)"->>>S::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

s$   AB  .B 	C
'C?C
C
z/recordr   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)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*   r1   r1   0   s   
'.t\'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C/ A#C/ /	D*8'D%D*%D*z/interventions.zID del curso)descriptionu   ID del área de apoyosupport_area_idc           	         	 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)u8   Lista intervenciones (Ingresar apoyo) por curso y área.)r   r7   r   r   r   r   r   r   r   r    r!   r   N)	r   get_interventionsr#   r   r   r$   r%   r&   r'   )r   r7   r   r   r(   r)   s         r*   r9   r9   K   s    
)"-??)et?u::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

s$   AB !.B 	C'C CCz/interventions/{id}r.   c                    	 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)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'C=CCz/interventions/storec                 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)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   )r/   r,   r0   r   store_interventionr#   r   r   HTTP_400_BAD_REQUESTHTTP_201_CREATEDr&   r$   r'   r2   s          r*   rB   rB   ~   s   
'.t\'B$//#		)"-@@I::h7*"77#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMe//"vzz)EW/Xbjk
 	
  
=="s1vtD
 	

r5   c                 j   	 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      |j                  d      d
      S c c}}w # t        $ r2}t        t        j                  dt        |      dd
      cY d}~S d}~ww xY w)u#   Actualiza una intervención por id.r,   T)exclude_unsetNr   r   r;   r   r<   r   r   r    r!   r   r   )r/   r,   r0   itemsr   update_interventionr#   r   r   r>   r%   r&   r$   r'   )	r.   r   r   r   kvr3   r(   r)   s	            r*   rH   rH      s/   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R)"-AA"gN::h7*"55#&6::i3Ycgh  **"vzz)T/JTZT^T^_eTfg
 	
 [R  
=="s1vtD
 	

s<   ?C7 
C1C1A!C7 3=C7 1C7 7	D2 'D-'D2-D2c                    	 t        |      j                  |       }|j                  d      dk(  r.t        t        j
                  d|j                  dd      d      S t        t        j                  d|j                  dd	      d      S # t        $ r1}t        t        j                  d
t        |      d      cY d}~S d}~ww xY w)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*   rL   rL      s    
)"-AA"E::h7*"55#&6::i3YZ  **"vzz)E^/_`
 	
  
=="s1v6
 	

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   r   r   /app.backend.classes.course_record_support_classr   sqlalchemy.ormr   course_record_supportsr#   intr"   postr1   r9   r=   rB   putrH   deleterL        r*   <module>r\      sx   ] 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[   