feat: show optional serivce description before payment

This commit is contained in:
3252a8
2026-05-20 21:55:22 +03:00
parent d8a1da1f13
commit 7521f89ffd
51 changed files with 1199 additions and 499 deletions
@@ -125,11 +125,7 @@ def payment_link_message_text(
"topup",
"premium_topup",
}
key = (
"payment_link_message_traffic"
if traffic_like
else "payment_link_message"
)
key = "payment_link_message_traffic" if traffic_like else "payment_link_message"
body = translator(
key,
months=int(parts.months),
@@ -35,9 +35,7 @@ async def resolve_user_language(
if db_user is None:
db_user = await user_dal.get_user_by_id(session, user_id)
language = (
db_user.language_code
if db_user and db_user.language_code
else settings.DEFAULT_LANGUAGE
db_user.language_code if db_user and db_user.language_code else settings.DEFAULT_LANGUAGE
)
return db_user, language
@@ -256,9 +254,7 @@ async def finalize_successful_payment(
activation_months = (
int(float(req.months)) if is_subscription else int(float(req.traffic_amount or req.months))
)
traffic_gb_for_activation = (
float(req.traffic_amount or req.months) if is_traffic else None
)
traffic_gb_for_activation = float(req.traffic_amount or req.months) if is_traffic else None
try:
activation = await req.subscription_service.activate_subscription(
@@ -308,9 +304,7 @@ async def finalize_successful_payment(
base_end_date = activation.get("end_date") if activation else None
final_end_date = base_end_date
applied_referee_bonus_days = 0
applied_promo_bonus_days = (
activation.get("applied_promo_bonus_days", 0) if activation else 0
)
applied_promo_bonus_days = activation.get("applied_promo_bonus_days", 0) if activation else 0
inviter_name: Optional[str] = None
if referral_bonus and referral_bonus.get("referee_new_end_date"):
@@ -351,9 +345,7 @@ async def finalize_successful_payment(
log_prefix=req.log_prefix,
)
refreshed_payment = await payment_dal.get_payment_by_db_id(
req.session, req.payment.payment_id
)
refreshed_payment = await payment_dal.get_payment_by_db_id(req.session, req.payment.payment_id)
tariff_key = getattr(refreshed_payment or req.payment, "tariff_key", None)
await notify_admins_payment_received(
@@ -36,9 +36,7 @@ async def lookup_payment_by_order_or_provider_id(
if payment_db_id is not None:
payment = await payment_dal.get_payment_by_db_id(session, payment_db_id)
if not payment and provider_payment_id:
payment = await payment_dal.get_payment_by_provider_payment_id(
session, provider_payment_id
)
payment = await payment_dal.get_payment_by_provider_payment_id(session, provider_payment_id)
return payment
@@ -54,9 +52,7 @@ async def notify_user_payment_failed(
"""Send the localized ``payment_failed`` text to the user; never raises."""
db_user = payment.user or await user_dal.get_user_by_id(session, payment.user_id)
language = (
db_user.language_code
if db_user and db_user.language_code
else settings.DEFAULT_LANGUAGE
db_user.language_code if db_user and db_user.language_code else settings.DEFAULT_LANGUAGE
)
translator = make_translator(i18n, language)
try: