feat(admin): add admin notification system for deposits, purchases, and renewals
This commit is contained in:
@@ -29,6 +29,7 @@ from misc.utils import (
|
||||
)
|
||||
from schemas.di import DependenciesDTO
|
||||
from schemas.subscriptions import SubscriptionPlan
|
||||
from services.admin_notifications import notify_subscription_purchase
|
||||
|
||||
router = Router()
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -223,4 +224,18 @@ async def proceed_to_checkout(
|
||||
amount,
|
||||
)
|
||||
|
||||
if deducted_user:
|
||||
await notify_subscription_purchase(
|
||||
cb.bot,
|
||||
user_id=user.id,
|
||||
username=cb.from_user.username,
|
||||
amount=amount,
|
||||
balance_before=deducted_user.balance + amount,
|
||||
balance_after=deducted_user.balance,
|
||||
devices=ctx.devices,
|
||||
duration_days=convert_duration_to_int(ctx.duration),
|
||||
whitelists=ctx.whitelists,
|
||||
credit=credit,
|
||||
)
|
||||
|
||||
await cb.message.edit_text(SUCCESSFULLY_CREATED_SUBSCRIPTION, reply_markup=return_to_menu)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from .common import router as common_router
|
||||
from .prehandling import router as prehandling_router
|
||||
|
||||
routers = [common_router, prehandling_router]
|
||||
routers = [prehandling_router, common_router]
|
||||
|
||||
20
bot/texts.py
20
bot/texts.py
@@ -174,15 +174,17 @@ REFERALS_MENU = (
|
||||
# ОФОРМЛЕНИЕ ПОДПИСКИ
|
||||
# ============================================================
|
||||
|
||||
SUBSCRIPTION_DEVICE_SELECTOR = f"<b>{MALENIA_QUESTION} Сколько устройств вы хотите подключить?</b>\n\nЦена: <b>{{price}}₽</b>"
|
||||
|
||||
SUBSCRIPTION_DURATION_SELECTOR = (
|
||||
f"<b>{MALENIA_QUESTION} На какой срок хотите оформить подписку?</b>\n\nИтого: <b>{{price}}₽</b> <i>(скидка: {{discount}}%)</i>"
|
||||
SUBSCRIPTION_DEVICE_SELECTOR = (
|
||||
f"<b>{MALENIA_QUESTION} Сколько устройств вы хотите подключить?</b>\n\nЦена: <b>{{price}}₽</b>"
|
||||
)
|
||||
|
||||
SUBSCRIPTION_DURATION_SELECTOR = f"<b>{MALENIA_QUESTION} На какой срок хотите оформить подписку?</b>\n\nИтого: <b>{{price}}₽</b> <i>(скидка: {{discount}}%)</i>"
|
||||
|
||||
WHITELISTS_ALREADY_ON = "Белые списки уже активны."
|
||||
|
||||
CHECKOUT_PAYMENT_CHOICE = f"<b>{MALENIA_BANK} Пополнение баланса:</b>\n\n<i>❓ Выберите способ оплаты:</i>"
|
||||
CHECKOUT_PAYMENT_CHOICE = (
|
||||
f"<b>{MALENIA_BANK} Пополнение баланса:</b>\n\n<i>❓ Выберите способ оплаты:</i>"
|
||||
)
|
||||
|
||||
|
||||
# ============================================================
|
||||
@@ -203,13 +205,13 @@ BILL_CREATED = _BILL_TEMPLATE + _DIVIDER + _BILL_LINK
|
||||
|
||||
INSUFFICIENT_FUNDS = f"<b>{MALENIA_CROSS} Недостаточно средств для проведения операции.</b>\n\n<b>💰 Текущий баланс:</b> <code>{{balance}}₽</code>\n<b>💸 Требуется:</b> <code>{{amount}}₽</code>\n\n<i>{MALENIA_CARD} Пополните баланс на <code>{{diff}}₽</code></i>"
|
||||
|
||||
SUCCESSFULLY_CREATED_SUBSCRIPTION = (
|
||||
f"<b>{MALENIA_HEART} Ваша подписка успешно оплачена!</b> Ссылка на добавления доступна в главном меню."
|
||||
)
|
||||
SUCCESSFULLY_CREATED_SUBSCRIPTION = f"<b>{MALENIA_HEART} Ваша подписка успешно оплачена!</b> Ссылка на добавления доступна в главном меню."
|
||||
|
||||
DEPOSIT_AMOUNT = f"<b>{MALENIA_COINS} Укажите сумму пополнения:</b>"
|
||||
|
||||
DEPOSIT_AMOUNT_FALLBACK = f"<b>{MALENIA_CROSS} Сумма пополнения указана неверно, повторите попытку.</b>"
|
||||
DEPOSIT_AMOUNT_FALLBACK = (
|
||||
f"<b>{MALENIA_CROSS} Сумма пополнения указана неверно, повторите попытку.</b>"
|
||||
)
|
||||
|
||||
DEPOSIT_AMOUNT_BELOW_MINIMAL = (
|
||||
f"<b>{MALENIA_CROSS} Сумма пополнения ниже минимальной - <code>{{threshold}}₽</code>.</b>"
|
||||
|
||||
Reference in New Issue
Block a user