diff --git a/server/lib/billing/features.ts b/server/lib/billing/features.ts index 501fba36..3fec53b4 100644 --- a/server/lib/billing/features.ts +++ b/server/lib/billing/features.ts @@ -56,22 +56,22 @@ export function getFeatureIdByMetricId( export type FeaturePriceSet = Partial>; -export const homeLabFeaturePriceSet: FeaturePriceSet = { +export const tier1FeaturePriceSet: FeaturePriceSet = { [FeatureId.TIER1]: "price_1SzVE3D3Ee2Ir7Wm6wT5Dl3G" }; -export const homeLabFeaturePriceSetSandbox: FeaturePriceSet = { +export const tier1FeaturePriceSetSandbox: FeaturePriceSet = { [FeatureId.TIER1]: "price_1SxgpPDCpkOb237Bfo4rIsoT" }; -export function getHomeLabFeaturePriceSet(): FeaturePriceSet { +export function getTier1FeaturePriceSet(): FeaturePriceSet { if ( process.env.ENVIRONMENT == "prod" && process.env.SANDBOX_MODE !== "true" ) { - return homeLabFeaturePriceSet; + return tier1FeaturePriceSet; } else { - return homeLabFeaturePriceSetSandbox; + return tier1FeaturePriceSetSandbox; } } @@ -83,7 +83,7 @@ export const tier2FeaturePriceSetSandbox: FeaturePriceSet = { [FeatureId.USERS]: "price_1SxaEHDCpkOb237BD9lBkPiR" }; -export function getStarterFeaturePriceSet(): FeaturePriceSet { +export function getTier2FeaturePriceSet(): FeaturePriceSet { if ( process.env.ENVIRONMENT == "prod" && process.env.SANDBOX_MODE !== "true" @@ -102,7 +102,7 @@ export const tier3FeaturePriceSetSandbox: FeaturePriceSet = { [FeatureId.USERS]: "price_1SxaEODCpkOb237BiXdCBSfs" }; -export function getScaleFeaturePriceSet(): FeaturePriceSet { +export function getTier3FeaturePriceSet(): FeaturePriceSet { if ( process.env.ENVIRONMENT == "prod" && process.env.SANDBOX_MODE !== "true" @@ -116,9 +116,9 @@ export function getScaleFeaturePriceSet(): FeaturePriceSet { export function getFeatureIdByPriceId(priceId: string): FeatureId | undefined { // Check all feature price sets const allPriceSets = [ - getHomeLabFeaturePriceSet(), - getStarterFeaturePriceSet(), - getScaleFeaturePriceSet() + getTier1FeaturePriceSet(), + getTier2FeaturePriceSet(), + getTier3FeaturePriceSet() ]; for (const priceSet of allPriceSets) { diff --git a/server/private/routers/billing/changeTier.ts b/server/private/routers/billing/changeTier.ts index ee60c0ec..3c9b8e43 100644 --- a/server/private/routers/billing/changeTier.ts +++ b/server/private/routers/billing/changeTier.ts @@ -22,9 +22,9 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import stripe from "#private/lib/stripe"; import { - getHomeLabFeaturePriceSet, - getScaleFeaturePriceSet, - getStarterFeaturePriceSet, + getTier1FeaturePriceSet, + getTier3FeaturePriceSet, + getTier2FeaturePriceSet, FeatureId, type FeaturePriceSet } from "@server/lib/billing"; @@ -113,11 +113,11 @@ export async function changeTier( // Get the target tier's price set let targetPriceSet: FeaturePriceSet; if (tier === "tier1") { - targetPriceSet = getHomeLabFeaturePriceSet(); + targetPriceSet = getTier1FeaturePriceSet(); } else if (tier === "tier2") { - targetPriceSet = getStarterFeaturePriceSet(); + targetPriceSet = getTier2FeaturePriceSet(); } else if (tier === "tier3") { - targetPriceSet = getScaleFeaturePriceSet(); + targetPriceSet = getTier3FeaturePriceSet(); } else { return next(createHttpError(HttpCode.BAD_REQUEST, "Invalid tier")); } diff --git a/server/private/routers/billing/createCheckoutSession.ts b/server/private/routers/billing/createCheckoutSession.ts index e5bb95db..b35c6532 100644 --- a/server/private/routers/billing/createCheckoutSession.ts +++ b/server/private/routers/billing/createCheckoutSession.ts @@ -23,9 +23,9 @@ import config from "@server/lib/config"; import { fromError } from "zod-validation-error"; import stripe from "#private/lib/stripe"; import { - getHomeLabFeaturePriceSet, - getScaleFeaturePriceSet, - getStarterFeaturePriceSet + getTier1FeaturePriceSet, + getTier3FeaturePriceSet, + getTier2FeaturePriceSet } from "@server/lib/billing"; import { getLineItems } from "@server/lib/billing/getLineItems"; import Stripe from "stripe"; @@ -88,11 +88,11 @@ export async function createCheckoutSession( let lineItems: Stripe.Checkout.SessionCreateParams.LineItem[]; if (tier === "tier1") { - lineItems = await getLineItems(getHomeLabFeaturePriceSet(), orgId); + lineItems = await getLineItems(getTier1FeaturePriceSet(), orgId); } else if (tier === "tier2") { - lineItems = await getLineItems(getStarterFeaturePriceSet(), orgId); + lineItems = await getLineItems(getTier2FeaturePriceSet(), orgId); } else if (tier === "tier3") { - lineItems = await getLineItems(getScaleFeaturePriceSet(), orgId); + lineItems = await getLineItems(getTier3FeaturePriceSet(), orgId); } else { return next(createHttpError(HttpCode.BAD_REQUEST, "Invalid plan")); } diff --git a/server/private/routers/billing/hooks/getSubType.ts b/server/private/routers/billing/hooks/getSubType.ts index a38290eb..44cfe002 100644 --- a/server/private/routers/billing/hooks/getSubType.ts +++ b/server/private/routers/billing/hooks/getSubType.ts @@ -15,9 +15,9 @@ import { getLicensePriceSet, } from "@server/lib/billing/licenses"; import { - getHomeLabFeaturePriceSet, - getStarterFeaturePriceSet, - getScaleFeaturePriceSet, + getTier1FeaturePriceSet, + getTier2FeaturePriceSet, + getTier3FeaturePriceSet, } from "@server/lib/billing/features"; import Stripe from "stripe"; import { Tier } from "@server/types/Tiers"; @@ -40,19 +40,19 @@ export function getSubType(fullSubscription: Stripe.Response { + db.prepare(`ALTER TABLE 'limits' ADD 'override' integer DEFAULT false;`).run(); + db.prepare(`ALTER TABLE 'subscriptionItems' ADD 'featureId' text;`).run(); + db.prepare(`ALTER TABLE 'subscriptions' ADD 'version' integer;`).run(); + db.prepare(`ALTER TABLE 'subscriptions' ADD 'type' text;`).run(); + })(); + + console.log(`Migrated database`); + } catch (e) { + console.log("Failed to migrate db:", e); + throw e; + } + + console.log(`${version} migration complete`); +}