import type {
  GPSTier,
  SupportPlan,
  BlockTimeOption,
  VoIPTier,
  WebHostingTier,
  EmailTier,
  VoIPHardware
} from '@/types/quote';

/**
 * GPS Monitoring Tiers
 */
export const gpsTiers: GPSTier[] = [
  {
    id: 'basic',
    name: 'Basic',
    description: 'Essential monitoring for small environments',
    pricePerEndpoint: 19,
    features: [
      'Remote monitoring & management',
      '8x5 help desk support',
      'Patch management',
      'Basic antivirus protection',
      'Monthly health reports',
    ],
    recommended: false,
  },
  {
    id: 'pro',
    name: 'Pro',
    description: 'Comprehensive protection for growing businesses',
    pricePerEndpoint: 26,
    features: [
      'Everything in Basic, plus:',
      '24x7 help desk support',
      'Advanced endpoint protection',
      'Backup & disaster recovery',
      'Network monitoring',
      'Quarterly business reviews',
    ],
    recommended: true,
  },
  {
    id: 'advanced',
    name: 'Advanced',
    description: 'Enterprise-grade security and compliance',
    pricePerEndpoint: 39,
    features: [
      'Everything in Pro, plus:',
      'Dedicated account manager',
      'Virtual CIO services',
      'Compliance management',
      'Security awareness training',
      'Advanced threat detection',
      'Priority response SLA',
    ],
    recommended: false,
  },
];

/**
 * Equipment monitoring pricing
 */
export const equipmentMonitoring = {
  basePrice: 25, // Up to 10 devices
  baseDevices: 10,
  additionalDevicePrice: 3, // Per additional device
};

/**
 * Support Plans
 */
export const supportPlans: SupportPlan[] = [
  {
    id: 'essential',
    name: 'Essential',
    description: 'Basic support for small teams',
    monthlyPrice: 200,
    includedHours: 2,
    effectiveHourlyRate: 100,
    recommended: false,
  },
  {
    id: 'standard',
    name: 'Standard',
    description: 'Balanced support for growing businesses',
    monthlyPrice: 380,
    includedHours: 4,
    effectiveHourlyRate: 95,
    recommended: true,
  },
  {
    id: 'premium',
    name: 'Premium',
    description: 'Enhanced support with faster response',
    monthlyPrice: 540,
    includedHours: 6,
    effectiveHourlyRate: 90,
    recommended: false,
  },
  {
    id: 'priority',
    name: 'Priority',
    description: 'Top-tier support with dedicated resources',
    monthlyPrice: 850,
    includedHours: 10,
    effectiveHourlyRate: 85,
    recommended: false,
  },
];

/**
 * Block Time Options
 */
export const blockTimeOptions: BlockTimeOption[] = [
  {
    id: 'block-10',
    hours: 10,
    price: 1500,
    effectiveHourlyRate: 150,
  },
  {
    id: 'block-20',
    hours: 20,
    price: 2600,
    effectiveHourlyRate: 130,
  },
  {
    id: 'block-30',
    hours: 30,
    price: 3000,
    effectiveHourlyRate: 100,
  },
];

/**
 * VoIP Tiers
 */
export const voipTiers: VoIPTier[] = [
  {
    id: 'voip-basic',
    name: 'Basic',
    description: 'Essential phone features for small teams',
    pricePerUser: 22,
    features: [
      'Unlimited local & long distance',
      'Voicemail to email',
      'Basic auto-attendant',
      'Mobile app',
    ],
    recommended: false,
  },
  {
    id: 'voip-standard',
    name: 'Standard',
    description: 'Full-featured business phone system',
    pricePerUser: 28,
    features: [
      'Everything in Basic, plus:',
      'Video conferencing',
      'Ring groups',
      'Call recording',
      'CRM integration',
    ],
    recommended: true,
  },
  {
    id: 'voip-pro',
    name: 'Pro',
    description: 'Advanced features for power users',
    pricePerUser: 35,
    features: [
      'Everything in Standard, plus:',
      'Advanced analytics',
      'Custom IVR',
      'Supervisor dashboard',
      'API access',
    ],
    recommended: false,
  },
  {
    id: 'voip-callcenter',
    name: 'Call Center',
    description: 'Full call center capabilities',
    pricePerUser: 55,
    features: [
      'Everything in Pro, plus:',
      'Queue management',
      'Wallboards',
      'Agent scoring',
      'Predictive dialing',
      'Real-time monitoring',
    ],
    recommended: false,
  },
];

/**
 * VoIP Hardware Options
 */
export const voipHardware: VoIPHardware[] = [
  {
    id: 'yealink-t33g',
    name: 'Yealink T33G',
    description: 'Entry-level IP phone',
    oneTimePrice: 89,
    monthlyRental: 5,
  },
  {
    id: 'yealink-t54w',
    name: 'Yealink T54W',
    description: 'Mid-range color screen phone',
    oneTimePrice: 169,
    monthlyRental: 8,
  },
  {
    id: 'yealink-t58a',
    name: 'Yealink T58A',
    description: 'Executive phone with video',
    oneTimePrice: 299,
    monthlyRental: 12,
  },
  {
    id: 'headset-basic',
    name: 'USB Headset',
    description: 'Basic USB headset',
    oneTimePrice: 45,
    monthlyRental: 3,
  },
  {
    id: 'headset-wireless',
    name: 'Wireless Headset',
    description: 'Premium wireless headset',
    oneTimePrice: 149,
    monthlyRental: 7,
  },
];

/**
 * Web Hosting Tiers
 */
export const webHostingTiers: WebHostingTier[] = [
  {
    id: 'hosting-starter',
    name: 'Starter',
    description: 'Perfect for simple business sites',
    monthlyPrice: 15,
    storage: '5GB',
    sites: 1,
    features: [
      '5GB SSD storage',
      '1 website',
      'Free SSL certificate',
      'Daily backups',
      'Email support',
    ],
    recommended: false,
  },
  {
    id: 'hosting-business',
    name: 'Business',
    description: 'Great for multiple sites and more traffic',
    monthlyPrice: 35,
    storage: '25GB',
    sites: 5,
    features: [
      '25GB SSD storage',
      '5 websites',
      'Free SSL certificates',
      'Daily backups',
      'Staging environment',
      'Priority support',
    ],
    recommended: true,
  },
  {
    id: 'hosting-commerce',
    name: 'Commerce',
    description: 'E-commerce ready with unlimited sites',
    monthlyPrice: 65,
    storage: '50GB',
    sites: -1, // Unlimited
    features: [
      '50GB SSD storage',
      'Unlimited websites',
      'Free SSL certificates',
      'Real-time backups',
      'CDN included',
      'PCI compliance',
      'Dedicated support',
    ],
    recommended: false,
  },
];

/**
 * Email Tiers
 */
export const emailTiers: EmailTier[] = [
  // WHM (Self-hosted) Options
  {
    id: 'whm-basic',
    name: 'WHM Basic',
    description: 'Self-hosted email basics',
    pricePerMailbox: 2,
    provider: 'whm',
    storage: '5GB',
    features: [
      '5GB storage per mailbox',
      'Webmail access',
      'IMAP/POP3/SMTP',
      'Spam filtering',
    ],
    recommended: false,
  },
  {
    id: 'whm-standard',
    name: 'WHM Standard',
    description: 'Enhanced self-hosted email',
    pricePerMailbox: 4,
    provider: 'whm',
    storage: '10GB',
    features: [
      '10GB storage per mailbox',
      'Webmail access',
      'IMAP/POP3/SMTP',
      'Advanced spam filtering',
      'Email aliases',
    ],
    recommended: false,
  },
  {
    id: 'whm-pro',
    name: 'WHM Pro',
    description: 'Professional self-hosted email',
    pricePerMailbox: 10,
    provider: 'whm',
    storage: '25GB',
    features: [
      '25GB storage per mailbox',
      'Webmail access',
      'IMAP/POP3/SMTP',
      'Premium spam filtering',
      'Email archiving',
      'Shared calendars',
    ],
    recommended: false,
  },
  // Microsoft 365 Options
  {
    id: 'm365-basic',
    name: 'M365 Basic',
    description: 'Microsoft 365 essentials',
    pricePerMailbox: 7,
    provider: 'm365',
    storage: '50GB',
    features: [
      '50GB mailbox',
      'Outlook web access',
      'Mobile apps',
      'OneDrive 1TB',
      'Microsoft Teams',
    ],
    recommended: false,
  },
  {
    id: 'm365-standard',
    name: 'M365 Standard',
    description: 'Full Microsoft 365 experience',
    pricePerMailbox: 14,
    provider: 'm365',
    storage: '50GB',
    features: [
      '50GB mailbox',
      'Desktop Office apps',
      'OneDrive 1TB',
      'Microsoft Teams',
      'SharePoint',
      'Bookings',
    ],
    recommended: true,
  },
  {
    id: 'm365-premium',
    name: 'M365 Premium',
    description: 'Enterprise security and compliance',
    pricePerMailbox: 24,
    provider: 'm365',
    storage: '100GB',
    features: [
      '100GB mailbox',
      'Everything in Standard',
      'Advanced security',
      'Device management',
      'Azure AD Premium',
      'Data loss prevention',
    ],
    recommended: false,
  },
];

/**
 * Industry options for company info
 */
export const industries = [
  'Healthcare',
  'Legal',
  'Finance',
  'Manufacturing',
  'Retail',
  'Professional Services',
  'Other',
] as const;

/**
 * Contact preference options
 */
export const contactPreferences = [
  { id: 'email', label: 'Email' },
  { id: 'phone', label: 'Phone' },
  { id: 'either', label: 'Either' },
] as const;
