export function getTailwindColorClasses(base: string): string {
  return `bg-${base}-100 text-${base}-800 hover:bg-${base}-200 dark:bg-${base}-900/30 dark:text-${base}-400`;
}

const colorBases = [
  "blue",
  "green",
  "purple",
  "orange",
  "pink",
  "indigo",
  "teal",
  "red",
  "yellow",
];

export const colorClasses = colorBases.map(getTailwindColorClasses);

export const customColorMap: Record<string, string> = {
  Ongoing: getTailwindColorClasses("yellow"),
  Upcoming: getTailwindColorClasses("blue"),
  Completed: getTailwindColorClasses("green"),
};

const badgeColorMap = new Map<string, string>();
let currentIndex = 0;

export function getColorClass(label?: string): string {
  if (!label) return getTailwindColorClasses("gray");
  if (customColorMap[label]) return customColorMap[label];

  if (!badgeColorMap.has(label)) {
    const color = colorClasses[currentIndex % colorClasses.length];
    badgeColorMap.set(label, color);
    currentIndex++;
  }

  return badgeColorMap.get(label)!;
}
