chore: ruff format 3 files
This commit is contained in:
@@ -127,22 +127,41 @@ async def get_sales_summary(
|
||||
# Consolidated subscription counts: active paid, active trial, new trials in period
|
||||
sub_counts_result = await db.execute(
|
||||
select(
|
||||
func.sum(case(
|
||||
(and_(Subscription.status == SubscriptionStatus.ACTIVE.value, Subscription.is_trial.is_(False)), 1),
|
||||
else_=0,
|
||||
)).label('active_paid'),
|
||||
func.sum(case(
|
||||
(and_(Subscription.status == SubscriptionStatus.ACTIVE.value, Subscription.is_trial.is_(True)), 1),
|
||||
else_=0,
|
||||
)).label('active_trial'),
|
||||
func.sum(case(
|
||||
(and_(
|
||||
Subscription.is_trial.is_(True),
|
||||
Subscription.created_at >= period_start,
|
||||
Subscription.created_at <= period_end,
|
||||
), 1),
|
||||
else_=0,
|
||||
)).label('new_trials'),
|
||||
func.sum(
|
||||
case(
|
||||
(
|
||||
and_(
|
||||
Subscription.status == SubscriptionStatus.ACTIVE.value, Subscription.is_trial.is_(False)
|
||||
),
|
||||
1,
|
||||
),
|
||||
else_=0,
|
||||
)
|
||||
).label('active_paid'),
|
||||
func.sum(
|
||||
case(
|
||||
(
|
||||
and_(
|
||||
Subscription.status == SubscriptionStatus.ACTIVE.value, Subscription.is_trial.is_(True)
|
||||
),
|
||||
1,
|
||||
),
|
||||
else_=0,
|
||||
)
|
||||
).label('active_trial'),
|
||||
func.sum(
|
||||
case(
|
||||
(
|
||||
and_(
|
||||
Subscription.is_trial.is_(True),
|
||||
Subscription.created_at >= period_start,
|
||||
Subscription.created_at <= period_end,
|
||||
),
|
||||
1,
|
||||
),
|
||||
else_=0,
|
||||
)
|
||||
).label('new_trials'),
|
||||
)
|
||||
)
|
||||
row = sub_counts_result.one()
|
||||
|
||||
@@ -1093,7 +1093,9 @@ async def update_user_subscription(
|
||||
# Синхронизируем с RemnaWave (discovery/create + сброс трафика по админ-настройке)
|
||||
try:
|
||||
await _sync_subscription_to_panel(
|
||||
db, user, subscription,
|
||||
db,
|
||||
user,
|
||||
subscription,
|
||||
reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH,
|
||||
reset_traffic_reason='смена тарифа (cabinet admin)',
|
||||
)
|
||||
|
||||
@@ -349,7 +349,10 @@ async def send_cart_notification_after_topup(
|
||||
missing = cart_total - balance
|
||||
template = texts.get('BALANCE_TOPPED_UP_CART_INSUFFICIENT', '')
|
||||
message_text = template.format(
|
||||
amount=fmt(amount_kopeks), balance=fmt(balance), cart_total=fmt(cart_total), missing=fmt(missing),
|
||||
amount=fmt(amount_kopeks),
|
||||
balance=fmt(balance),
|
||||
cart_total=fmt(cart_total),
|
||||
missing=fmt(missing),
|
||||
)
|
||||
|
||||
if not message_text:
|
||||
@@ -366,14 +369,18 @@ async def send_cart_notification_after_topup(
|
||||
callback_data='return_to_saved_cart',
|
||||
)
|
||||
],
|
||||
[types.InlineKeyboardButton(
|
||||
text=texts.get('MY_BALANCE_BUTTON', '💰 Balance'),
|
||||
callback_data='menu_balance',
|
||||
)],
|
||||
[types.InlineKeyboardButton(
|
||||
text=texts.get('MAIN_MENU_BUTTON', '🏠 Menu'),
|
||||
callback_data='back_to_menu',
|
||||
)],
|
||||
[
|
||||
types.InlineKeyboardButton(
|
||||
text=texts.get('MY_BALANCE_BUTTON', '💰 Balance'),
|
||||
callback_data='menu_balance',
|
||||
)
|
||||
],
|
||||
[
|
||||
types.InlineKeyboardButton(
|
||||
text=texts.get('MAIN_MENU_BUTTON', '🏠 Menu'),
|
||||
callback_data='back_to_menu',
|
||||
)
|
||||
],
|
||||
]
|
||||
)
|
||||
await bot.send_message(
|
||||
|
||||
Reference in New Issue
Block a user