o
    eOj                     @   sv  d dl mZ d dl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 d dlmZmZ d dlmZmZmZmZ e Zd'dedededefddZed	defddZedededed	ed	fdededededef
ddZeddedefddZeddedefd d!Zed"eded	ed	ed fdededededed#efd$d%Z d&S )(    )Optional)	APIRouterRequestFormRedirectResponse)select)render)AsyncSessionFactory)AdminActionMandatoryChannel)get_all_channelsadd_channelremove_channelget_channel_by_id successurlmsgtype_returnc                 C   s0   d| v rdnd}t |  | d| d| ddS )N?&zmsg=z&type=i.  )status_coder   )r   r   r   sep r   C/var/www/www-root/data/www/ai-bot.pdev.uz/admin/routers/channels.py	_redirect   s    r   requestc              	      sX   t  4 I d H }t|I d H }W d   I d H  n1 I d H s w   Y  t| d|dS )Nzchannels/list.html)channels)r
   r   r	   )r   sessionr   r   r   r   channel_list   s
   (r!   z/add.
channel_idchannel_titlechannel_usernameinvite_linkc              	      s   | j j}t 4 I d H p}t||I d H }|rC|js3d|_| I d H  tddW  d   I d H  S tdddW  d   I d H  S t|||t|d |pOd |pRd dI d H  |	t
t|d dt|d	|id
 | I d H  W d   I d H  n1 I d H sw   Y  tdd| dS )NT	/channelszKanal qayta faollashtirildizBu kanal allaqachon mavjudwarningsub)added_byr$   r%   channel_addtitleadmin_telegram_idaction_type	target_iddetailszKanal 'z' qo'shildi)stateadminr
   r   	is_activecommitr   r   intaddr   str)r   r"   r#   r$   r%   r2   r    existingr   r   r   r*      s6   
	

(r*   z/{channel_id}/togglec              	      s   | j j}t 4 I d H L}t||I d H }|s'tdddW  d   I d H  S |j |_|jr1dnd}|tt|d dt	|d|jid	 |
 I d H  W d   I d H  n1 I d H s^w   Y  tdd
| S )Nr&   Kanal topilmadidangerfaollashtirildiz
o'chirildir(   channel_toggler3   r,   zKanal )r1   r2   r
   r   r   r3   r6   r   r5   r7   r4   )r   r"   r2   r    channelstatusr   r   r   r<   @   s$   


(r<   z/{channel_id}/removec              	      s   | j j}t 4 I d H ,}t||I d H }|r.|tt|d dt|d | I d H  W d   I d H  n1 I d H s>w   Y  |rGdnd}t	d||rQdS dS )	Nr(   channel_remover-   r.   r/   zKanal o'chirildir9   r&   r   r:   )
r1   r2   r
   r   r6   r   r5   r7   r4   r   )r   r"   r2   r    okr   r   r   r   r?   S   s   
(	r?   z/{channel_id}/editorderc           	   	      s   | j j}t 4 I d H L}t||I d H }|s'tdddW  d   I d H  S ||_|p-d |_|p2d |_||_|	t
t|d dt|d | I d H  W d   I d H  n1 I d H s^w   Y  tddS )Nr&   r9   r:   r(   channel_editr@   zKanal yangilandi)r1   r2   r
   r   r   r#   r$   r%   rB   r6   r   r5   r7   r4   )	r   r"   r#   r$   r%   rB   r2   r    r=   r   r   r   rC   c   s&   	



(
rC   N)r   r   )!typingr   fastapir   r   r   fastapi.responsesr   
sqlalchemyr   admin.responsesr	   bot.database.connectionr
   bot.database.modelsr   r   bot.database.crud.channelr   r   r   r   routerr7   r   getr!   postr5   r*   r<   r?   rC   r   r   r   r   <module>   sd    "