
    %i                         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
 ddeded	edz  fd
Zdeded	edz  fdZddeded	efdZdeded	efdZdeded	efdZy)    )Session)and_)TelegramBotTenantSettings)get_settings)decrypt_tokenN	tenant_iddbreturnc                    K   t               }|2ddlm}  |       }	 t        | |       d{   |j	                          S t        | |       d{   S 7 (# |j	                          w xY w7 w)u  
    Выбрать токен бота для отправки сообщений
    
    Returns:
        str: Токен бота для отправки (системного или бренд-бота)
        None: Если нет доступных ботов
    Nr   SessionLocal)r   app.db.sessionr   _choose_sender_implcloser	   r
   settingsr   s       6/var/www/notifications/app/services/telegram_sender.pychoose_telegram_senderr      s\      ~H	z/^	,Y;;HHJ(B777	 <HHJ77   A.A AA  A.A,A.A A))A.c                 >  K   t               }|j                  t              j                  t        j                  | k(        j                         }|r|j                  dk(  ry|r|j                  dk(  ry|j                  t              j                  t        t        j                  | k(  t        j                  dk(              j                         }|rt        |j                        }|r|S |j                  r|j                  S |j                  r|j                  S yw)uM   Внутренняя реализация выбора отправителяdisabledNbrandactive)r   queryr   filterr	   first	tg_senderr   r   statusr   bot_token_encSYSTEM_TG_BOT_TOKENTELEGRAM_BOT_TOKEN)r	   r
   r   tenant_settingsbotdecrypted_tokens         r   r   r      s     ~H hh~.55  I-eg 
 ?44
B ?44?hh{#**%%2""h.

 %' 	 +C,=,=>O&& ##+++ ""***s   DDc                    K   t               }|2ddlm}  |       }	 t        | |       d{   |j	                          S t        | |       d{   S 7 (# |j	                          w xY w7 w)u@   Получить username бота для отображенияNr   r   )r   r   r   _get_username_implr   r   s       r   get_telegram_usernamer(   D   sZ     ~H	z/^	+Ir::HHJ'	2666	 ;HHJ6r   c                   K   t               }|j                  t              j                  t        j                  | k(        j                         }|r|j                  dk(  r{|j                  t              j                  t        t        j                  | k(  t        j                  dk(              j                         }|r|j                  rd|j                   S |j                  S w)uE   Внутренняя реализация получения usernamer   r   @)r   r   r   r   r	   r   r   r   r   r   usernameSYSTEM_TG_BOT_USERNAME)r	   r
   r   r#   r$   s        r   r'   r'   S   s     ~H hh~.55  I-eg 
 ?44?hh{#**%%2""h.

 %' 	 3<<s||n%% ***s   C&C(c                 p   |j                  t              j                  t        j                  | k(        j	                         }|r|j
                  dk7  ry|j                  t              j                  t        t        j                  | k(  t        j                  dk(              j	                         }|duS )uN   Проверить активен ли бренд-бот для тенантаr   Fr   N)	r   r   r   r	   r   r   r   r   r   )r	   r
   r#   r$   s       r   is_brand_bot_activer.   l   s    hh~.55  I-eg  o777B
((;

&
&!!Y.(*	

 eg  d?    )N)sqlalchemy.ormr   
sqlalchemyr   app.db.modelsr   r   app.core.configr   app.utils.encryptionr   intstrr   r   r(   r'   boolr.    r/   r   <module>r9      s    "  5 ( .8C 8W 8d
 8*$ $' $cDj $N73 7G 7s 7+ + +S +23 G  r/   