feat: added duration_days to /users/subscriptions

This commit is contained in:
2026-08-17 21:33:08 +07:00
parent 8b6c43f89a
commit 05914f0b23
5 changed files with 40 additions and 3 deletions

View File

@@ -72,7 +72,7 @@ async def replace_subscription_addons(
async def ensure_subscription(
user: User, session: AsyncSession, starts_at: datetime
user: User, session: AsyncSession, starts_at: datetime, duration_days: int
) -> Subscription:
subscription = user.subscription
if subscription is not None:
@@ -83,6 +83,7 @@ async def ensure_subscription(
devices=0,
status=SubscriptionStatus.EXPIRED,
expires_at=starts_at,
duration_days=duration_days,
)
session.add(subscription)
await session.flush()
@@ -121,7 +122,7 @@ async def apply_order_now(
pricing: PricingPlans,
now: datetime,
) -> Subscription:
subscription = await ensure_subscription(user, session, now)
subscription = await ensure_subscription(user, session, now, order.duration_days)
addon_ids = [addon.addon_id for addon in order.addons]
current_addons = [] if subscription.devices == 0 else get_subscription_addon_ids(subscription)