feat: add LIMITED subscription status support with traffic-exhausted UX

- Add is_limited to Subscription type
- Show yellow traffic-exhausted badge on Subscription and AdminUsers pages
- SubscriptionCardExpired: amber theme with warning icon and buy-traffic CTA for limited
- Dashboard: route limited subscriptions to SubscriptionCardExpired
- Subscription page: show additional options (buy traffic) for limited subs
- Use is_limited boolean instead of status string comparison
- Add trafficLimited translations for ru, en, zh, fa
- AdminUserDetail StatusBadge: add limited yellow styling
This commit is contained in:
Fringg
2026-03-12 18:33:37 +03:00
parent d9bfb8427c
commit b4f9f332cf
10 changed files with 281 additions and 126 deletions

View File

@@ -147,14 +147,18 @@ function UserRow({ user, onClick, formatAmount }: UserRowProps) {
? 'border-success-500/30 bg-success-500/20 text-success-400'
: user.subscription_status === 'trial'
? 'border-accent-500/30 bg-accent-500/20 text-accent-400'
: 'border-warning-500/30 bg-warning-500/20 text-warning-400'
: user.subscription_status === 'limited'
? 'border-yellow-500/30 bg-yellow-500/20 text-yellow-400'
: 'border-warning-500/30 bg-warning-500/20 text-warning-400'
}`}
>
{user.subscription_status === 'active'
? t('admin.users.status.subscription')
: user.subscription_status === 'trial'
? t('admin.users.status.trial')
: t('admin.users.status.expired')}
: user.subscription_status === 'limited'
? t('subscription.trafficLimited')
: t('admin.users.status.expired')}
</span>
)}
</div>