export type PlanId = 'free' | 'dev' | 'pro' | 'enterprise';

export interface Plan {
  id: PlanId;
  name: string;
  price: number | null;         // null = custom / contact us
  priceLabel: string;
  period: string;
  requestsPerMonth: number;     // Infinity for enterprise
  maxKeys: number;              // Infinity for enterprise
  features: string[];
  cta: string;
}

export const PLANS: Record<PlanId, Plan> = {
  free: {
    id: 'free',
    name: 'Free',
    price: 0,
    priceLabel: '$0',
    period: 'forever',
    requestsPerMonth: 1_000,
    maxKeys: 1,
    features: [
      '1,000 requests per month',
      '1 API key',
      'JSON + JSONL access',
      'Community support'
    ],
    cta: 'Switch to Free'
  },
  dev: {
    id: 'dev',
    name: 'Developer',
    price: 100,
    priceLabel: '$100',
    period: '/ month',
    requestsPerMonth: 50_000,
    maxKeys: 5,
    features: [
      '50,000 requests per month',
      '5 API keys',
      'All response shapes',
      'Email support'
    ],
    cta: 'Switch to Developer'
  },
  pro: {
    id: 'pro',
    name: 'Professional',
    price: 1000,
    priceLabel: '$1,000',
    period: '/ month',
    requestsPerMonth: 500_000,
    maxKeys: 20,
    features: [
      '500,000 requests per month',
      '20 API keys',
      'Priority support',
      'SLA on uptime'
    ],
    cta: 'Switch to Pro'
  },
  enterprise: {
    id: 'enterprise',
    name: 'Enterprise',
    price: null,
    priceLabel: 'Custom',
    period: '',
    requestsPerMonth: Number.POSITIVE_INFINITY,
    maxKeys: Number.POSITIVE_INFINITY,
    features: [
      'Unlimited requests',
      'Unlimited keys',
      'Dedicated support',
      'Custom datasets and SLAs'
    ],
    cta: 'Contact us'
  }
};

export const PLAN_ORDER: PlanId[] = ['free', 'dev', 'pro', 'enterprise'];
