Files
dokploy/apps/dokploy/server/utils/stripe.ts
Mauricio Siu 781bf5e116 refactor: remove commented-out code and clean up Stripe router
- Eliminated outdated comments related to legacy plan detection and current pricing calculations.
- Improved code readability by removing unnecessary comments that no longer serve a purpose.
2026-02-19 14:53:28 -06:00

72 lines
2.3 KiB
TypeScript

export const WEBSITE_URL =
process.env.NODE_ENV === "development"
? "http://localhost:3000"
: process.env.SITE_URL;
export const BASE_PRICE_MONTHLY_ID = process.env.BASE_PRICE_MONTHLY_ID!;
export const BASE_ANNUAL_MONTHLY_ID = process.env.BASE_ANNUAL_MONTHLY_ID!;
export const PRODUCT_MONTHLY_ID = process.env.PRODUCT_MONTHLY_ID!;
export const PRODUCT_ANNUAL_ID = process.env.PRODUCT_ANNUAL_ID!;
export const LEGACY_PRICE_IDS = [
process.env.BASE_PRICE_MONTHLY_ID,
process.env.BASE_ANNUAL_MONTHLY_ID,
].filter(Boolean) as string[];
export const HOBBY_PRODUCT_ID = process.env.HOBBY_PRODUCT_ID ?? "";
export const HOBBY_PRICE_MONTHLY_ID = process.env.HOBBY_PRICE_MONTHLY_ID ?? "";
export const HOBBY_PRICE_ANNUAL_ID = process.env.HOBBY_PRICE_ANNUAL_ID ?? "";
export const STARTUP_PRODUCT_ID = process.env.STARTUP_PRODUCT_ID ?? "";
export const STARTUP_BASE_PRICE_MONTHLY_ID =
process.env.STARTUP_BASE_PRICE_MONTHLY_ID ?? "";
export const STARTUP_BASE_PRICE_ANNUAL_ID =
process.env.STARTUP_BASE_PRICE_ANNUAL_ID ?? "";
export type BillingTier = "legacy" | "hobby" | "startup";
export const getStripeItems = (
tier: BillingTier,
serverQuantity: number,
isAnnual: boolean,
) => {
const items: { price: string; quantity: number }[] = [];
if (tier === "legacy") {
items.push({
price: isAnnual ? BASE_ANNUAL_MONTHLY_ID : BASE_PRICE_MONTHLY_ID,
quantity: serverQuantity,
});
return items;
}
if (tier === "hobby") {
const price = isAnnual
? HOBBY_PRICE_ANNUAL_ID || BASE_ANNUAL_MONTHLY_ID
: HOBBY_PRICE_MONTHLY_ID || BASE_PRICE_MONTHLY_ID;
items.push({ price, quantity: serverQuantity });
return items;
}
// Startup: base incluye 3 servidores; del 4º en adelante = precio Hobby ($4.50 c/u)
if (tier === "startup") {
const basePrice = isAnnual
? STARTUP_BASE_PRICE_ANNUAL_ID
: STARTUP_BASE_PRICE_MONTHLY_ID;
const extraServerPrice = isAnnual
? HOBBY_PRICE_ANNUAL_ID || BASE_ANNUAL_MONTHLY_ID
: HOBBY_PRICE_MONTHLY_ID || BASE_PRICE_MONTHLY_ID;
if (basePrice) items.push({ price: basePrice, quantity: 1 });
const extraQty = Math.max(0, serverQuantity - 3);
if (extraQty > 0)
items.push({ price: extraServerPrice, quantity: extraQty });
return items;
}
// Fallback legacy
items.push({
price: isAnnual ? BASE_ANNUAL_MONTHLY_ID : BASE_PRICE_MONTHLY_ID,
quantity: serverQuantity,
});
return items;
};