
    U+i3                     |   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 d dl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j/                  d       ee
      fdedefd       Zej/                  d      d ee
      fdee   defd       Zy)    )	APIRouterstatusDependsBody)JSONResponse)HealthEvaluationClass)get_db)get_current_active_user)	UserLoginStoreHealthEvaluation)Optional)Sessionz/health_evaluationszHealth Evaluations)prefixtagsz/storeevaluation_datasession_userdbc           	        K   	 t        |      }|j                  | j                               }t        |t              rC|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 # t        $ r5}t        t        j                  ddt        |       dd      cY d}~S d}~ww xY ww)u.   
    Crea una nueva evaluación de salud.
    r   error  messageu$   Error guardando evaluación de saludNr   r   datastatus_codecontent   u(   Evaluación de salud creada exitosamenteidu$   Error creando evaluación de salud: )r   storedict
isinstancegetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED	Exceptionstr)r   r   r   health_evaluation_serviceresultes         N/var/www/pie360backend.cl/public_html/app/backend/routes/health_evaluations.pystore_health_evaluationr+      s     !
$9"$=!*001E1E1GHfd#

8(<(G"AA!%zz)5[\   //!::i1[\&**T*	
 		
  
==A#a&J
 	

sA   DA<C  D?C  D	C?
*C:4C?5D:C??Dz/{student_id}
student_idc           	        K   	 t        |      }|j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd      S t        t        j                  d	d
|d      S # t        $ r5}t        t        j                  ddt        |       dd      cY d}~S d}~ww xY ww)u]   
    Obtiene la evaluación de salud más reciente para un estudiante por su student_id.
    r   r   i  r   u7   Evaluación de salud no encontrada para este estudianteNr   r      u   Evaluación de salud encontradar   u'   Error obteniendo evaluación de salud: )r   get_by_student_idr!   r    r"   r   r   HTTP_404_NOT_FOUNDHTTP_200_OKr%   r#   r&   )r,   r   r'   r(   r)   s        r*   get_health_evaluationr2   ;   s     
$9"$=!*<<ZHfd#

8(<(G"55!%zz)5no   **<
 	
  
==DSVHM
 	

sA   CA.B 2C3B C	C*CCCCCz/listNc           	        K   	 t        |      }|j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd      S t        t        j                  d	|rd
nd|d      S # t        $ r5}t        t        j                  ddt        |       dd      cY d}~S d}~ww xY ww)zZ
    Lista las evaluaciones de salud almacenadas.
    Puede filtrarse por student_id.
    r   r   r   r   z$Error listando evaluaciones de saludNr   r   r.   z!Evaluaciones de salud encontradasz(No hay evaluaciones de salud registradasz&Error listando evaluaciones de salud: )r   get_allr!   r    r"   r   r   r#   r1   r%   r&   )r,   r   r'   r   r)   s        r*   list_health_evaluationsr5   d   s     
$9"$=!(00<dD!dhhx&8G&C"AA!#xx	3YZ   **BF>Lv
 	
  
==CCF8L
 	

sA   CA.B 2C3"B C	C*C	C
CCC)fastapir   r   r   r   fastapi.responsesr   +app.backend.classes.health_evaluation_classr   app.backend.db.databaser	   app.backend.auth.auth_userr
   app.backend.schemasr   r   typingr   sqlalchemy.ormr   health_evaluationspostr+   r"   intr2   r5        r*   <module>rC      s    4 4 * M * > @  " 
	 
 " &&=>&/)
*)
)
 	)
 #)
V ( &/&
&
&
 )&
P   $&/'
'
'
 !'
rB   