
    4j"              
       B   S r SSKJr  SSKJrJrJrJr  SSKJ	r	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\R5                  S5      \" SSS9\" \5      \" \5      4S\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\4S jj5       r \R5                  S5      \" \5      \" \5      4S\S\S\4S jj5       r!\RE                  S5      \" \5      \" \5      4S\S\S\4S jj5       r#\RI                  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")#u9   Document 27 – Psychopedagogical Evaluation Information.    )Path)	APIRouterDependsQuerystatus)FileResponse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         bC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\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?z5/by_student/{student_id}/cognitive_quantitative_imagec                     [        U5      nUR                  U 5      nU(       d  [        [        R                  SSSS.S9$ [        U5      R                  R                  5       nSSSSS	S
S.R                  US5      n[        XF[        U5      R                  S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)zHDescarga la imagen IV cuantitativa guardada para el estudiante (doc 27).  zNo hay imagen guardada.Nr   r    z	image/pngz
image/jpegz	image/gifz
image/webpz	image/bmp)z.pngz.jpgz.jpegz.gifz.webpz.bmpzapplication/octet-stream)
media_typefilenamer   )r   %get_cognitive_quantitative_image_pathr	   r   HTTP_404_NOT_FOUNDr   suffixlowerr&   r   namer)   r'   r*   )r   r   r   svcpathr4   mediar,   s           r-    get_cognitive_quantitative_imager:   4   s    
.r288D"55#&3LVZ[  d""((* !!
 #f0
1 	 DT$Z__MM 
=="s1vtD
 	

s$   >B AB 
C$$CCC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[        UR                  S5      5      0S.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)zHElimina imagen IV cuantitativa (BD, carpeta folders y archivo en disco).r   r     r   r   Nr   r    r#   r$   clearedr   )r   "clear_cognitive_quantitative_imager&   r	   r   HTTP_400_BAD_REQUESTr(   boolr)   r'   r*   )r   r   r   r+   r,   s        r-   #delete_cognitive_quantitative_imagerA   T   s    
1"5XXYcd::h7*"77#&6::i3Q[_`  **!::i6"DI)>$?@
 	
  
=="s1vtD
 	

s%   AB# AB# #
C-$C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)u0   Obtiene una evaluación por id (incluye scales).r   r   r/   r   No encontradoNr   r    r#   r$   r   r   )
r   	get_by_idr&   r	   r   r3   r(   r)   r'   r*   rB   r   r   r+   r,   s        r-   rE   rE   q   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   r<   r   zError al guardarNr   r    r   rB   createdT   r#   u   Evaluación creadau   Evaluación actualizadar   )hasattrrH   dictr   storer&   r	   r   r?   HTTP_201_CREATEDr(   r)   r'   r*   )r   r   r   payloadr+   data_out
is_createdr,   s           r-   rM   rM      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).rH   T)exclude_unsetNr   r   r/   r   rD   r   r    r#   r$   r   r   )rK   rH   rL   itemsr   updater&   r	   r   r3   r(   r)   r'   r*   )	rB   r   r   r   kvrO   r+   r,   s	            r-   rU   rU      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   rD   )r   r   r    r#   u   Evaluación eliminadar   N)
r   deleter&   r	   r   r3   r(   r)   r'   r*   rF   s        r-   rY   rY      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__pathlibr   fastapir   r   r   r   fastapi.responsesr   r	   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&   intr@   r%   r:   rY   rA   rE   postrM   putrU        r-   <module>rj      su   ?  5 5 8 * > 
 d "  )+
6	7!  ""#=> d0]^%&=>&/	


 
 		
 ?
6 ""#Z[ &&=>&/


 	
 \
> %%&]^ &&=>&/


 	
 _
8 ""7+ &&=>&/


 	
 ,
0 ##H- &&=>&/

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

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