/**
 * Service Features Configuration
 *
 * Centralized feature lists and marketing content for all service types.
 * This eliminates duplication across PublicInternetPlans, PublicVpnPlans, and VpnPlanCard.
 */

import {
  Wifi,
  Zap,
  Languages,
  FileText,
  Wrench,
  Globe,
  Router,
  Headphones,
  Package,
  MonitorPlay,
} from "lucide-react";
import type { ReactNode } from "react";

// ============================================================================
// Types
// ============================================================================

export interface HighlightFeature {
  icon: ReactNode;
  title: string;
  description: string;
  highlight: string;
}

export interface VpnRegionConfig {
  flag: string;
  flagAlt: string;
  location: string;
  features: string[];
  accent: "blue" | "red" | "primary";
}

// ============================================================================
// Internet Features
// ============================================================================

/**
 * Internet service highlight features for marketing pages
 */
export const INTERNET_FEATURES: HighlightFeature[] = [
  {
    icon: <Wifi className="h-6 w-6" />,
    title: "NTT Optical Fiber",
    description: "Japan's most reliable network with speeds up to 10Gbps",
    highlight: "99.9% uptime",
  },
  {
    icon: <Zap className="h-6 w-6" />,
    title: "IPv6/IPoE Ready",
    description: "Next-gen protocol for congestion-free browsing",
    highlight: "No peak-hour slowdowns",
  },
  {
    icon: <Languages className="h-6 w-6" />,
    title: "Full English Support",
    description: "Native English service for setup, billing & technical help",
    highlight: "No language barriers",
  },
  {
    icon: <FileText className="h-6 w-6" />,
    title: "One Bill, One Provider",
    description: "NTT line + ISP + equipment bundled with simple billing",
    highlight: "No hidden fees",
  },
  {
    icon: <Wrench className="h-6 w-6" />,
    title: "On-site Support",
    description: "Technicians can visit for installation & troubleshooting",
    highlight: "Professional setup",
  },
  {
    icon: <Globe className="h-6 w-6" />,
    title: "Flexible Options",
    description: "Multiple ISP configs available, IPv4/PPPoE if needed",
    highlight: "Customizable",
  },
];

// ============================================================================
// VPN Features
// ============================================================================

/**
 * VPN service highlight features for marketing pages
 */
export const VPN_FEATURES: HighlightFeature[] = [
  {
    icon: <Router className="h-6 w-6" />,
    title: "Pre-configured Router",
    description: "Ready to use out of the box — just plug in and connect",
    highlight: "Plug & play",
  },
  {
    icon: <Globe className="h-6 w-6" />,
    title: "US & UK Servers",
    description: "Access content from San Francisco or London regions",
    highlight: "2 locations",
  },
  {
    icon: <MonitorPlay className="h-6 w-6" />,
    title: "Streaming Ready",
    description: "Works with Apple TV, Roku, Amazon Fire, and more",
    highlight: "All devices",
  },
  {
    icon: <Wifi className="h-6 w-6" />,
    title: "Separate Network",
    description: "VPN runs on dedicated WiFi, keep regular internet normal",
    highlight: "No interference",
  },
  {
    icon: <Package className="h-6 w-6" />,
    title: "Router Rental Included",
    description: "No equipment purchase — router rental is part of the plan",
    highlight: "No hidden costs",
  },
  {
    icon: <Headphones className="h-6 w-6" />,
    title: "English Support",
    description: "Full English assistance for setup and troubleshooting",
    highlight: "Dedicated help",
  },
];

// ============================================================================
// VPN Region Configuration
// ============================================================================

/**
 * VPN region-specific configuration
 */
export const VPN_REGIONS: Record<string, VpnRegionConfig> = {
  "San Francisco": {
    flag: "🇺🇸",
    flagAlt: "US Flag",
    location: "United States",
    features: [
      "Access US streaming content",
      "Optimized for Netflix, Hulu, HBO",
      "West Coast US server",
      "Low latency for streaming",
    ],
    accent: "blue",
  },
  London: {
    flag: "🇬🇧",
    flagAlt: "UK Flag",
    location: "United Kingdom",
    features: [
      "Access UK streaming content",
      "Optimized for BBC iPlayer, ITV",
      "London-based server",
      "European content access",
    ],
    accent: "red",
  },
};

/**
 * Default/fallback VPN region configuration
 */
export const DEFAULT_VPN_REGION: VpnRegionConfig = {
  flag: "🌐",
  flagAlt: "Globe",
  location: "International",
  features: [
    "Secure VPN connection",
    "Pre-configured router",
    "Easy plug & play setup",
    "English support included",
  ],
  accent: "primary",
};

// ============================================================================
// Helper Functions
// ============================================================================

/**
 * Get VPN region configuration from plan name
 */
export function getVpnRegionConfig(planName: string): VpnRegionConfig & { region: string } {
  for (const [region, config] of Object.entries(VPN_REGIONS)) {
    if (planName.toLowerCase().includes(region.toLowerCase())) {
      return { region, ...config };
    }
  }
  return { region: planName, ...DEFAULT_VPN_REGION };
}
