
    RMi              
          d dl mZmZmZ d dlmZ d dlmZ 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  edd	g
      Zej)                  ded       ee       ee      fdede	defd       Zej-                  dee          ee       ee      fde	defd       Zej-                  de       ee       ee      fdede	defd       Zej7                  de       ee       ee      fdedede	defd       Zy)    )	APIRouterDependsHTTPException)Session)get_db)UserTemplate)get_current_user)TemplateCreateTemplateOut)generate_slugmake_slug_uniquez
/templates	templates)prefixtags    )response_modelstatus_codedatacurrent_userdbc                 ^   | j                   st        | j                        }nt        | j                         }|j                  t              j                  t        j                  |j                  k(        j                         D cg c]  }|j                    }}t        |||j                        }t	        |j                  | j                  || j                  | j                  | j                        }|j                  |       |j                          |j                  |       |S c c}w )N)	tenant_idnameslugchannel_strategycontent	variables)r   r   r   queryr	   filterr   allr   r   r   r   addcommitrefresh)r   r   r   r   texisting_slugsunique_slugtemplates           +/var/www/notifications/app/api/templates.pycreate_templater+      s     99TYY'TYY' *	""l&<&<<	=	N 
 #49O9OPK((YY....H FF8IIKJJxO's   D*)r   c                     ddl m} |j                  |      j                  |j                  | j                  k(  |j
                  j                  d            j                         D cg c]  }|j
                  r|j
                   }}|j                  t              j                  t        j                  | j                  k(        }|r/|j                  t        j                  j                  |             }|j                         }|S c c}w )u   Получить все кастомные шаблоны пользователя (исключая те, что созданы автоматически для готовых шаблонов индустрии)r   )UserIndustryTemplateN)app.db.modelsr-   r    r!   r   template_idisnotr"   r	   idin_)r   r   r-   utuser_industry_template_idsr    r   s          r*   list_templatesr5   /   s     3 ((/077 **l.D.DD ,,2248
 #%" >> 	" " HHX%%l444E "hkkoo.HIIJ		I%"s   (Dz/{template_id}r/   c                     |j                  t              j                  t        j                  | k(  t        j                  |j                  k(        j                         }|st        dd      |S Ni  zTemplate not found)r   detail)r    r	   r!   r1   r   firstr   )r/   r   r   r)   s       r*   get_templater:   N   sZ     		{*H,>,>,BXBX,X	Y	 
 4HIIO    c                 L   |j                  t              j                  t        j                  | k(  t        j                  |j                  k(        j                         }|st        dd      |j                  st        |j                        }nt        |j                        }|j                  t              j                  t        j                  |j                  k(  t        j                  | k7        j                         D cg c]  }|j                   }}t        |||j                        }|j                  |_	        ||_        |j                  |_        |j                  |_        |j                  |_        |j                          |j!                  |       |S c c}w r7   )r    r	   r!   r1   r   r9   r   r   r   r   r"   r   r   r   r   r$   r%   )	r/   r   r   r   r)   r   r&   r'   r(   s	            r*   update_templater=   ^   s?    		{*H,>,>,BXBX,X	Y	 
 4HII 99TYY'TYY' *	""l&<&<<hkk[>X	Y	N 
 #49O9OPK IIHMHM $ 5 5H||HHIIKJJxO#s   F!N)fastapir   r   r   sqlalchemy.ormr   app.db.sessionr   r.   r   r	   app.api.depsr
   app.api.schemasr   r   app.utils.slugr   r   routerpostr+   getlistr5   intr:   putr=    r;   r*   <module>rK      sg   5 5 " ! ( ) 7 :	,k]	; R= !!12&/
 	 >D BtK01 !12&/ 2< [9 !!12&/ 	 : [9 !!12&/	&&
& & 		& :&r;   