
    i                        d dl mZmZ d dlmZ d dlmZ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 d d
lmZmZ d dlmZ d dl m!Z! d dl"m#Z#  ed      Z$ G d de      Z%e$jM                  ejN                  dk(        de
dedede(ddf
d       Z)de*de(defdZ+e$jM                  ejN                  dk(        de
dede(deddf
d       Z,e$j[                  e%j\                        de	dede(deddf
d        Z/e$jM                  ejN                  ja                  d!            de
dedede(ddf
d"       Z1y)#    )RouterF)
FSMContext)StateStatesGroup)MessageCallbackQueryInlineKeyboardMarkupInlineKeyboardButton)InlineKeyboardBuilder)AsyncSession)settings)get_all_admins	add_adminremove_adminget_admin_by_telegram_id)get_userget_or_create_user)User	AdminRole)is_admin)build_back_to_panel_keyboard)get_textadmin_adminsnamec                   (    e Zd Z e       Z e       Zy)
AdminStateN)__name__
__module____qualname__r   waiting_add_idwaiting_remove_id     G/home/empty/Documents/pet_projects/kinoBot/bot/handlers/admin/admins.pyr   r      s    WNr%   r   zadmin:adminscallbacksessiondb_userlangreturnNc                 &  K   | j                   j                  t        j                  vr&| j	                  t        d|      d       d{    yt        |       d{   }t        ||      }t        d|      dz   }|s|dz  }nt        |d      D ]  \  }}|j                  t        j                  k(  rd	n |j                  t        j                  k(  rd
nd}	|j                  r|j                  j                  nd}
|j                  r|j                  j                  nd}|| d|	 d|
 d| d|j                  j                    d
z  } | j"                  j%                  ||       d{    | j	                          d{    y7 >7 -7 #7 w)zAdminlar ro'yxatini ko'rsatishaccess-deniedT
show_alertNadmins-list

u   📭 Hali admin yo'q.      👑u   👮   🛡?.  <b></b> [<code>u   </code>] — 
reply_markup)	from_useridr   super_admin_listanswerr   r   _build_admins_keyboard	enumerateroler   SUPER_ADMINADMINuser	full_nametelegram_idvaluemessage	edit_text)r'   r(   r)   r*   adminskeyboardtextiadmin
role_emojir   tg_ids               r&   callback_admins_listrR      st     H$=$==ooh=$oOOO!'**F%fd3HM4(61D''!&!, 	gHAu#(::1F1F#FV[V`V`dmdsdsVsFyJ+0::5::''3D.3jjEJJ**cEqcJ<tD6eWMRWR\R\RbRbQcceffD		g 


$
$T
$
AAA
//
# 	P + BsI   AF	F
FF
DF)F*FFF
FFFrK   c                    t               }| D ]j  }|j                  r|j                  j                  nd}|j                  t	        d|j                  r|j                  j
                  nd d|              l |j                  t	        dd             |j                  t	        t        d|      d	             |j                         S )
Nr   u   🗑 r5   admin:remove_admin:)rM   callback_datau   ➕ Admin qo'shishadmin:add_adminzbtn-backzadmin:panel)r   rE   rG   rowr   rF   r   	as_markup)rK   r*   builderrO   rQ   s        r&   r@   r@   ;   s    #%G 
*/**

&&! UZZUZZ11SIJ 3E7;	

 KK%+	
 KK*d+'	
 r%   rV   statec                   K   | j                   j                  t        j                  vr&| j	                  t        d|      d       d {    y | j                  j	                  t        d|             d {    |j                  t        j                         d {    | j	                          d {    y 7 r7 F7 !7 w)Nr-   Tr.   zadmin-add-prompt)
r<   r=   r   r>   r?   r   rI   	set_stater   r"   )r'   r)   r*   rZ   s       r&   callback_add_adminr]   V   s      H$=$==ooh=$oOOO



!
!(+=t"D
EEE
//*33
444
//
 	P F4sH   AC	B<
-C7B>8&CC C6C7C>C CCrI   c                   K   |j                          d{    | j                  j                         }	 t        |      }|t        j                  v r| j                  d       d{    yt        ||       d{   }|r$| j                  t        d|             d{    yt        ||       d{   }|s$| j                  t        d|             d{    yt        ||t        j                  | j                  j                         d{    | j                  t        d||j                                d{    y7 4# t        $ r | j                  d       d{  7   Y yw xY w7 7 7 7 7 7 k7 >w)	z*Yangi admin Telegram ID sini qayta ishlashNu9   ❌ Noto'g'ri format. Faqat raqam (Telegram ID) kiriting.u/   ⚠️ Bu foydalanuvchi allaqachon super admin.zadmin-already-existszuser-not-found)r(   rE   rB   added_byzadmin-addedr   )clearrM   stripint
ValueErrorr?   r   r>   r   r   r   r   r   rD   r<   r=   rF   )rI   r(   r*   rZ   rM   	target_idexistingrE   s           r&   process_add_adminrf   f   se     ++-<<DI	 H---nnNOOO .gyAAHnnX&<dCDDD '9--DnnX&6=>>> __""%%	   ..-DNNK
LLLE 
  nnXYYY 	P BD .> Ms   FE
FE &F'E6(F<E9=$F!E;"F6E=7$FE?9FF.FFFE3*E-+E30F2E33F9F;F=F?FFFrT   c           
      
  K   | j                   j                  t        j                  vr&| j	                  t        d|      d       d {    y t        | j                  j                  d      d         }|t        j                  v r&| j	                  t        d|      d       d {    y t        ||       d {   }|r| j	                  t        d|             d {    t        |       d {   }t        ||      }t        d|      d	z   }t        |d
      D ]  \  }	}
|
j                  t        j                  k(  rdnd}|
j                   r|
j                   j"                  nd}|
j                   r|
j                   j$                  nd}||	 d| d| d| dz  } | j&                  j)                  ||       d {    y | j	                  t        d|      d       d {    y 7 7 K7 97 7 7 :7 w)Nr-   Tr.   :   zadmin-cannot-remove-superzadmin-removedr0   r1   r2   r3   r4   r5   r6   r7   r8   z	</code>]
r:   zadmin-not-found)r<   r=   r   r>   r?   r   rb   datasplitr   r   r@   rA   rB   r   rD   rE   rF   rG   rI   rJ   )r'   r(   r)   r*   rd   removedrK   rL   rM   rN   rO   rP   r   rQ   s                 r&   callback_remove_adminrm      s     H$=$==ooh=$oOOOHMM'',Q/0I H---ooh'BDIVZo[[[ )44Gooh=>>>%g..)&$7t,v5!&!, 	PHAu#(::#@fJ+0::5::''3D.3jjEJJ**cEqcJ<tD6eWJOOD		P ((H(EEEooh'8$?DoQQQ7 	P 	\ 5 	?. 	FQs   AH	G0
AH(G3)H=G6>%H#G9$H6G<7CHG?%H*H+H3H6H9H<H?HH)2aiogramr   r   aiogram.fsm.contextr   aiogram.fsm.stater   r   aiogram.typesr   r	   r
   r   aiogram.utils.keyboardr   sqlalchemy.ext.asyncior   
bot.configr   bot.database.crud.adminr   r   r   r   bot.database.crud.userr   r   bot.database.modelsr   r   bot.handlers.admin.panelr   bot.keyboards.admin_kbr   bot.services.i18nr   routerr   callback_queryrj   strrR   listr@   r]   rI   r"   rf   
startswithrm   r$   r%   r&   <module>r      s    * 0 \ \ 8 /   @ / - ? &	^	$    qvv/0  	
 
 1:4 s 7K 6 qvv!223  	
 
 4 
))*)M)M)M )M 	)M
 
)M +)M\ qvv(()>?@"R"R"R "R 	"R
 
"R A"Rr%   