import { GoogleMeetIcon, MicrosoftTeamsIcon, ZoomIcon, JitsiIcon } from "@/components/ui/platform-icons";

export const STATUS_BADGE: Record<string, "success" | "warning" | "destructive" | "secondary" | "default"> = {
  completed: "success",
  live: "destructive",
  processing: "warning",
  in_lobby: "warning",
  bot_created: "warning",
  failed: "secondary",
  abort: "secondary",
  pending: "secondary",
  scheduled: "default",
  too_short: "warning",
  not_admitted: "destructive",
};

export const PLATFORM_CONFIG: Record<string, { icon: React.ComponentType<{ size?: number }>; label: string; className: string }> = {
  google_meet: { icon: GoogleMeetIcon, label: "Google Meet", className: "bg-emerald-50 text-emerald-700 dark:bg-emerald-950/40 dark:text-emerald-300" },
  microsoft_teams: { icon: MicrosoftTeamsIcon, label: "Microsoft Teams", className: "bg-indigo-50 text-indigo-700 dark:bg-indigo-950/40 dark:text-indigo-300" },
  zoom: { icon: ZoomIcon, label: "Zoom", className: "bg-blue-50 text-blue-700 dark:bg-blue-950/40 dark:text-blue-300" },
  jitsi: { icon: JitsiIcon, label: "Jitsi", className: "bg-sky-50 text-sky-700 dark:bg-sky-950/40 dark:text-sky-300" },
};

export const SPEAKER_COLORS: Record<number, { bg: string; text: string; border: string }> = {
  0: { bg: "bg-blue-50/70 dark:bg-blue-950/20", text: "text-blue-700 dark:text-blue-300", border: "border-blue-100/80 dark:border-blue-900/30" },
  1: { bg: "bg-purple-50/70 dark:bg-purple-950/20", text: "text-purple-700 dark:text-purple-300", border: "border-purple-100/80 dark:border-purple-900/30" },
  2: { bg: "bg-emerald-50/70 dark:bg-emerald-950/20", text: "text-emerald-700 dark:text-emerald-300", border: "border-emerald-100/80 dark:border-emerald-900/30" },
  3: { bg: "bg-amber-50/70 dark:bg-amber-950/20", text: "text-amber-700 dark:text-amber-300", border: "border-amber-100/80 dark:border-amber-900/30" },
  4: { bg: "bg-indigo-50/70 dark:bg-indigo-950/20", text: "text-indigo-700 dark:text-indigo-300", border: "border-indigo-100/80 dark:border-indigo-900/30" },
  5: { bg: "bg-pink-50/70 dark:bg-pink-950/20", text: "text-pink-700 dark:text-pink-300", border: "border-pink-100/80 dark:border-pink-900/30" },
};

export function getSpeakerColor(speakerName: string, speakersList: string[]) {
  const index = speakersList.indexOf(speakerName);
  const colorIndex = index >= 0 ? index % 6 : 0;
  return SPEAKER_COLORS[colorIndex];
}
