
    F4jS                        d dl 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 d dlmZ d dlmZ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       ee      fdededefd       Zej-                  d      d dd ee       ee      fdedede	e   dedef
d       Zy)    )	APIRouterDependsstatus)JSONResponse)Session)Optional)get_current_active_user)
AuditClass)get_db)
StoreAudit	UserLoginz/auditsAudits)prefixtags auditsession_userdbc           	        K   	 t        |      }|j                  | j                  | 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        $ r5}t        t        j                  ddt        |       dd	      cY d}~S d}~ww xY ww)u7   
    Crea un nuevo registro de auditoría (login).
    )user_idrol_idr   error  messageu%   Error al crear registro de auditoríaNr   r   datastatus_codecontent   u*   Registro de auditoría creado exitosamente
audit_data  u&   Error creando registro de auditoría: )r
   storer   r   getr   r   HTTP_400_BAD_REQUESTHTTP_201_CREATED	ExceptionHTTP_500_INTERNAL_SERVER_ERRORstr)r   r   r   audit_serviceresultes         B/var/www/pie360backend.cl/public_html/app/backend/routes/audits.pystore_auditr.      s     "
"2$$MM<< % 

 ::h7*"77!%zz)5\]   //G

<0
 	
  
==CCF8L
 	

sA   C(A4B' 8C(9-B' &C('	C%0*C C%C( C%%C(z/{audit_id}audit_idc           	        K   	 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        $ r5}t        t        j                  ddt        |       dd      cY d}~S d}~ww xY ww)u6   
    Obtiene un registro de auditoría por su ID.
    r   r   i  r   u$   Registro de auditoría no encontradoNr   r      u!   Registro de auditoría encontrador!   r"   u)   Error obteniendo registro de auditoría: )	r
   r$   r   r   HTTP_404_NOT_FOUNDHTTP_200_OKr'   r(   r)   )r/   r   r   r*   r+   r,   s         r-   	get_auditr4   >   s     
"2""8,::h7*"55!%zz)5[\   **>

<0
 	
  
==Fs1vhO
 	

sA   CAB "C#-B C	C*C
CC
CC
   Npageper_pager   c           	        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)uY   
    Obtiene todos los registros de auditoría, opcionalmente filtrados por user_id.
    )r   r6   items_per_pager   r   r   r   u(   Error al obtener registros de auditoríaNr   r   r1   u.   Registros de auditoría obtenidos exitosamenter"   u*   Error obteniendo registros de auditoría: )r
   get_all
isinstancedictr$   r   r   r%   r3   r'   r(   r)   )r6   r7   r   r   r   r*   r+   r,   s           r-   get_all_auditsr=   h   s     
"2&&wTRZ&[fd#

8(<(G"77!%zz)5_`   **K
 	
  
==GAxP
 	

sA   CA1B 5C6B C	C*CC	CCC)fastapir   r   r   fastapi.responsesr   sqlalchemy.ormr   typingr   app.backend.auth.auth_userr	   app.backend.classes.audit_classr
   app.backend.db.databaser   app.backend.schemasr   r   auditspostr.   r$   intr4   r=        r-   <module>rK      s,   . . * "  > 6 * 5	

 R &&=>&/*
*
*
 	*
 *
X M &&=>&/'
'
'
 	'
 '
R B!%&=>&/)

)
)
 c])
 	)

 	)
 )
rJ   