import { PaidSubscription } from '../../../../../types/subscription/dashboard/subscription'
import { PendingPaymentProviderPlan } from '../../../../../types/subscription/plan'

export const AI_ASSIST_STANDALONE_MONTHLY_PLAN_CODE = 'assistant'
export const AI_ADD_ON_CODE = 'assistant'
// we dont want translations on plan or add-on names
export const ADD_ON_NAME = 'AI Assist'
export const AI_ASSIST_STANDALONE_ANNUAL_PLAN_CODE = 'assistant-annual'

export function isStandaloneAiPlanCode(planCode?: string) {
  return (
    planCode === AI_ASSIST_STANDALONE_MONTHLY_PLAN_CODE ||
    planCode === AI_ASSIST_STANDALONE_ANNUAL_PLAN_CODE
  )
}

export function hasPendingAiAddonCancellation(subscription: PaidSubscription) {
  const pendingPlan = subscription.pendingPlan as PendingPaymentProviderPlan

  const hasAiAddon = subscription.addOns?.some(
    addOn => addOn.addOnCode === AI_ADD_ON_CODE
  )

  // cancellation of entire plan counts as removing the add-on
  if (hasAiAddon && !pendingPlan) {
    return true
  }

  return (
    hasAiAddon &&
    !pendingPlan.addOns?.some(addOn => addOn.code === AI_ADD_ON_CODE)
  )
}
