
    ]i|	                         d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 d Z
deded	ed
e	dz  fdZ	 	 	 	 dded	ededz  dedz  deded
eee	   ef   fdZded	ed
efdZdeded
e	fdZdede	ded
e	fdZy)u6   Anomali repository — DB queries for anomaly records.    )funcselect)AsyncSession)selectinload)AnomaliRecordc                      t        t        j                        t        t        j                        t        t        j                        t        t        j
                        gS N)r   r   produknozzleassigned_userresolved_by     E/var/www/html/spbu.com/backend/app/repositories/anomali_repository.py_eager_optsr   
   sD    ]))*]))*]001]../	 r   dbidspbu_idreturnNc                   K   | j                   t        t              j                  t        j                  |k(  t        j
                  |k(        j                  t                       d {   }|j                         S 7 wr	   )	executer   r   wherer   r   optionsr   scalar_one_or_none)r   r   r   results       r   	get_by_idr      sk     ::	}	}2%}'<'<'G	H	+-	! F
 $$&&s   A)B+B ,Btipestatusskiplimitc                   K    t        t              j                  t        j                  |k(        j                  t                }|"|j                  t        j                  |k(        }|"|j                  t        j                  |k(        }|j                  t        j                  j                               }| j                  t        t        j                               j                  |j                                      d {   }|j!                         }| j                  |j#                  |      j%                  |             d {   }	t'        |	j)                         j+                               |fS 7 t7 /wr	   )r   r   r   r   r   r   r   r   order_by
created_atdescr   r   countselect_fromsubquery
scalar_oneoffsetr    listscalarsall)
r   r   r   r   r   r    querycount_qtotalr   s
             r   get_allr0      s$    	}	}$$/	0	+-	! 

 M..$67M00F:;NN=3388:;EJJvdjjl3??@PQRRG E::ell4066u=>>F $$&'..	 S ?s%   DFE=	AFE?.F?Fc           	      <  K   | j                  t        t        j                               j	                  t
              j                  t
        j                  |k(  t
        j                  j                  ddg                   d {   }|j                         S 7 w)Nnewinvestigating)r   r   r   r%   r&   r   r   r   r   in_r(   )r   r   r   s      r   count_activer5   6   sx     ::tzz|	]	#	!!W,  $$e_%=>

 F s   BBBBdatac                   K   t        di |}| j                  |       | j                          d {    | j                  |       d {    t	        | |j
                  |j                         d {   S 7 F7 /7 w)Nr   )r   addflushrefreshr   r   r   )r   r6   records      r   creater<   B   sf     "T"FFF6N
((*
**V
2vyy&..999 9s3   0A?A9A?A;(A?4A=5A?;A?=A?r;   c                   K   |j                         D ]  \  }}t        |||        | j                          d {    | j                  |       d {    t	        | |j
                  |j                         d {   S 7 F7 /7 wr	   )itemssetattrr9   r:   r   r   r   )r   r;   r6   kvs        r   updaterB   J   sn     

11 
((*
**V
2vyy&..999 9s3   9BBBB(B=B>BBB)NNr   2   )__doc__
sqlalchemyr   r   sqlalchemy.ext.asyncior   sqlalchemy.ormr   app.models.anomalir   r   intr   strtupler*   r0   r5   dictr<   rB   r   r   r   <module>rM      s   < # / ' ,' '# ' 'PT@T ' /// */ $J	/
 / / 4#$/4	< 	# 	# 	:\ : :- ::\ := : : :r   