import {
  AlertTriangle,
  ArrowRight,
  ClipboardCheck,
  Clock,
  Eye,
  Shield,
  TrendingDown,
  TrendingUp,
  Users,
} from 'lucide-react';
import type { LucideIcon } from 'lucide-react';

import type {
  DirectorDashboardRiskSeverity,
  DirectorDashboardTrend,
  DirectorFrameSectionLetter,
  DirectorOverviewIconId,
  DirectorOverviewTone,
} from '@/business/director-dashboard/types';
import type {
  DirectorQuickActionIconId,
  DirectorQuickActionTone,
} from '@/shared/constants/directorDashboard';

export const directorOverviewIcons: Record<DirectorOverviewIconId, LucideIcon> = {
  clock: Clock,
  shield: Shield,
  eye: Eye,
  users: Users,
};

export const directorTrendIcons: Record<DirectorDashboardTrend, LucideIcon> = {
  up: TrendingUp,
  down: TrendingDown,
};

export const directorRiskIcon = AlertTriangle;
export const directorNavigateIcon = ArrowRight;

export const directorQuickActionIcons: Partial<Record<DirectorQuickActionIconId, LucideIcon>> = {
  clipboard: ClipboardCheck,
};

export const directorOverviewToneClasses: Record<DirectorOverviewTone, string> = {
  orange: 'from-orange-400 to-orange-600',
  blue: 'from-blue-400 to-blue-600',
  amber: 'from-amber-400 to-amber-600',
  purple: 'from-purple-400 to-purple-600',
};

export const directorTrendClasses: Record<DirectorDashboardTrend, string> = {
  up: 'text-emerald-600',
  down: 'text-red-600',
};

export const directorRiskSeverityClasses: Record<DirectorDashboardRiskSeverity, string> = {
  high: 'bg-red-100 text-red-700 border-red-200',
  medium: 'bg-amber-100 text-amber-700 border-amber-200',
  low: 'bg-blue-100 text-blue-700 border-blue-200',
};

export const directorFrameSectionClasses: Record<DirectorFrameSectionLetter, string> = {
  F: 'text-violet-600',
  R: 'text-amber-600',
  A: 'text-emerald-600',
  M: 'text-blue-600',
  E: 'text-pink-600',
};

export const directorQuickActionToneClasses: Record<DirectorQuickActionTone, string> = {
  indigo: 'bg-indigo-100 text-indigo-700 hover:bg-indigo-200',
  amber: 'bg-amber-100 text-amber-700 hover:bg-amber-200',
  blue: 'bg-blue-100 text-blue-700 hover:bg-blue-200',
  orange: 'bg-orange-100 text-orange-700 hover:bg-orange-200',
  rose: 'bg-rose-100 text-rose-700 hover:bg-rose-200',
  red: 'bg-red-100 text-red-700 hover:bg-red-200',
};
