From 30e39ccb01f15e9af1cc4c8fa40787c40bcf8947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Jedlicska?= <57442769+gjedlicska@users.noreply.github.com> Date: Tue, 15 Apr 2025 08:55:33 +0200 Subject: [PATCH] fix(gatekeeper): fix subscription upgrades (#4411) --- .../modules/gatekeeper/services/upgrades.ts | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/packages/server/modules/gatekeeper/services/upgrades.ts b/packages/server/modules/gatekeeper/services/upgrades.ts index 0026585bc..03a2c1087 100644 --- a/packages/server/modules/gatekeeper/services/upgrades.ts +++ b/packages/server/modules/gatekeeper/services/upgrades.ts @@ -1,20 +1,22 @@ 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') - }) -]) +const WorkspacePlansUpgradeMapping: Record = { + academia: [], + unlimited: [], + business: [], + businessInvoiced: [], + plus: [], + plusInvoiced: [], + starter: [], + starterInvoiced: [], + free: ['team', 'teamUnlimited', 'pro', 'proUnlimited'], + team: ['team', 'teamUnlimited', 'pro', 'proUnlimited'], + teamUnlimited: ['teamUnlimited', 'pro', 'proUnlimited'], + teamUnlimitedInvoiced: [], + pro: ['pro', 'proUnlimited'], + proUnlimited: ['proUnlimited'], + proUnlimitedInvoiced: [] +} export const isUpgradeWorkspacePlanValid = ({ current, @@ -23,5 +25,5 @@ export const isUpgradeWorkspacePlanValid = ({ current: WorkspacePlans upgrade: WorkspacePlans }): boolean => { - return WorkspacePlansUpgradeMapping.safeParse({ current, upgrade }).success + return WorkspacePlansUpgradeMapping[current].includes(upgrade) }