
    ePib              
       L   d dl m Z  d dlmZmZmZ d dlmZ d dlmZ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  ed	d
g      Z G d de      Z G d de      Z G d de      Zej1                  ded       ee       ee      fdededefd       Zej5                  dee          ee       ee      fdedefd       Zej9                  de       ee       ee      fdedededefd       Zej?                  d       ee       ee      fdededefd       Z y)     )datetime)	APIRouterDependsHTTPException)Session)	BaseModelEmailStr)OptionalList)get_db)EmailConfigUser)get_current_userz/email-configszemail-configs)prefixtagsc                       e Zd ZU eed<   eed<   eed<   dZee   ed<   dZee   ed<   e	ed<   dZ
ee   ed<   d	Zeed
<   dZeed<   y)EmailConfigCreatename	smtp_host	smtp_portN	smtp_usersmtp_password
from_email	from_nameTuse_tlsF
is_default)__name__
__module____qualname__str__annotations__intr   r
   r   r	   r   r   boolr        //var/www/notifications/app/api/email_configs.pyr   r      sU    
INN#Ix}##'M8C='#Ix}#GTJr%   r   c                       e Zd ZU dZee   ed<   dZee   ed<   dZee	   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   y)EmailConfigUpdateNr   r   r   r   r   r   r   r   r   )r   r   r   r   r
   r    r!   r   r   r"   r   r   r   r	   r   r   r#   r   r$   r%   r&   r(   r(      s    D(3-#Ix}##Ix}##Ix}##'M8C='%)J")#Ix}#"GXd^"!%J%r%   r(   c                       e Zd ZU eed<   eed<   eed<   eed<   dZee   ed<   eed<   dZee   ed<   e	ed	<   e	ed
<   e
ed<   e
ed<    G d d      Zy)EmailConfigOutidr   r   r   Nr   r   r   r   r   
created_at
updated_atc                       e Zd ZdZy)EmailConfigOut.ConfigTN)r   r   r   from_attributesr$   r%   r&   Configr/   3   s    r%   r1   )r   r   r   r"   r!   r    r   r
   r   r#   r   r1   r$   r%   r&   r*   r*   &   sX    G
INN#Ix}#O#Ix}#M r%   r*       )response_modelstatus_codedatacurrent_userdbc                   K   	 | j                   rb|j                  t              j                  t        j                  |j                  k(  t        j                   dk(        j                  ddi       t        |j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                   
      }|j                  |       |j                          |j!                  |       t#        |j$                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j&                  |j(                        S # t*        $ r.}|j-                          t/        ddt1        |             d	}~ww xY ww)
u8   Создать новую email конфигурациюTr   F)
	tenant_idr   r   r   r   r   r   r   r   r   r+   r   r   r   r   r   r   r   r   r,   r-   i  u>   Ошибка создания email конфигурации: r5   detailN)r   queryr   filterr:   updater   r   r   r   r   r   r   r   addcommitrefreshr*   r+   r,   r-   	Exceptionrollbackr   r    )r6   r7   r8   db_email_configes        r&   create_email_configrH   7   s    *
??HH[!((%%)?)??&&$. flE*+%",,nnnnnn,,nnLL
 	
		


?#!! %%%//%//%//&11%//#++&11&11&11
 	
  

STWXYTZS[\
 	

s)   GFF!  G!	G*)GGG)r4   c                   K   |j                  t              j                  t        j                  | j                  k(        j	                         }g }|D ]  }|j                  t        |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j"                                |S w)u<   Получить список email конфигурацийr;   )r>   r   r?   r:   allappendr*   r+   r   r   r   r   r   r   r   r   r,   r-   )r7   r8   configsresultconfigs        r&   list_email_configsrO   k   s      hh{#**!7!77	ce  F nyy&&&&&&((&&NN((((((
 	 Ms   C,C.z/{config_id}	config_idc                 l  K   |j                  t              j                  t        j                  | k(  t        j                  |j                  k(        j                         }|st        dd      |j                  |j                  |_        |j                  |j                  |_        |j                  |j                  |_	        |j                  |j                  |_
        |j                  |j                  |_        |j                  |j                  |_        |j                  |j                  |_        |j                  |j                  |_        |j                  |j                  rt|j                  t              j                  t        j                  |j                  k(  t        j                  dk(  t        j                  | k7        j!                  ddi       |j                  |_        t#        j$                         |_        |j)                          |j+                  |       t-        |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j.                  |j&                        S w)u/   Обновить email конфигурацию  2   Email конфигурация не найденаr<   Tr   Fr;   )r>   r   r?   r+   r:   firstr   r   r   r   r   r   r   r   r   r   r@   r   utcnowr-   rB   rC   r*   r,   )rP   r6   r7   r8   rN   s        r&   update_email_configrV      s     XXk")))#!7!77 eg 
 4hiiyyii~~!>>~~!>>~~!>>%#11" OO~~!>>||"??HH[!((%%)?)??&&$.)+ flE*+ OO )FIIKJJv99[[""""""$$""$$$$$$ s   J2J4c                 2  K   |j                  t              j                  t        j                  | k(  t        j                  |j                  k(        j                         }|st        dd      |j                  |       |j                          dddS w)u-   Удалить email конфигурациюrR   rS   r<   Tu-   Email конфигурация удалена)okmessage)	r>   r   r?   r+   r:   rT   r   deleterB   )rP   r7   r8   rN   s       r&   delete_email_configr[      s      XXk")))#!7!77 eg 
 4hiiIIfIIK#RSSs   BBN)!r   fastapir   r   r   sqlalchemy.ormr   pydanticr   r	   typingr
   r   app.db.sessionr   app.db.modelsr   r   app.api.depsr   routerr   r(   r*   postrH   getrO   putr"   rV   rZ   r[   r$   r%   r&   <module>rg      s    5 5 " ( ! ! + )	*/1B	C		 		&	 	&Y " RC@ !!12&/0

0
0
 	0
 A0
f BtN34 !12&/ 58 N>: !!12&/	99
9 9 		9 ;9x ~ !!12&/TTT 	T Tr%   