
    qOi1                     0   d 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mZ ddlmZ  e       Z G d d	e      Zej%                  d
       ee       ee
      f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)uz   
API endpoints для настройки Telegram канала (выбор типа отправки: Bot или MTProto)
    )	APIRouterDependsHTTPException)Session)	BaseModel)get_db)UserTenantSettings)get_current_userc                   ,    e Zd ZU eed<   dZedz  ed<   y)TelegramSenderUpdate	tg_senderNmtproto_account_id)__name__
__module____qualname__str__annotations__r   int     3/var/www/notifications/app/api/telegram_settings.pyr   r      s    N%)d
)r   r   z/telegram/settingscurrent_userdbc                   K   ddl m} |j                  t              j	                  t        j
                  | j
                  k(        j                         }|sIt        | j
                  d      }|j                  |       |j                          |j                  |       |j                  |      j	                  |j
                  | j
                  k(        j                         }|j                  xs d|j                  |D cg c]G  }|j                  |j                  |j                  |j                   |j"                  |j$                  dI c}dS c c}w w)uO   Получить настройки Telegram канала для тенантаr   TelegramMtprotoAccountsystem)	tenant_idr   )idnamephoneusername
is_defaultstatus)r   r   available_mtproto_accounts)app.db.modelsr   queryr
   filterr   firstaddcommitrefreshallr   r   r    r!   r"   r#   r$   r%   )r   r   r   settingsmtproto_accountsaccs         r   get_telegram_settingsr2      s(     5xx'..  L$:$::eg  !",,
 	x
		


8 xx 67>>((L,B,BB	ce 
 ''38&99 (
'
  ffLL!nn**
'
 
'
s   DEAE
Edatac                   K   ddl m} | j                  dvrt        dd      | j                  dk(  r| j                  rz|j                  |      j                  |j                  | j                  k(  |j                  |j                  k(        j                         }|st        dd	| j                   d
      |j                  t              j                  t        j                  |j                  k(        j                         }|sOt        |j                  | j                  | j                  dk(  r| j                  nd      }|j                  |       n3| j                  |_        | j                  dk(  r| j                  nd|_        |j                          |j                  |       |j                  |j                  ddS w)u9   Обновить настройки Telegram каналаr   r   )r   brandmtprotodisabledi  uG   tg_sender должен быть: system, brand, mtproto или disabled)status_codedetailr6   i  u   MTProto аккаунт u-    не найден или не активенN)r   r   r   u.   Настройки Telegram обновлены)r   r   message)r'   r   r   r   r   r(   r)   r    r   r*   r
   r+   r,   r-   )r3   r   r   r   accountr/   s         r   update_telegram_settingsr<   @   s     5 ~~GG\
 	
 ~~"t'>'>((1299"%%)@)@@",,0F0FF
 %' 	
 01H1H0IIvw  xx'..  L$:$::eg  !",,nn:>..I:Ut66[_

 	x!^^AES\A\d&=&=bf#IIKJJx ''&99C s   GGN)__doc__fastapir   r   r   sqlalchemy.ormr   pydanticr   app.db.sessionr   r'   r	   r
   app.api.depsr   routerr   getr2   putr<   r   r   r   <module>rF      s    6 5 "  ! . )	*9 *
  ! !12&/((( "(V  ! !!12&/3
33 	3 "3r   