o
    V
h                     @   s  d dl mZmZmZmZmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZmZmZ e Zejdedee
jeefd	ed
e
jfddZejdee ded d dedddedddedddee
jeefdededee dee d
e
jf
ddZdS )    )	APIRouterDependsHTTPExceptionQueryPath)OptionalList)database)get_current_userdetails)AuditLogAuditLogCreate)create_audit_log_servicelist_audit_logs_servicelist_global_audit_logs_service/)response_model	audit_logdbc              
      sH   zt | |I dH }|W S  ty# } ztddt| dd}~ww )z\
    Create a new audit log record.
    Typically called internally after user actions.
    N  zAudit log creation failed: status_codedetail)r   	Exceptionr   str)r   r   current_usernew_loge r   5/var/www/html/moveengine/app/v1/routers/saas/audit.pycreate_audit_log   s   
r   )ge
      NzFilter logs by account_id)descriptionzFilter logs by user_idskiplimit
account_iduser_idc              
      sn   z|s|rt | ||||I dH }|W S t| ||I dH }|W S  ty6 } ztddt| dd}~ww )z
    Retrieve a paginated list of audit logs.
    If filters are provided (account_id or user_id), returns filtered logs;
    otherwise, returns all (global) audit logs.
    Nr   zFailed to list audit logs: r   )r   r   r   r   r   )r$   r%   r&   r'   r   r   logsr   r   r   r   list_audit_logs   s   r)   )fastapir   r   r   r   r   typingr   r   app.dbr	   app.v1.dependencies.authr
   app.v1.models.saas.auditmodelr   r   app.v1.services.saas.auditr   r   r   routerpostget_mongo_dbMongoDBr   getintr   r)   r   r   r   r   <module>   sB    



