
    bAjz                         d 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edeeed	z  f   fd
Zd	d	d	d	ddeded	z  dededed	z  deeef   d	z  deeef   d	z  ded	z  de
fdZy	)z,Audit helpers for critical operator actions.    )Any)UUID)Request)AsyncSession)AuditLogrequestreturnNc                    | j                   j                  d      }|r"|j                  d      d   j                         nd }|"| j                  r| j                  j
                  }|| j                   j                  d      dS )Nzx-forwarded-for,r   z
user-agent
ip_address
user_agent)headersgetsplitstripclienthost)r   forwarded_for	client_ips      DC:\xampp\htdocs\tradingbinance\backend\app\services\audit_service.pyrequest_audit_contextr      su    OO''(9:M7D##C(+113$IW^^NN''	  oo)),7     )	entity_id	old_value	new_valuer   dbuser_idactionentity_typer   r   r   c                   K   |rt        |      nd d d}t        |||||||d   |d         }	| j                  |	       | j                          d {    |	S 7 w)Nr   r   r   )r   r   r    r   r   r   r   r   )r   r   addflush)
r   r   r   r    r   r   r   r   contextevents
             r   record_audit_eventr&      so      18#G,D`d=eG<(<(	E FF5M
((*L s   AAAA)__doc__typingr   uuidr   fastapir   sqlalchemy.ext.asyncior   
app.modelsr   dictstrr   r&    r   r   <module>r0      s    2    / 
7 
tCtO/D 
& "'+'+" D[ 	
  d{ CH~$ CH~$ t^ r   