
    >$j                        d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
mZmZmZ  eddg          Zh dZe                    d	           ee          fd
efd            Ze                    d	           ee          fded
efd            Ze                    d           ee          fd
efd            Ze                    d           ee          fded
efd            Ze                    d           ee          fdeded
efd            Ze                    d           ee          fdeded
efd            Ze                    d           ee          fded
efd            Ze                    d           ee          fdeded
efd            Ze                    d           ee          fdeded
efd            ZdS )    )	APIRouterDependsHTTPException)Sessionselect)get_session)IdeaTheme
VideoAssetnow_utcz/topicstopics)prefixtags>	   ideaplannedapprovedarchivedproducedrevieweduploadedin_productionneeds_research sessionc           	      8   |                      t          t                                        t          j                                        t          j                                                                                            }g }|D ]}|                    d          }t          |                      t          t                                        t          j        |j        k                                                                  |d<   t          |                      t          t                                        t          j        |j        k                                                                  |d<   |                    |           d|iS )Njsonmodepackage_count
idea_countitems)execr   r
   order_byprioritydesc
created_atall
model_dumplenr   wheretopic_ididr	   append)r   r   r!   tdatas         backend/app/api/routes/topics.pylist_topicsr1      s+   <<u..u~/B/B/D/DeFVF[F[F]F]^^__cceeF
E  \\v\&&!',,vj/A/A/G/G
H[]^]aHa/b/b"c"c"g"g"i"ijj_w||F4LL,>,>t}ad?R,S,STTXXZZ[[\TE?    payloadc                    t          | d         |                     d          |                     d          |                     d          |                     dd          |                     dd          t          |                     d	d
                              }|                    |           |                                 |                    |           |                    d          S )Ntitledescriptionanglepromisedefault_languagedestatusr   r$   r   )r5   r6   r7   r8   r9   r;   r$   r   r   )r
   getintaddcommitrefreshr(   )r3   r   topics      r0   create_topicrB      s    
gGKK,F,FgkkZaNbNbI&&EWX\9]9]{{8F++c'++jQR:S:S6T6T  E
 KK((('//%*@*@*@(((r2   z/ideas/listc                 (   |                      t          t                                        t          j                                        t          j                                                                                            }dd |D             iS )Nr!   c                 :    g | ]}|                     d           S r   r   r(   .0is     r0   
<listcomp>zlist_ideas.<locals>.<listcomp>#   s&    >>>1Q\\v\..>>>r2   )r"   r   r	   r#   r$   r%   r&   r'   )r   ideass     r0   
list_ideasrL       sk    
,,vd||,,T]-?-?-A-A4?CWCWCYCYZZ
[
[
_
_
a
aE>>>>>??r2   z/ideasc                 d   t          |                     d          | d         |                     d          |                     d          pg |                     d          pg |                     d          |                     d          |                     d          t          |                     d	d
                    |                     dd          
  
        }|                    |           |                                 |                    |           |                    d          S )Nr+   r5   short_explanationkeywordssource_linksnotespillarseriesr$   r   r;   r   
r+   r5   rN   rO   rP   rQ   rR   rS   r$   r;   r   r   )r	   r<   r=   r>   r?   r@   r(   )r3   r   r   s      r0   create_idearU   %   s   	Z((0@T[T_T_`sTtTtZ((.BW[[=X=X=^\^fmfqfqryfzfz{{8$$W[[-B-BSQXQ\Q\]ghiQjQjMkMkt{tt  AI  JP  uQ  uQ
 
 
D
 KKw~~''')>)>)>???'''r2   z/ideas/{idea_id}idea_idc                 j   |                     t          |           }|st          dd          dD ]}||v rt          ||||                    t	                      |_        |                    |           |                                 |                    |           |	                    d          S )N  Idea not foundrT   r   r   )
r<   r	   r   setattrr   
updated_atr>   r?   r@   r(   )rV   r3   r   r   keys        r0   
patch_idear]   /   s    	T7	#	#D:}S)9::: : :'>>74GCL999IIDOw{{4000'..2B2B2BGOOTXDYDYDY???'''r2   z/ideas/{idea_id}/source-linkc                    |                     t          |           }|st          dd          t          |j        pg           }|                    |d                    ||_        t                      |_        |                    |           |	                                 |
                    |           |                    d          S )NrX   rY   urlr   r   )r<   r	   r   listrP   r-   r   r[   r>   r?   r@   r(   )rV   r3   r   r   linkss        r0   add_source_linkrb   8   s    	T7	#	#D:}S)9:::
t &B
'
'E	LL   DWYYT_D8I8I8I7>>K[K[K[]d]l]lmq]r]r]r???'''r2   z/{topic_id}r+   c                 (   |                     t          |           }|st          dd          |                    d          }d |                    t          t                                        t          j        | k                        	                                D             |d<   d |                    t          t                                        t          j        | k                        	                                D             |d<   |S )	NrX   Topic not foundr   r   c                 :    g | ]}|                     d           S rE   rF   rG   s     r0   rJ   zget_topic.<locals>.<listcomp>F   s&    vvv1<<V<,,vvvr2   rK   c                 :    g | ]}|                     d           S rE   rF   )rH   vs     r0   rJ   zget_topic.<locals>.<listcomp>G   s8      F  F  FAalll//  F  F  Fr2   packages)r<   r
   r   r(   r"   r   r	   r*   r+   r'   r   )r+   r   rA   r/   s       r0   	get_topicri   A   s    
++eX
&
&E<c*;<<<			v		&	&Dvvgll6$<<CUCUVZVcemVmCnCn6o6o6s6s6u6uvvvDM F  FfZFXFXF^F^_i_rt|_|F}F}9~9~  :C  :C  :E  :E  F  F  FDKr2   c                 j   |                     t          |           }|st          dd          dD ]}||v rt          ||||                    t	                      |_        |                    |           |                                 |                    |           |	                    d          S )NrX   rd   )r5   r6   r7   r8   r;   r$   r9   r   r   )
r<   r
   r   rZ   r   r[   r>   r?   r@   r(   )r+   r3   r   rA   r\   s        r0   patch_topicrk   J   s    
++eX
&
&E<c*;<<<_ ; ;'>>75WS\:::YYEE 2 2 2GNN4D4D4DgooV[F\F\F\(((r2   z/{topic_id}/actionc                 d   |                     t          |           }|st          dd          |                     d          }dddddd	}||vrt          d
d          ||         |_        t	                      |_        |                    |           |                                 d|j        dS )NrX   rd   actionr   r   r   r   r   )use_nextholdr   archivemark_producedi  zUnsupported actionT)okr;   )r<   r
   r   r;   r   r[   r>   r?   )r+   r3   r   rA   rm   mappings         r0   topic_actionrt   S   s    
++eX
&
&E<c*;<<<;;x  F!EU`j  |F  G  GGWM#6J$K$KKEL799%"2gkk%>P>P>PRYR`R`RbRbRb%,///r2   N)fastapir   r   r   sqlmodelr   r   app.api.depsr   app.models.corer	   r
   r   r   routerTOPIC_STATUSESr<   r1   postdictrB   rL   rU   patchstrr]   rb   ri   rk   rt    r2   r0   <module>r      s`   5 5 5 5 5 5 5 5 5 5 $ $ $ $ $ $ $ $ $ $ $ $ $ $ < < < < < < < < < < < <y	
333yyyB!(!5!5       R181E1E ) )$ ) ) ) ) ) M ' 4 4 @ @ @ @ @ @ X070D0D ( ( ( ( ( ( (  !!=DW[=Q=Q ( ( (d (W ( ( ( "!( +,,BI'+BVBV ( (S (4 (' ( ( ( -,( M.5gk.B.B   g     m?Fw{?S?S ) )# ) )w ) ) ) ) !""@G@T@T 0 03 0 0 0 0 0 #"0 0 0r2   