198 lines
5.4 KiB
TypeScript
198 lines
5.4 KiB
TypeScript
/**
|
|
* 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 };
|
|
}
|