Add support for streaming modules / Add mailing for trial subscriptions

This commit is contained in:
Capybara-z
2025-08-06 23:07:27 +03:00
parent a833b11b8e
commit 9d1760c7ca
5 changed files with 107 additions and 41 deletions
+8 -1
View File
@@ -12,7 +12,7 @@ from aiogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMar
from sqlalchemy import distinct, func, select
from sqlalchemy.ext.asyncio import AsyncSession
from database.models import Key, Payment, Server, User
from database.models import Key, Payment, Server, Tariff, User
from filters.admin import IsAdminFilter
from logger import logger
@@ -269,6 +269,13 @@ async def handle_send_confirm(callback_query: CallbackQuery, state: FSMContext,
.where(Payment.status == "success")
.where(~User.tg_id.in_(subquery))
)
elif send_to == "trial":
trial_tariff_subquery = select(Tariff.id).where(Tariff.group_code == "trial")
query = (
select(distinct(Key.tg_id))
.where(Key.tariff_id.in_(trial_tariff_subquery))
)
else:
query = select(distinct(User.tg_id))