
    _Aj              
          d dl Z d dlmZmZmZ d dlmZ d dlmZm	Z	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mZmZ d d	lmZmZ  e       Zd
ZddedededefdZej=                  d      ddedededefd       Z ej=                  d      dedefd       Z!ejE                  d       ed      fdededefd       Z#ejE                  d      dedefd       Z$y)     N)	APIRouterRequestFormRedirectResponse)selectfuncor_desc)selectinload)render)AsyncSessionFactory)UserAdminAction	MovieViewMovie)ban_user
unban_user    urlmsgtype_returnc                 @    d| v rdnd}t        |  | d| d| d      S )N?&zmsg=z&type=i.  )status_coder   )r   r   r   seps       DC:\Users\koklo\Documents\pet_projects\kinoBot\admin\routers\users.py	_redirectr!      s1    #CseC5SEw?SQQ    requestpageqfilterc                   K   |dz
  t         z  }t               4 d {   }t        t              j	                  t        t        j                              }|ryd| d}	 t        |      }|j                  t        t        j                  |k(  t        j                  j                  |      t        j                  j                  |                  }|dk(  r#|j                  t        j                  dk(        }n'|dk(  r"|j                  t        j                  dk(        }|j!                  t        t#        j$                               j'                  |j)                                      d {   }	|	j+                         }
|j!                  |j-                  t/        t        j0                              j3                  t               j5                  |             d {   }t7        |j9                         j;                               }d d d       d {    t=        | d
||
rt?        j@                  |
t         z        nd||      S 7 .# t        $ rY |j                  t        t        j                  j                  |      t        j                  j                  |                  }Y w xY w7 F7 7 # 1 d {  7  sw Y   xY ww)	N   %bannedTactiveFzusers/list.html)userstotalr$   total_pagesr%   r&   )!PER_PAGEr   r   r   optionsr   admin_profileintwherer
   telegram_id	full_nameilikeusername
ValueError	is_bannedexecuter	   countselect_fromsubquery
scalar_oneorder_byr   registered_atlimitoffsetlistscalarsallr   mathceil)r#   r$   r%   r&   rB   sessionbasestidtotal_rr-   users_rr,   s                r    	user_listrN      s    Qh("F"$$d|##L1C1C$DEA3aA!fzz((C/1E1Ea1H$--J]J]^_J`a X::dnn45Dx::dnn56Dtzz|(<(H(H(YZZ""$MM$t112399(CJJ6R
 
 W__&**,-/ %$2 "5t38DIIeh./a
F	 3 %  zz,,Q/1D1DQ1GH [
) %$$$s   KIK>J: A2IBJ:-J3.A0J:J6+J:
KJ86KAJ0,J:/J00J:6J:8K:K KKKz/{telegram_id}r4   c                   K   t               4 d {   }|j                  t        t              j	                  t        j
                  |k(        j                  t        t        j                                     d {   }|j                         }|st        ddd      cd d d       d {    S |j                  t        t        t              j                  t        t        j                  t        j                  k(        j	                  t        j                   |j                  k(        j#                  t%        t        j&                              j)                  d             d {   }|j+                         D cg c]  }|j                  |j                  f }}|j                  t        t-        j.                               j	                  t        j                   |j                  k(               d {   }|j1                         }	d d d       d {    t3        | d	      S 7 7 7 7 c c}w 7 D7 &# 1 d {  7  sw Y   6xY ww)Nz/usersFoydalanuvchi topilmadidanger   zusers/detail.html)userrecent_viewstotal_views)r   r:   r   r   r3   r4   r0   r   r1   scalar_one_or_noner!   r   r   joinmovie_ididuser_idr?   r   	viewed_atrA   rE   r	   r;   r>   r   )
r#   r4   rH   user_rrS   views_rrowrT   view_count_rrU   s
             r    user_detailr`   :   s    "$$4LU4##{23W\$"4"456
 

 ((*X'@(K %$$  9e$T%++uxx78U9$$/0Xd9../0U2Y
 
 ?FkkmLms		2mL$__4::< &&y'8'8DGG'CD
 
 #--/- %$0 '.,KQ Q1 %
 %
 M
' %$$$s   IH0IA(I=H3>"I I,H6-I2B8I*H9+IH; AI;I <IIII3I6I9I;III
IIIz/{telegram_id}/banreasonc           
        K   | j                   j                  }t               4 d {   }t        |||xs dt	        |d                d {   }|rM|j                  t        t	        |d         dt        |      d|i             |j                          d {    d d d       d {    rd| dnd}t        d	| ||rd
      S d      S 7 7 7 :7 ,# 1 d {  7  sw Y   <xY ww)NzAdmin tomonidan ban qilindisubuser_banra   )admin_telegram_idaction_type	target_iddetailsFoydalanuvchi z ban qilindirP   /users/successrQ   )
stateadminr   r   r2   addr   strcommitr!   )r#   r4   ra   rm   rH   okr   s          r    rd   rd   X   s     MME"$$G[&2Y<Ye-/ /KK"%eEl"3&k*!6*	  ..""" %$ 9;N;-|
4@YCw{m,c9QQQQ %/ # %$$$si   %C0CC0"CCACCC!C0,C-'C0CCC0C-!C$"C-)C0z/{telegram_id}/unbanc           
        K   | j                   j                  }t               4 d {   }t        ||       d {   }|rJ|j	                  t        t        |d         dt        |                   |j                          d {    d d d       d {    rd| dnd}t        d| ||rd      S d	      S 7 7 7 :7 ,# 1 d {  7  sw Y   <xY ww)
Nrc   
user_unban)re   rf   rg   ri   z ban olib tashlandirP   rj   rk   rQ   )
rl   rm   r   r   rn   r   r2   ro   rp   r!   )r#   r4   rm   rH   rq   r   s         r    rs   rs   j   s     MME"$$g{33KK"%eEl"3(k* 
 ..""" %$ @BN;-':
;G`Cw{m,c9QQQQ %3 # %$$$sg   %CB>CCC ACCCCC'C CCCCCCC)r   rk   )r(   r   rE   )%rF   fastapir   r   r   fastapi.responsesr   
sqlalchemyr   r	   r
   r   sqlalchemy.ormr   admin.responsesr   bot.database.connectionr   bot.database.modelsr   r   r   r   bot.database.crud.userr   r   routerr/   ro   r!   getr2   rN   r`   postrd   rs    r"   r    <module>r      s4    , , . . . ' " 7 C C 7	R3 RS Rc RBR R
 B W  C    #    F Qw QS Q Q: !"EI"X RG R# Rs R #R" #$Rg RC R %Rr"   