
    jl                     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e
          ZdS )    )JSONColumnDateTimeIntegerStringText)func)Basec                      e Zd ZdZddiZ eedd          Z eeddd          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          Z e e
d          d          Z eed          Z e e
d          d          Z eed          Z eed          Z eed          Z eed          Z eed          Z eed          Z eed          Z eed          Z e ed           ej                    d
d          Z e ed           ej                     ej                              Zd  Z d!S )"AuditLog
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           	      H    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)selfs    </lsinfo/ai/hellotax_ai/base_platform/app/models/audit_log.py__repr__zAuditLog.__repr__,   s6    |tw||||dN`||lplx||||    N)!__name__
__module____qualname____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      s^        M)N	T	6	6	6B$d4^  I fWt4AcdddGVr

S	  F Fr

J	  M &49VWWWKVFF2JJ0\]]]N6$777Lr

,?@@@J&9:::J6$(HIIILfW.IJJJOF4)JKKKM&*LMMMK1PQQQ &2RSSSfW.]^^^O$

URV  J $///

U]UYU]U_U_```J} } } } }r"   r   N)
sqlalchemyr   r   r   r   r   r   sqlalchemy.sqlr	   app.models.baser
   r   r8   r"   r    <module>r<      s    D D D D D D D D D D D D D D D D                  &} &} &} &} &}t &} &} &} &} &}r"   