o
    eOjk#                  +   @   s&  d dl Z d dlmZmZm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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mZ e Zd
Zd?dededede
fddZ e!d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edededededededededededededdfdeded e"d!ed"ed#ed$ed%ed&ed'ee" d(ee" d)ed*ed+ed,ee& d-ee& d.ed/ed0eeee  e f f&d1d2Z'e!d3ded4e"fd5d6Z(e%d3ededededededededededededededededdfded4e"d e"d!ed"ed#ed$ed%ed&ed'ee" d(ee" d)ed*ed+ed,ee& d-ee& d.ed/ed0eeee  e f f&d7d8Z)e%d9ded4e"fd:d;Z*e%d<ded4e"fd=d>Z+dS )A    N)	AnnotatedListOptional)	APIRouterRequestFormRedirectResponse)selectfuncor_descdelete)selectinload)render)AsyncSessionFactory)MovieGenre
MovieGenreAdminActionMovieLanguageType    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"   A/var/www/www-root/data/www/ai-bot.pdev.uz/admin/routers/movies.py	_redirect   s    r$      allrequestpageqactivec              
      s^  |d t  }t 4 I d H }ttttj}|r;d| d}|ttj	
|tj
|tj
|tj
|}|dkrH|tjdk}n|dkrT|tjdk}|tt | I d H }| }	||ttjt |I d H }
t|
  }W d   I d H  n1 I d H sw   Y  t| d||	||	rt|	t  nd||dS )	Nr%   %r*   TinactiveFzmovies/list.html)moviestotalr(   total_pagesr)   r*   ) PER_PAGEr   r
   r   optionsr   genreswherer   codeiliketitle_uztitle_rutitle_en	is_activeexecuter   countselect_fromsubquery
scalar_oneorder_byr   
created_atlimitoffsetlistscalarsr&   r   mathceil)r'   r(   r)   r*   rB   sessionbasestotal_rr.   movies_rr-   r"   r"   r#   
movie_list   s4   "((rL   z/newc              	      s~   t  4 I d H !}|tttjI d H }t|  }W d   I d H  n1 I d H s/w   Y  t	| dd |tt
dS )Nmovies/form.htmlmovier2   language_types)r   r:   r
   r   r?   name_uzrC   rD   r&   r   r   )r'   rG   genres_rr2   r"   r"   r#   	movie_new3   s   (
rS   .r4   channel_message_idr6   r7   r8   description_uzdescription_rudescription_enyeardurationcountrydirectorcastimdb_ratingkinopoisk_rating
age_ratinglanguage_type	genre_idsc              
      s  |pg }|   }t 4 I d H }|tttj|kI d H }| rU|tt	
t	jI d H }t| dd t|  ttd| ddW  d   I d H  S tdi d|d|d|pbd d|pgd d	|pld d
|pqd d|pvd d|p{d d|	d|
d|pd d|pd d|pd d|d|d|pd d|rt|nd }|| | I d H  |D ]}|t|jt|d q| jj}|tt|d d|d|id | I d H  W d   I d H  n1 I d H sw   Y  tdd| dS )NrM   'z' kodi allaqachon mavjud)rO   r2   rP   errorr4   rT   r6   r7   r8   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   movie_idgenre_idsubmovie_createadmin_telegram_idaction_type	target_iddetails/moviesKino 'z' qo'shildir"   )upperstripr   r:   r
   r   r3   r4   scalar_one_or_noner   r?   rQ   r   rC   rD   r&   r   addflushr   idintstateadminr   commitr$   )r'   r4   rT   r6   r7   r8   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rG   existingrR   rO   gidrx   r"   r"   r#   rh   <   s    
		

(#rh   z/{movie_id}/editre   c              	      s   t  4 I d H M}|tttj|kttjI d H }|	 }|s5t
dddW  d   I d H  S |tttjI d H }t|  }W d   I d H  n1 I d H s[w   Y  t| d||ttdS )Nrn   Kino topilmadidangerrM   rN   )r   r:   r
   r   r3   ru   r1   r   r2   rr   r$   r   r?   rQ   rC   rD   r&   r   r   )r'   re   rG   movie_rrO   rR   r2   r"   r"   r#   
movie_editq   s   

(
r   c              	      s  |pg }t  4 I d H }|tttj|kI d H }| }|s3tdddW  d   I d H  S ||_|p9d |_	|p>d |_
|pCd |_|pHd |_|pMd |_|pRd |_|	|_|
|_|p]d |_|pbd |_|pgd |_||_||_|prd |_|rzt|nd |_|tttj|kI d H  |D ]}|t|t|d q| jj}|t t|d d|j!d |" I d H  W d   I d H  n1 I d H sw   Y  tdd|j! d	S )
Nrn   r|   r}   rd   rg   movie_updaterj   rk   rl   ro   z' yangilandi)#r   r:   r
   r   r3   ru   rr   r$   rT   r6   r7   r8   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r   r`   r   r   re   rs   rv   rw   rx   r   r4   ry   )r'   re   rT   r6   r7   r8   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rG   r~   rO   r{   rx   r"   r"   r#   r      sH    










 
(#r   z/{movie_id}/togglec              	      s   t  4 I d H [}|tttj|kI d H }| }|s/tdddW  d   I d H  S |j |_|jr9dnd}| j	j
}|tt|d d|jd|jid	 | I d H  W d   I d H  n1 I d H siw   Y  tdd
|j d| S )Nrn   r|   r}   faollashtirildiz
o'chirildirg   movie_toggler9   ri   ro   z' )r   r:   r
   r   r3   ru   rr   r$   r9   rw   rx   rs   r   rv   r4   ry   )r'   re   rG   r~   rO   statusrx   r"   r"   r#   r      s&    


(r   z/{movie_id}/deletec              	      s   t  4 I d H P}|tttj|kI d H }| }|s/tdddW  d   I d H  S |j}d|_	| j
j}|tt|d d|d | I d H  W d   I d H  n1 I d H s^w   Y  tdd| d	S )
Nrn   r|   r}   Frg   movie_deleter   ro   z' o'chirildi)r   r:   r
   r   r3   ru   rr   r$   r4   r9   rw   rx   rs   r   rv   ry   )r'   re   rG   r~   rO   r4   rx   r"   r"   r#   r      s$    

(r   )r   r   )r%   r   r&   ),rE   typingr   r   r   fastapir   r   r   fastapi.responsesr	   
sqlalchemyr
   r   r   r   r   sqlalchemy.ormr   admin.responsesr   bot.database.connectionr   bot.database.modelsr   r   r   r   r   routerr0   strr$   getrv   rL   rS   postfloatrh   r   r   r   r   r"   r"   r"   r#   <module>   s    		
4	2