
    i                        d Z ddl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 ddlmZmZ ddlmZ dd	lmZ  ed
dg      Zej-                  de       ed       ed       ed       ed       edd       eddd       ee       ee      fdedz  dedz  dedz  dedz  dedede	dedefd       Zy) z+Router for Audit Log endpoints (read-only).    )	APIRouterDependsQuery)selectfunc)AsyncSession)selectinload)get_db)get_current_userrequire_superadmin)AuditLog)Userz
/audit-logaudit)prefixtags )response_modelN)default)r   ge2         )r   r   lespbu_idmodulaksiuser_idskiplimitdbcurrent_userreturnc                   K   t        t              j                  t        t        j                              }| "|j                  t        j                  | k(        }|"|j                  t        j                  |k(        }|"|j                  t        j                  |k(        }|"|j                  t        j                  |k(        }|j                  t        t        j                               j                  |j                                      d {   }	|	j                         }
|j                  |j!                  t        j"                  j%                               j'                  |      j)                  |             d {   }|j+                         j-                         }|D cg c]  }|j.                  |j                  |j                  r|j                  j0                  nd |j                  |j                  |j                  |j2                  |j4                  |j"                  r|j"                  j7                         nd d	 }}||
||z  dz   |ddS 7 K7 c c}w w)N)	idr   	user_namer   r   r   	object_iddetail
created_atr   )totalpageper_page)datameta)r   r   optionsr	   userwherer   r   r   r   executer   countselect_fromsubquery
scalar_oneorder_byr(   descoffsetr   scalarsallr$   namer&   r'   	isoformat)r   r   r   r   r   r   r    r!   querycount_qr)   resultrowsrr,   s                  3/var/www/html/spbu.com/backend/app/routers/audit.pylist_audit_logsrC      s     8$$\(--%@AEH,,78HNNe34HMMT12H,,78JJvdjjl3??@PQRRG E::x**//1299$?EEeL F >>!D  A $$yy()DyyFFWWhh67ll!,,002
	
  	  E45=1;LZ_"`aa- S
s8   DI)IA1I)I"&I)-B!I$I)"I)$I))__doc__fastapir   r   r   
sqlalchemyr   r   sqlalchemy.ext.asyncior   sqlalchemy.ormr	   app.core.databaser
   app.dependenciesr   r   app.models.auditr   app.models.userr   routergetdictintstrrC        rB   <module>rT      s	   1 - - # / ' $ A %  	,gY	7 Bt$-d+T*-aA&raC0v !34+b4Z+b:+b *+b 4Z	+b
 +b +b 	+b +b 
+b %+brS   