
    i              
           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mZ dededee
   fd	Zdedee
   fd
Zdedededede
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)    )ListOptional)select)AsyncSession)
joinedload)Admin	AdminRoleUsersessiontelegram_idreturnc                 @  K   | j                  t        t              j                  t        j                        j                  t        j                  |k(        j                  t        t        j                                     d{   }|j                         S 7 w)z#Telegram ID bo'yicha adminni topishN)executer   r   joinuserwherer
   r   optionsr   scalar_one_or_none)r   r   results      E/home/empty/Documents/pet_projects/kinoBot/bot/database/crud/admin.pyget_admin_by_telegram_idr   
   sn      ??u	ejj		t;.	/	EJJ'	(	 F $$&&s   BBBBc                    K   | j                  t        t              j                  t	        t        j
                                     d{   }t        |j                         j                               S 7 +w)zBarcha adminlar ro'yxatiN)	r   r   r   r   r   r   listscalarsall)r   r   s     r   get_all_adminsr      sV     ??uj45 F  $$&''s   AA8
A6,A8r   roleadded_byc                    K   t        |j                  ||      }| j                  |       | j                          d{    | j	                  |       d{    |S 7 7 w)zYangi admin qo'shish)user_idr   r   N)r   idaddcommitrefresh)r   r   r   r   admins        r   	add_adminr&      s]      E
 KK
..

//%
   L  s"   =A#A A#A!A#!A#c                    K   t        | |       d{   }|sy| j                  |       d{    | j                          d{    y7 97 7 	w)z,Adminni o'chirish. Returns True agar topilsaNFT)r   deleter#   r   r   r%   s      r   remove_adminr*   1   sR      +7K@@E
..

..
 A  s1   AAAAAAAAAc                 >   K   t        | |       d{   }|duS 7 w)z)Foydalanuvchi admin ekanligini tekshirishN)r   r)   s      r   is_adminr,   =   s&     *7K@@E As   	new_rolec                    K   t        | |       d{   }|sy||_        | j                          d{    y7 '7 w)zAdmin rolini o'zgartirishNFT)r   r   r#   )r   r   r-   r%   s       r   update_admin_roler/   C   sC      +7K@@EEJ
..
 A s   >:!><>>N)typingr   r   
sqlalchemyr   sqlalchemy.ext.asyncior   sqlalchemy.ormr   bot.database.modelsr   r	   r
   intr   r   r&   boolr*   r,   r/        r   <module>r9      s    !  / % 6 6
'
'(+
'e_
'(, (4; (
  	
 $		(+			L s t   
	r8   