Files
speckle-server/packages/server/modules/gatekeeper/services/upgrades.ts
T
2025-03-11 17:52:18 +01:00

28 lines
647 B
TypeScript

import { WorkspacePlans } from '@speckle/shared'
import { z } from 'zod'
const WorkspacePlansUpgradeMapping = z.union([
z.object({
current: z.literal('free'),
upgrade: z.union([z.literal('team'), z.literal('pro')])
}),
z.object({
current: z.literal('team'),
upgrade: z.union([z.literal('team'), z.literal('pro')])
}),
z.object({
current: z.literal('pro'),
upgrade: z.literal('pro')
})
])
export const isUpgradeWorkspacePlanValid = ({
current,
upgrade
}: {
current: WorkspacePlans
upgrade: WorkspacePlans
}): boolean => {
return WorkspacePlansUpgradeMapping.safeParse({ current, upgrade }).success
}