add-on-codes.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import { PaidSubscription } from "../../../../../types/subscription/dashboard/subscription"
  2. import { PendingPaymentProviderPlan } from "../../../../../types/subscription/plan"
  3. export const AI_ASSIST_STANDALONE_MONTHLY_PLAN_CODE = 'assistant'
  4. export const AI_ADD_ON_CODE = 'assistant'
  5. // we dont want translations on plan or add-on names
  6. export const ADD_ON_NAME = "AI Assist"
  7. export const AI_ASSIST_STANDALONE_ANNUAL_PLAN_CODE = 'assistant-annual'
  8. export function isStandaloneAiPlanCode(planCode?: string) {
  9. return planCode === AI_ASSIST_STANDALONE_MONTHLY_PLAN_CODE || planCode === AI_ASSIST_STANDALONE_ANNUAL_PLAN_CODE
  10. }
  11. export function hasPendingAiAddonCancellation(subscription: PaidSubscription){
  12. const pendingPlan = subscription.pendingPlan as PendingPaymentProviderPlan
  13. const hasAiAddon = subscription.addOns?.some(
  14. addOn => addOn.addOnCode === AI_ADD_ON_CODE
  15. )
  16. // cancellation of entire plan counts as removing the add-on
  17. if(hasAiAddon && !pendingPlan){
  18. return true
  19. }
  20. return hasAiAddon &&
  21. !pendingPlan.addOns?.some(addOn => addOn.code === AI_ADD_ON_CODE)
  22. }