+
    B.jz                     r    R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 R R ltRR	R
R	RR	RR	/R R lltR	# )z,Audit helpers for critical operator actions.)Any)UUID)Request)AsyncSession)AuditLogc                `    V ^8  d   QhR\         R\        \        \        R,          3,          /# )   requestreturnN)r   dictstr)formats   "app\services\audit_service.py__annotate__r      s'     
 
7 
tCtO/D 
    c                 .   V P                   P                  R 4      pV'       d'   VP                  R4      ^ ,          P                  4       MRpVf)   V P                  '       d   V P                  P
                  pRVRV P                   P                  R4      /# )zx-forwarded-for,N
ip_address
user_agentz
user-agent)headersgetsplitstripclienthost)r	   forwarded_for	client_ips   &  r   request_audit_contextr      s{    OO''(9:M7D##C(+113$IW^^^NN''	 	igoo)),7 r   	entity_idN	old_value	new_valuer	   c                   V ^8  d   QhR\         R\        R,          R\        R\        R\        R,          R\        \        \        3,          R,          R\        \        \        3,          R,          R	\
        R,          R
\        /	# )r   dbuser_idNactionentity_typer   r   r    r	   r
   )r   r   r   r   r   r   r   )r   s   "r   r   r      s       D[ 	
  d{ CH~$ CH~$ t^ r   c                   "   V'       d   \        V4      MR RRR/p\        VVVVVVVR ,          VR,          R7      p	V P                  V	4       V P                  4       G Rj  xL
  V	#  L5i)r   Nr   )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+      ss      18#G,lDR^`d=eG<(<(	E FF5M
((*L s   AA*!A("A*)__doc__typingr   uuidr   fastapir   sqlalchemy.ext.asyncior   
app.modelsr   r   r+    r   r   <module>r3      sN    2    / 
 " (, (, # r   