import React from 'react';
import {
  ServerIcon,
  DatabaseIcon,
  NetworkIcon,
  MonitorIcon,
  ShieldIcon,
  CloudIcon,
  CodeIcon,
  DownloadIcon,
  SearchIcon,
  ZapIcon,
  CpuIcon,
  HardDriveIcon,
  WifiIcon,
  LockIcon,
  ActivityIcon,
  CheckCircleIcon,
  AlertCircleIcon,
  GlobeIcon,
  GitBranchIcon,
  BarChart3Icon,
  TimerIcon,
  UsersIcon,
  LayersIcon
} from 'lucide-react';

import {
  PerformanceMetric,
  SystemRequirement,
  APIEndpoint,
  DeploymentOption,
  VersionCompatibility,
  EnterpriseFeature,
  StatisticData,
  ResourceDownload
} from '@/types/technical-specs';

export const performanceMetrics: PerformanceMetric[] = [
  {
    key: '1',
    metric: 'API Response Time (Cached)',
    value: '<5ms',
    component: 'All Components',
    status: 'Excellent',
    icon: <ZapIcon className="w-4 h-4" />
  },
  {
    key: '2',
    metric: 'API Response Time (Uncached)',
    value: '<50ms',
    component: 'All Components',
    status: 'Excellent',
    icon: <ZapIcon className="w-4 h-4" />
  },
  {
    key: '3',
    metric: 'Context Search',
    value: '<100ms',
    component: 'SLURP',
    status: 'Excellent',
    icon: <SearchIcon className="w-4 h-4" />
  },
  {
    key: '4',
    metric: 'P2P Network Latency',
    value: '<10ms',
    component: 'COOEE',
    status: 'Excellent',
    icon: <NetworkIcon className="w-4 h-4" />
  },
  {
    key: '5',
    metric: 'Workflow Execution',
    value: 'Multi-agent',
    component: 'WHOOSH',
    status: 'Advanced',
    icon: <ActivityIcon className="w-4 h-4" />
  },
  {
    key: '6',
    metric: 'Concurrent Agents',
    value: '10+ simultaneous',
    component: 'BZZZ',
    status: 'Scalable',
    icon: <UsersIcon className="w-4 h-4" />
  }
];

export const systemRequirements: SystemRequirement[] = [
  {
    key: '1',
    category: 'Infrastructure',
    minimum: 'Docker 20.10+',
    recommended: 'Docker Swarm / Kubernetes',
    enterprise: 'Kubernetes + Helm Charts',
    icon: <ServerIcon className="w-4 h-4" />
  },
  {
    key: '2',
    category: 'Database',
    minimum: 'PostgreSQL 13+',
    recommended: 'PostgreSQL 15+ with Redis',
    enterprise: 'PostgreSQL Cluster + Redis Cluster',
    icon: <DatabaseIcon className="w-4 h-4" />
  },
  {
    key: '3',
    category: 'Memory',
    minimum: '4GB RAM',
    recommended: '16GB RAM',
    enterprise: '64GB+ RAM per node',
    icon: <CpuIcon className="w-4 h-4" />
  },
  {
    key: '4',
    category: 'Storage',
    minimum: '20GB SSD',
    recommended: '100GB NVMe SSD',
    enterprise: '1TB+ NVMe SSD with backup',
    icon: <HardDriveIcon className="w-4 h-4" />
  },
  {
    key: '5',
    category: 'Network',
    minimum: '1Gbps',
    recommended: '10Gbps + libp2p',
    enterprise: 'Dedicated network + Tailscale',
    icon: <WifiIcon className="w-4 h-4" />
  }
];

export const apiEndpoints: APIEndpoint[] = [
  {
    key: '1',
    method: 'POST',
    endpoint: '/api/v1/whoosh/workflow',
    description: 'Execute orchestrated workflow',
    authentication: 'JWT Bearer Token',
    rateLimit: '1000/hour'
  },
  {
    key: '2',
    method: 'GET',
    endpoint: '/api/v1/bzzz/agents',
    description: 'List active agents',
    authentication: 'API Key',
    rateLimit: '5000/hour'
  },
  {
    key: '3',
    method: 'POST',
    endpoint: '/api/v1/slurp/search',
    description: 'Semantic context search',
    authentication: 'JWT Bearer Token',
    rateLimit: '2000/hour'
  },
  {
    key: '4',
    method: 'WS',
    endpoint: '/ws/v1/cooee/network',
    description: 'P2P network communication',
    authentication: 'WebSocket Token',
    rateLimit: 'Unlimited'
  }
];

export const deploymentOptions: DeploymentOption[] = [
  {
    key: '1',
    option: 'Cloud Deployment',
    platforms: ['AWS', 'GCP', 'Azure'],
    features: ['Auto-scaling', 'Load balancing', 'Global CDN'],
    complexity: 'Medium',
    cost: '$$$'
  },
  {
    key: '2',
    option: 'On-premises',
    platforms: ['VMware', 'Hyper-V', 'KVM'],
    features: ['Full control', 'Data sovereignty', 'Custom security'],
    complexity: 'High',
    cost: '$$$$'
  },
  {
    key: '3',
    option: 'Hybrid Cloud',
    platforms: ['AWS Outposts', 'Azure Stack', 'Google Anthos'],
    features: ['Best of both worlds', 'Flexible scaling', 'Compliance'],
    complexity: 'High',
    cost: '$$$$'
  },
  {
    key: '4',
    option: 'Development',
    platforms: ['Docker Compose', 'Local K8s'],
    features: ['Quick setup', 'Development tools', 'Hot reload'],
    complexity: 'Low',
    cost: '$'
  }
];

export const versionCompatibility: VersionCompatibility[] = [
  {
    chorusVersion: 'v2.0.x',
    kubernetes: '1.24+',
    docker: '20.10+',
    postgresql: '13+',
    redis: '6.0+',
    nodejs: '18+'
  },
  {
    chorusVersion: 'v1.9.x',
    kubernetes: '1.22+',
    docker: '20.10+',
    postgresql: '12+',
    redis: '5.0+',
    nodejs: '16+'
  },
  {
    chorusVersion: 'v1.8.x',
    kubernetes: '1.20+',
    docker: '19.03+',
    postgresql: '11+',
    redis: '5.0+',
    nodejs: '14+'
  }
];

export const enterpriseFeatures: EnterpriseFeature[] = [
  {
    category: 'High Availability',
    features: [
      'Multi-region deployment',
      'Automatic failover',
      'Zero-downtime updates',
      'Health monitoring'
    ],
    icon: <CheckCircleIcon className="w-4 h-4" />,
    color: 'text-green-500'
  },
  {
    category: 'Security & Compliance',
    features: [
      'SOC 2 Type II',
      'GDPR Compliance',
      'End-to-end encryption',
      'Audit trails'
    ],
    icon: <ShieldIcon className="w-4 h-4" />,
    color: 'text-blue-500'
  },
  {
    category: 'Multi-tenancy',
    features: [
      'Tenant isolation',
      'Resource quotas',
      'Custom branding',
      'Usage analytics'
    ],
    icon: <LayersIcon className="w-4 h-4" />,
    color: 'text-purple-500'
  }
];

export const performanceStatistics: StatisticData[] = [
  {
    title: 'Average Response Time',
    value: 27.5,
    suffix: 'ms',
    color: '#30d158',
    icon: <TimerIcon className="w-4 h-4" />
  },
  {
    title: 'Uptime',
    value: 99.99,
    suffix: '%',
    color: '#30d158',
    icon: <CheckCircleIcon className="w-4 h-4" />
  },
  {
    title: 'Concurrent Users',
    value: 10000,
    suffix: '+',
    color: '#007aff',
    icon: <UsersIcon className="w-4 h-4" />
  },
  {
    title: 'Throughput',
    value: 50000,
    suffix: 'req/s',
    color: '#ff9500',
    icon: <ActivityIcon className="w-4 h-4" />
  }
];

export const downloadableResources: ResourceDownload[] = [
  {
    title: 'Architecture Whitepaper',
    description: 'Deep dive into CHORUS Services architecture and design principles.',
    icon: <DownloadIcon className="w-8 h-8" />,
    buttonText: 'Download PDF',
    href: '/resources/chorus-architecture-whitepaper.pdf',
    color: 'text-blue-500'
  },
  {
    title: 'API Reference',
    description: 'Complete API documentation with examples and SDKs.',
    icon: <CodeIcon className="w-8 h-8" />,
    buttonText: 'View Docs',
    href: '/docs/api-reference',
    color: 'text-green-500'
  },
  {
    title: 'Sample Projects',
    description: 'Reference implementations and starter templates.',
    icon: <GitBranchIcon className="w-8 h-8" />,
    buttonText: 'GitHub Repos',
    href: 'https://github.com/chorus-services/samples',
    color: 'text-purple-500'
  }
];

export const installationGuides = [
  {
    title: 'Docker Compose Guide',
    description: 'Quick start for development',
    href: '/docs/installation/docker-compose'
  },
  {
    title: 'Kubernetes Manifests',
    description: 'Production-ready K8s deployment',
    href: '/docs/installation/kubernetes'
  },
  {
    title: 'Terraform Modules',
    description: 'Infrastructure as Code',
    href: '/docs/installation/terraform'
  }
];

export const sdkSupport = [
  { language: 'JavaScript/TypeScript', status: 'Available', color: 'blue' },
  { language: 'Python', status: 'Available', color: 'blue' },
  { language: 'Go', status: 'In Development', color: 'orange' },
  { language: 'Rust', status: 'Planned', color: 'orange' },
  { language: 'Java', status: 'Planned', color: 'orange' }
];

export const authenticationMethods = [
  {
    title: 'JWT Bearer Token',
    example: 'Authorization: Bearer {token}',
    description: 'Standard JWT tokens with configurable expiration. Supports RS256 and HS256 signing.'
  },
  {
    title: 'API Key Authentication',
    example: 'X-API-Key: {your-api-key}',
    description: 'Simple API key authentication for service-to-service communication.'
  },
  {
    title: 'WebSocket Token',
    example: 'ws://domain.com/ws?token={token}',
    description: 'WebSocket connection with token-based authentication for real-time features.'
  }
];

export const monitoringFeatures = [
  { name: 'Prometheus Metrics', icon: <CheckCircleIcon className="w-4 h-4 text-green-500" /> },
  { name: 'Grafana Dashboards', icon: <CheckCircleIcon className="w-4 h-4 text-green-500" /> },
  { name: 'Jaeger Tracing', icon: <CheckCircleIcon className="w-4 h-4 text-green-500" /> },
  { name: 'ELK Stack Logging', icon: <CheckCircleIcon className="w-4 h-4 text-green-500" /> }
];

export const securityFeatures = [
  { name: 'JWT Authentication', icon: <ShieldIcon className="w-4 h-4 text-blue-500" /> },
  { name: 'RBAC Authorization', icon: <LockIcon className="w-4 h-4 text-blue-500" /> },
  { name: 'TLS 1.3 Encryption', icon: <ShieldIcon className="w-4 h-4 text-blue-500" /> },
  { name: 'Audit Logging', icon: <MonitorIcon className="w-4 h-4 text-blue-500" /> }
];