o
    "i!
                     @   sP   d Z ddlmZmZmZmZmZmZ ddlm	Z	 ddl
mZ G dd deZdS )z]
Audit Log Model

Tracks all important operations in the system for security and compliance.
    )ColumnIntegerStringTextDateTimeJSON)func)Basec                   @   sJ  e Zd ZdZdZddiZeedddZeeddddZ	eeddd	dZ
eed
ddddZeed
ddddZeedddZeedddZeeddZeedddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeedde dddZeedde e d Z d!d" Z!d#S )$AuditLogz
    Audit log for tracking user actions and system events.

    Stores comprehensive information about:
    - User actions (create, read, update, delete, execute)
    - API requests and responses
    - Security events
    - Configuration changes
    
audit_logsschemapublicT)primary_keyindexz(Tenant ID (null for platform operations))nullabler   commentz User ID who performed the action2   FzAAction type: create, read, update, delete, execute, login, logoutz8Resource type: agent, knowledge_base, user, tenant, etc.zID of the affected resource)r   r   
   z*HTTP method: GET, POST, PUT, DELETE, PATCH)r   zRequest path-   zClient IP addresszUser agent stringzRequest parameters (sanitized)zHTTP response status codezError message if request failedz Request duration in millisecondszRequest payload size in byteszResponse payload size in bytesz-Total bandwidth (request + response) in bytes)timezone)server_defaultr   r   )r   onupdatec              	   C   s&   d| j  d| j d| j d| j d	S )Nz<AuditLog(id=z	, action=z, resource_type=z
, user_id=z)>)idactionresource_typeuser_id)self r   </lsinfo/ai/hellotax_ai/base_platform/app/models/audit_log.py__repr__:   s   &zAuditLog.__repr__N)"__name__
__module____qualname____doc____tablename____table_args__r   r   r   	tenant_idr   r   r   r   resource_idrequest_methodr   request_path
ip_address
user_agentr   request_dataresponse_statuserror_messageduration_msrequest_size_bytesresponse_size_bytesbandwidth_bytesr   r   now
created_at
updated_atr   r   r   r   r   r
      s0    	r
   N)r#   
sqlalchemyr   r   r   r   r   r   sqlalchemy.sqlr   app.models.baser	   r
   r   r   r   r   <module>   s
     