
    Jiz              
       v   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	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\R9                  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\RA                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r g)uA   Router: Document 27 – Psychopedagogical Evaluation Information.    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLogin$StorePsychopedagogicalEvaluationInfo%UpdatePsychopedagogicalEvaluationInfo) PsychopedagogicalEvaluationClass)Session)Optionalz/psychopedagogical_evaluationsz*Psychopedagogical Evaluation (Document 27))prefixtagsz/by_student/{student_id}Tu+   True = solo la más reciente; False = todas)description
student_idlatest_only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.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)u4   Obtiene evaluación(es) del estudiante (con scales).)r   r   r   error  messageErrorNr   r   datastatus_codecontent   OKr   )	r   get_by_student_idgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstr)r   r   r   r   resultes         cC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\psychopedagogical_evaluations.pyr#   r#      s    
1"5GG! H 
 ::h7*"AA#&6::i3Q[_`  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB *B 
B?$B:4B?:B?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)u0   Obtiene una evaluación por id (incluye scales).r   r     r   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+   r0   r0   2   s    
1"5??C::h7*"55#&6::i3Ycgh  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB *B 
C$B<6C<Cz/storer   c                     [        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UR                  SS5      n[        U(       a  [        R                  O[        R                  U(       a  SOSUR                  SU(       a  SO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)uq   Crea o actualiza evaluación psicopedagógica: si ya existe una para el estudiante, se actualiza; si no, se crea.
model_dumpr   r   i  r   zError al guardarNr   r   r   r,   createdT   r!   u   Evaluación creadau   Evaluación actualizadar   )hasattrr4   dictr   storer$   r   r   HTTP_400_BAD_REQUESTHTTP_201_CREATEDr&   r'   r%   r(   )r   r   r   payloadr)   data_out
is_createdr*   s           r+   r9   r9   K   s5   
'.t\'B'B$//#		1"5;;GD::h7*"77#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMeZZ	40
3=//6CUCU!+#!::i1EYrs 
 	
  
=="s1vtD
 	

s%   BD+ BD+ +
E$5$EE$E$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)uJ   Actualiza evaluación por id (opcional: scales reemplazan los existentes).r4   T)exclude_unsetNr   r   r.   r   r/   r   r   r!   r"   r   r   )r7   r4   r8   itemsr   updater$   r   r   r1   r&   r'   r%   r(   )	r,   r   r   r   kvr<   r)   r*   s	            r+   rB   rB   k   s   
9@|9T9T$///5!YY[..0[
0TQADAD0[
 2"5<<RI::h7*"55#&6::i3Ycgh  **"vzz)T/JTZT^T^_eTfg
 	
[
  
=="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 evaluación por id (y sus scales).r   r   r.   r   r/   )r   r   r   r!   u   Evaluación eliminadar   N)
r   deleter$   r   r   r1   r&   r'   r%   r(   r2   s        r+   rF   rF      s    
1"5<<R@::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   6app.backend.classes.psychopedagogical_evaluation_classr   sqlalchemy.ormr   typingr   psychopedagogical_evaluationsr$   intboolr#   r0   postr9   putrB   rF        r+   <module>rW      s   G 5 5 * * > 
 d "  )+
6	7!  ""#=> d0]^%&=>&/	


 
 		
 ?
6 ""7+ &&=>&/


 	
 ,
0 ##H- &&=>&/

.

 	
 .
> ""7+ &&=>&/	


/
 
 		
 ,
8 %%g. &&=>&/


 	
 /
rV   