
    $i              	      J   S r SSKJr  SSKJrJrJ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  SS	KJr  SS
KJr  \" SS/S9rSS jrSS jr\R7                  SSSS9\
" SSSS9\
" SSSS9\
" SSSS9\
" SSS9\	" \5      \	" \5      4           S S jj5       rg)!u;   Auditoría de uso del chat evaluador y consultas asociadas.    )annotations)AnyListOptional)	APIRouterDependsQuerystatus)JSONResponse)Session)get_current_active_user)get_db)EvaluatorChatAuditModel)	UserLoginz
/auditoriau
   Auditoría)prefixtagsc                v    [        U SS 5      =(       d    [        U SS 5      =(       d    SnUb  [        U5      $ S$ )Niduser_id   )getattrint)session_useruid_raws     Nc:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\auditoria.py_user_id_intr      s9    lD$/^7<TX3Y^]^G".3w<5A5    c                    U R                   U R                  U R                  U R                  U R                  U R
                  U R                  (       a  U R                  R                  5       S.$ S S.$ )N)r   r   document_type_id
student_id	field_keyquestion
added_date)r   r   r   r    r!   r"   r#   	isoformat)rs    r   _audit_row_to_dictr&      s_    dd99..ll[[JJ23,,all,,.  EI r   z/evaluador-chatu(   Listado de auditoría del chat evaluadoru   Devuelve los usos del chat evaluador del usuario autenticado. Filtros opcionales: `student_id`, `document_type_id`. Paginación: `limit` (máx. 200), `offset`.)summarydescriptionNr   zFiltrar por estudiante)ger(   zFiltrar por tipo de documento2      )r)   le)r)   c                    [        U5      nUR                  [        5      R                  [        R                  U:H  5      nU b"  UR                  [        R
                  U :H  5      nUb"  UR                  [        R                  U:H  5      nUR                  5       nUR                  [        R                  R                  5       5      R                  U5      R                  U5      R                  5       n	[        [        R                   SSUUUU	 V
s/ s H  n
[#        U
5      PM     sn
S.S.S9$ s  sn
f ! [$         a/  n[        [        R&                  S[)        U5      S S.S9s S nA$ S nAff = f)Nr+   OK)totallimitoffsetitems)r
   messagedata)status_codecontenti  )r   queryr   filterr   r    r   countorder_byr   descr1   r0   allr   r
   HTTP_200_OKr&   	ExceptionHTTP_500_INTERNAL_SERVER_ERRORstr)r    r   r0   r1   r   dbuidqr/   rowsr%   es               r   list_evaluator_chat_auditsrF   $   sI    
<(HH,-445L5T5TX[5[\!0;;zIJA'0AAEUUVA	JJ.116689@@HNNuUYY[ 	 **""$=ABT03TB		
 	
 C  
=="s1vtD
 	

s0   DD5 D0'D5 0D5 5
E.?$E)#E.)E.)r   r   returnr   )r%   r   rG   zdict[str, Any])r    Optional[int]r   rH   r0   r   r1   r   r   r   rA   r   )__doc__
__future__r   typingr   r   r   fastapir   r   r	   r
   fastapi.responsesr   sqlalchemy.ormr   app.backend.auth.auth_userr   app.backend.db.databaser   app.backend.db.modelsr   app.backend.schemasr   	auditoriar   r&   getrF    r   r   <module>rV      s    A " & & 5 5 * " > * 9 )\?	6
	 6	l	   !&dq>V W&+DQDc&draC(a.%&=>&/$
$
#$
 $
 	$

 $
 	$
$
r   