import type {
  IssueStatus,
  NoteCategory,
  PageStatus,
  Signoff,
} from "@/lib/types";

// Tailwind class sets for the status + signoff "pill" cells. Kept here so the
// table cell components and any future legend stay in sync.

export const STATUS_STYLES: Record<PageStatus, string> = {
  open: "bg-muted text-muted-foreground border-border",
  creating:
    "bg-orange-100 text-orange-800 border-orange-200 dark:bg-orange-950 dark:text-orange-200 dark:border-orange-900",
  finalizing:
    "bg-yellow-100 text-yellow-800 border-yellow-200 dark:bg-yellow-950 dark:text-yellow-200 dark:border-yellow-900",
  // grey-yellow / khaki
  "revision pending":
    "bg-[#ebe7cd] text-[#6d6837] border-[#d8d2a6] dark:bg-[#3a3720] dark:text-[#cbc488] dark:border-[#55502d]",
  // chartreuse
  revising:
    "bg-lime-100 text-lime-800 border-lime-200 dark:bg-lime-950 dark:text-lime-200 dark:border-lime-900",
  drafted:
    "bg-green-100 text-green-800 border-green-200 dark:bg-green-950 dark:text-green-200 dark:border-green-900",
  completed:
    "bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-950 dark:text-blue-200 dark:border-blue-900",
};

export const SIGNOFF_STYLES: Record<Signoff, string> = {
  "not ready": "bg-muted text-muted-foreground border-border",
  "ready for review":
    "bg-orange-100 text-orange-800 border-orange-200 dark:bg-orange-950 dark:text-orange-200 dark:border-orange-900",
  // yellow-grey / khaki
  "revision not ready":
    "bg-[#ebe7cd] text-[#6d6837] border-[#d8d2a6] dark:bg-[#3a3720] dark:text-[#cbc488] dark:border-[#55502d]",
  "revision needed":
    "bg-lime-100 text-lime-800 border-lime-200 dark:bg-lime-950 dark:text-lime-200 dark:border-lime-900",
  approved:
    "bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-950 dark:text-blue-200 dark:border-blue-900",
};

// Small dot color used inside dropdown items, keyed by the same values.
export const STATUS_DOT: Record<PageStatus, string> = {
  open: "bg-muted-foreground/50",
  creating: "bg-orange-500",
  finalizing: "bg-yellow-500",
  "revision pending": "bg-[#b8ad5e]",
  revising: "bg-lime-500",
  drafted: "bg-green-500",
  completed: "bg-blue-500",
};

export const SIGNOFF_DOT: Record<Signoff, string> = {
  "not ready": "bg-muted-foreground/50",
  "ready for review": "bg-orange-500",
  "revision not ready": "bg-[#b8ad5e]",
  "revision needed": "bg-lime-500",
  approved: "bg-blue-500",
};

export const CATEGORY_STYLES: Record<NoteCategory, string> = {
  Revision:
    "bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-950 dark:text-blue-200 dark:border-blue-900",
  Bug: "bg-red-100 text-red-800 border-red-200 dark:bg-red-950 dark:text-red-200 dark:border-red-900",
  Question:
    "bg-amber-100 text-amber-800 border-amber-200 dark:bg-amber-950 dark:text-amber-200 dark:border-amber-900",
  "Live Changelog":
    "bg-violet-100 text-violet-800 border-violet-200 dark:bg-violet-950 dark:text-violet-200 dark:border-violet-900",
  Informational:
    "bg-teal-100 text-teal-800 border-teal-200 dark:bg-teal-950 dark:text-teal-200 dark:border-teal-900",
};

export const CATEGORY_DOT: Record<NoteCategory, string> = {
  Revision: "bg-blue-500",
  Bug: "bg-red-500",
  Question: "bg-amber-500",
  "Live Changelog": "bg-violet-500",
  Informational: "bg-teal-500",
};

export const ISSUE_STATUS_STYLES: Record<IssueStatus, string> = {
  Open: "bg-muted text-muted-foreground border-border",
  Addressing:
    "bg-orange-100 text-orange-800 border-orange-200 dark:bg-orange-950 dark:text-orange-200 dark:border-orange-900",
  "Ready for Review":
    "bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-950 dark:text-blue-200 dark:border-blue-900",
  "Revision Required":
    "bg-red-100 text-red-800 border-red-200 dark:bg-red-950 dark:text-red-200 dark:border-red-900",
  "Address Later":
    "bg-slate-100 text-slate-700 border-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:border-slate-700",
  "FYI Only":
    "bg-violet-100 text-violet-800 border-violet-200 dark:bg-violet-950 dark:text-violet-200 dark:border-violet-900",
  Resolved:
    "bg-green-100 text-green-800 border-green-200 dark:bg-green-950 dark:text-green-200 dark:border-green-900",
};

export const ISSUE_STATUS_DOT: Record<IssueStatus, string> = {
  Open: "bg-muted-foreground/50",
  Addressing: "bg-orange-500",
  "Ready for Review": "bg-blue-500",
  "Revision Required": "bg-red-500",
  "Address Later": "bg-slate-400",
  "FYI Only": "bg-violet-500",
  Resolved: "bg-green-500",
};
