feat: Support 'free' subscription status in UI

This commit is contained in:
2026-03-13 06:01:33 +00:00
parent 9ec7613ee5
commit 582ad86921

View File

@@ -20,7 +20,7 @@ export interface Organization {
}
export interface Subscription {
status: 'trial' | 'active' | 'paused' | 'expired' | 'cancelled'
status: 'trial' | 'active' | 'paused' | 'expired' | 'cancelled' | 'free'
plan: 'starter' | 'business' | 'enterprise'
trialEndsAt: string | null
subscriptionEndsAt: string | null
@@ -47,13 +47,20 @@ export const useAuthStore = defineStore('auth', () => {
const orgLogo = computed(() => organization.value?.logo_url || null)
// Subscription computed
const isFreeAccount = computed(() => subscription.value?.status === 'free')
const isTrialActive = computed(() => subscription.value?.status === 'trial' && (subscription.value?.daysRemaining ?? 0) > 0)
const isSubscriptionActive = computed(() => subscription.value?.status === 'active' || isTrialActive.value)
const isSubscriptionActive = computed(() =>
subscription.value?.status === 'active' ||
subscription.value?.status === 'free' ||
isTrialActive.value
)
const isSubscriptionExpired = computed(() =>
!isFreeAccount.value && (
subscription.value?.status === 'expired' ||
subscription.value?.status === 'paused' ||
(subscription.value?.status === 'trial' && (subscription.value?.daysRemaining ?? 0) <= 0)
)
)
const trialDaysRemaining = computed(() => subscription.value?.daysRemaining ?? null)
const showTrialWarning = computed(() => isTrialActive.value && (trialDaysRemaining.value ?? 0) <= 7)
@@ -173,6 +180,7 @@ export const useAuthStore = defineStore('auth', () => {
fullName,
orgName,
orgLogo,
isFreeAccount,
isTrialActive,
isSubscriptionActive,
isSubscriptionExpired,