| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import type { OrgSubscription, PlanId, ProjectSelectedAddon } from '@/data/subscriptions/types'
- import { IS_PLATFORM } from '@/lib/constants'
- export const getAddons = (selectedAddons: ProjectSelectedAddon[]) => {
- const computeInstance = selectedAddons.find((addon) => addon.type === 'compute_instance')
- const pitr = selectedAddons.find((addon) => addon.type === 'pitr')
- const customDomain = selectedAddons.find((addon) => addon.type === 'custom_domain')
- const ipv4 = selectedAddons.find((addon) => addon.type === 'ipv4')
- return { computeInstance, pitr, customDomain, ipv4 }
- }
- export const subscriptionHasHipaaAddon = (subscription?: OrgSubscription): boolean => {
- if (!IS_PLATFORM) return false
- return (subscription?.addons ?? []).some(
- (addon) => addon.briven_prod_id === 'addon_security_hipaa'
- )
- }
- export const billingPartnerLabel = (billingPartner?: string) => {
- if (!billingPartner) return billingPartner
- switch (billingPartner) {
- case 'fly':
- return 'Fly.io'
- case 'aws':
- return 'AWS'
- case 'vercel_marketplace':
- return 'Vercel'
- default:
- return billingPartner
- }
- }
- type PlanChangeType = 'upgrade' | 'downgrade' | 'none'
- export const getPlanChangeType = (
- fromPlan: PlanId | undefined,
- toPlan: PlanId | undefined
- ): PlanChangeType => {
- const planChangeTypes: Record<PlanId, Record<PlanId, PlanChangeType>> = {
- free: {
- free: 'none',
- pro: 'upgrade',
- team: 'upgrade',
- enterprise: 'upgrade',
- platform: 'upgrade',
- },
- pro: {
- free: 'downgrade',
- pro: 'none',
- team: 'upgrade',
- enterprise: 'upgrade',
- platform: 'upgrade',
- },
- team: {
- free: 'downgrade',
- pro: 'downgrade',
- team: 'none',
- enterprise: 'upgrade',
- platform: 'upgrade',
- },
- enterprise: {
- free: 'downgrade',
- pro: 'downgrade',
- team: 'downgrade',
- enterprise: 'none',
- platform: 'upgrade',
- },
- platform: {
- free: 'downgrade',
- pro: 'downgrade',
- team: 'downgrade',
- enterprise: 'downgrade',
- platform: 'none',
- },
- }
- if (!fromPlan || !toPlan) {
- return 'none'
- }
- return planChangeTypes[fromPlan]?.[toPlan] ?? 'none'
- }
|