Merge pull request #39 from machka-pasla/codex/add-promo-code-activation-notifications
Add promo activation and tribute/star payment notifications
This commit is contained in:
@@ -177,3 +177,18 @@ async def notify_admin_new_payment(bot: Bot, settings: Settings, i18n: JsonI18n,
|
|||||||
amount=f"{amount:.2f}",
|
amount=f"{amount:.2f}",
|
||||||
currency=currency_symbol,
|
currency=currency_symbol,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def notify_admin_promo_activation(bot: Bot, settings: Settings,
|
||||||
|
i18n: JsonI18n, user_id: int,
|
||||||
|
code: str,
|
||||||
|
bonus_days: int) -> None:
|
||||||
|
await notify_admins(
|
||||||
|
bot,
|
||||||
|
settings,
|
||||||
|
i18n,
|
||||||
|
"admin_promo_activation_notification",
|
||||||
|
user_id=user_id,
|
||||||
|
code=code,
|
||||||
|
bonus_days=bonus_days,
|
||||||
|
)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from db.models import PromoCode, User
|
|||||||
|
|
||||||
from .subscription_service import SubscriptionService
|
from .subscription_service import SubscriptionService
|
||||||
from bot.middlewares.i18n import JsonI18n
|
from bot.middlewares.i18n import JsonI18n
|
||||||
|
from .notification_service import notify_admin_promo_activation
|
||||||
|
|
||||||
|
|
||||||
class PromoCodeService:
|
class PromoCodeService:
|
||||||
@@ -56,7 +57,14 @@ class PromoCodeService:
|
|||||||
session, promo_data.promo_code_id)
|
session, promo_data.promo_code_id)
|
||||||
|
|
||||||
if activation_recorded and promo_incremented:
|
if activation_recorded and promo_incremented:
|
||||||
|
await notify_admin_promo_activation(
|
||||||
|
self.bot,
|
||||||
|
self.settings,
|
||||||
|
self.i18n,
|
||||||
|
user_id,
|
||||||
|
code_input_upper,
|
||||||
|
bonus_days,
|
||||||
|
)
|
||||||
return True, _("promo_code_applied_success",
|
return True, _("promo_code_applied_success",
|
||||||
code=code_input_upper,
|
code=code_input_upper,
|
||||||
bonus_days=bonus_days,
|
bonus_days=bonus_days,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from db.dal import payment_dal, user_dal
|
|||||||
from .subscription_service import SubscriptionService
|
from .subscription_service import SubscriptionService
|
||||||
from .referral_service import ReferralService
|
from .referral_service import ReferralService
|
||||||
from bot.middlewares.i18n import JsonI18n
|
from bot.middlewares.i18n import JsonI18n
|
||||||
|
from .notification_service import notify_admin_new_payment
|
||||||
|
|
||||||
|
|
||||||
class StarsService:
|
class StarsService:
|
||||||
@@ -133,3 +134,13 @@ class StarsService:
|
|||||||
logging.error(
|
logging.error(
|
||||||
f"Failed to send stars payment success message: {e_send}")
|
f"Failed to send stars payment success message: {e_send}")
|
||||||
|
|
||||||
|
await notify_admin_new_payment(
|
||||||
|
self.bot,
|
||||||
|
self.settings,
|
||||||
|
self.i18n,
|
||||||
|
message.from_user.id,
|
||||||
|
months,
|
||||||
|
float(stars_amount),
|
||||||
|
currency="XTR",
|
||||||
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from bot.middlewares.i18n import JsonI18n
|
|||||||
from bot.services.subscription_service import SubscriptionService
|
from bot.services.subscription_service import SubscriptionService
|
||||||
from bot.services.panel_api_service import PanelApiService
|
from bot.services.panel_api_service import PanelApiService
|
||||||
from bot.services.referral_service import ReferralService
|
from bot.services.referral_service import ReferralService
|
||||||
|
from .notification_service import notify_admin_new_payment
|
||||||
from db.dal import payment_dal, user_dal, subscription_dal
|
from db.dal import payment_dal, user_dal, subscription_dal
|
||||||
|
|
||||||
|
|
||||||
@@ -157,6 +158,16 @@ class TributeService:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(
|
logging.error(
|
||||||
f"Failed to send Tribute payment success message to user {user_id}: {e}")
|
f"Failed to send Tribute payment success message to user {user_id}: {e}")
|
||||||
|
|
||||||
|
await notify_admin_new_payment(
|
||||||
|
bot,
|
||||||
|
settings,
|
||||||
|
i18n,
|
||||||
|
user_id,
|
||||||
|
months,
|
||||||
|
float(price_rub),
|
||||||
|
currency="RUB",
|
||||||
|
)
|
||||||
elif event_name == 'cancelled_subscription':
|
elif event_name == 'cancelled_subscription':
|
||||||
db_user = await user_dal.get_user_by_id(session, user_id)
|
db_user = await user_dal.get_user_by_id(session, user_id)
|
||||||
lang = db_user.language_code if db_user and db_user.language_code else settings.DEFAULT_LANGUAGE
|
lang = db_user.language_code if db_user and db_user.language_code else settings.DEFAULT_LANGUAGE
|
||||||
|
|||||||
@@ -216,6 +216,7 @@
|
|||||||
|
|
||||||
"admin_new_trial_notification": "\ud83c\udf21 User {user_id} activated a free trial until {end_date}.",
|
"admin_new_trial_notification": "\ud83c\udf21 User {user_id} activated a free trial until {end_date}.",
|
||||||
"admin_new_payment_notification": "\ud83d\udcb3 Payment received from user {user_id}: {months} mo. for {amount} {currency}.",
|
"admin_new_payment_notification": "\ud83d\udcb3 Payment received from user {user_id}: {months} mo. for {amount} {currency}.",
|
||||||
|
"admin_promo_activation_notification": "\ud83c\udf81 Promo code {code} activated by user {user_id} (+{bonus_days}d).",
|
||||||
|
|
||||||
"error_unknown": "An unknown error occurred."
|
"error_unknown": "An unknown error occurred."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,6 +216,7 @@
|
|||||||
|
|
||||||
"admin_new_trial_notification": "\ud83c\udf21 Пользователь {user_id} активировал пробный период до {end_date}.",
|
"admin_new_trial_notification": "\ud83c\udf21 Пользователь {user_id} активировал пробный период до {end_date}.",
|
||||||
"admin_new_payment_notification": "\ud83d\udcb3 Получен платеж от пользователя {user_id}: {months} мес. за {amount} {currency}.",
|
"admin_new_payment_notification": "\ud83d\udcb3 Получен платеж от пользователя {user_id}: {months} мес. за {amount} {currency}.",
|
||||||
|
"admin_promo_activation_notification": "\ud83c\udf81 Пользователь {user_id} активировал промокод {code} (+{bonus_days} дн.)",
|
||||||
|
|
||||||
"error_unknown": "Произошла неизвестная ошибка."
|
"error_unknown": "Произошла неизвестная ошибка."
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user