Files
speckle-server/packages/server/modules/gatekeeperCore/domain/billing.ts
T
2025-02-27 11:18:30 +02:00

35 lines
894 B
TypeScript

import {
PaidWorkspacePlans,
PaidWorkspacePlanStatuses,
TrialEnabledPaidWorkspacePlans,
TrialWorkspacePlanStatuses,
UnpaidWorkspacePlans,
UnpaidWorkspacePlanStatuses
} from '@speckle/shared'
/**
* This includes the pricing plans (Stripe products) a customer can sub to
*/
export type WorkspacePricingProducts = PaidWorkspacePlans | 'guest'
type BaseWorkspacePlan = {
workspaceId: string
createdAt: Date
}
export type PaidWorkspacePlan = BaseWorkspacePlan & {
name: PaidWorkspacePlans
status: PaidWorkspacePlanStatuses
}
export type TrialWorkspacePlan = BaseWorkspacePlan & {
name: TrialEnabledPaidWorkspacePlans
status: TrialWorkspacePlanStatuses
}
export type UnpaidWorkspacePlan = BaseWorkspacePlan & {
name: UnpaidWorkspacePlans
status: UnpaidWorkspacePlanStatuses
}
export type WorkspacePlan = PaidWorkspacePlan | TrialWorkspacePlan | UnpaidWorkspacePlan