import Stripe from 'stripe'

export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
  apiVersion: '2025-04-30.basil' as any,
  typescript: true,
})

// Price IDs from Stripe
export const PRICE_IDS = {
  TESTE: 'price_1Sw6zbGq8gFtWtyfFMuknvQQ',
  STARTER: 'price_1Sw6zbGq8gFtWtyf14b5v2iG',
  PRO: 'price_1Sw6zcGq8gFtWtyfRGDo58Q7',
  ENTERPRISE: 'price_1Sw6zcGq8gFtWtyfw9TNA7Ax',
} as const

// Map price ID → plan + credits
export const PRICE_TO_PLAN: Record<string, { plan: 'FREE' | 'STARTER' | 'PRO' | 'ENTERPRISE'; credits: number }> = {
  [PRICE_IDS.TESTE]: { plan: 'PRO', credits: 100 },
  [PRICE_IDS.STARTER]: { plan: 'STARTER', credits: 30 },
  [PRICE_IDS.PRO]: { plan: 'PRO', credits: 100 },
  [PRICE_IDS.ENTERPRISE]: { plan: 'ENTERPRISE', credits: 500 },
}

export const PLANS = {
  free: {
    name: 'Gratuito',
    price: 0,
    priceId: null,
    credits: 5,
    features: [
      '5 créditos por mês',
      'Consultor IA básico',
      '3 pesquisas por dia',
      'Modelos essenciais',
    ],
  },
  teste: {
    name: 'Teste',
    price: 1,
    priceId: PRICE_IDS.TESTE,
    credits: 100,
    features: [
      '100 créditos (teste)',
      'Todas as funcionalidades Pro',
      'Apenas R$0,01/mês',
      'Para fins de teste',
    ],
  },
  starter: {
    name: 'Starter',
    price: 9700,
    priceId: PRICE_IDS.STARTER,
    credits: 30,
    features: [
      '30 créditos por mês',
      'Consultor IA avançado',
      'Jurisprudência premium',
      'Modelos personalizáveis',
      'Atendimento por email',
    ],
  },
  pro: {
    name: 'Pro',
    price: 19700,
    priceId: PRICE_IDS.PRO,
    credits: 100,
    features: [
      '100 créditos por mês',
      'Consultor IA avançado',
      'Jurisprudência premium',
      'Modelos personalizáveis',
      'Gestão de prazos',
      'Atendimento prioritário',
    ],
  },
  enterprise: {
    name: 'Enterprise',
    price: 49700,
    priceId: PRICE_IDS.ENTERPRISE,
    credits: 500,
    features: [
      '500 créditos por mês',
      'Tudo do plano Pro',
      'Acesso à API',
      'Até 10 operadores',
      'SLA 99.9%',
      'Gestor de conta dedicado',
    ],
  },
} as const
