
    i	                         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edee	   fdZ
dededee	   fd	Z	 	 ddededededee   dee   de	fdZdededefdZdedee	   fdZy
)    )ListOptional)selectdelete)AsyncSession)MandatoryChannelsessionreturnc                 "  K   | j                  t        t              j                  t        j                  dk(        j                  t        j                               d{   }t        |j                         j                               S 7 +w)z0Barcha aktiv majburiy kanallar (tartib bo'yicha)TN)
executer   r   where	is_activeorder_byorderlistscalarsallr	   results     G/home/empty/Documents/pet_projects/kinoBot/bot/database/crud/channel.pyget_active_channelsr   	   sk     ?? 	))T1	2	"((	) F
  $$&''s   AB!B",B
channel_idc                    K   | j                  t        t              j                  t        j                  |k(               d {   }|j                         S 7 w)N)r   r   r   r   r   scalar_one_or_none)r	   r   r   s      r   get_channel_by_idr      sQ      ?? &&'7'B'Bj'PQ F $$&&s   AAAANchannel_titleadded_bychannel_usernameinvite_linkc           	        K   | j                  t        t        j                        j	                  t        j                  j                               j                  d             d{   }|j                         xs d}t        ||||||dz         }| j                  |       | j                          d{    | j                  |       d{    |S 7 p7 !7 
w)zYangi majburiy kanal qo'shish   Nr   )r   r   r   r   r   r   )r   r   r   r   r   desclimitr   addcommitrefresh)	r	   r   r   r   r   r   r   
last_orderchannels	            r   add_channelr)      s      ??%%&//0@0F0F0K0K0MNTTUVW F **,1J#)1nG KK
..

//'
"""N! "s7   A&C(C)AC9C:CCCCCc                   K   | j                  t        t              j                  t        j                  |k(               d{   }|j                         }|syd|_        | j                          d{    y7 77 w)z5Majburiy kanalni o'chirish. Returns True agar topilsaNFT)r   r   r   r   r   r   r   r%   )r	   r   r   r(   s       r   remove_channelr+   9   su     ?? &&'7'B'Bj'PQ F '')GG
..
 s$   AB A<1B 6A>7B >B c                    K   | j                  t        t              j                  t        j                               d{   }t        |j                         j                               S 7 +w)z-Admin uchun: barcha kanallar (noaktivlar ham)N)r   r   r   r   r   r   r   r   r   s     r   get_all_channelsr-   F   sV     ?? ))*:*@*@A F  $$&''s   ?A/A-,A/)NN)typingr   r   
sqlalchemyr   r   sqlalchemy.ext.asyncior   bot.database.modelsr   r   intr   strr)   boolr+   r-        r   <module>r7      s    ! % / 0(| (=M8N ('''*'' '+!%  	
 sm # :
, 
C 
D 
(L (T:J5K (r6   