import type { CdcIssueMatrixRow } from "./cdc-issue-matrix-data";
import {
  cdcIssueMatrixText,
  type CdcIssueMatrixLanguage,
} from "./cdc-issue-matrix-i18n";

export type CdcIssueMatrixColumn = {
  key: keyof CdcIssueMatrixRow;
  width: string;
  label: string;
};

const CDC_ISSUE_MATRIX_COLUMN_BASE: Omit<CdcIssueMatrixColumn, "label">[] = [
  { key: "id", width: "70px" },
  { key: "workingGroup", width: "280px" },
  { key: "issue", width: "240px" },
  { key: "category", width: "200px" },
  { key: "issueDescription", width: "360px" },
  { key: "recommendation", width: "360px" },
  { key: "governmentDecision", width: "240px" },
  { key: "primaryAgency", width: "180px" },
  { key: "plenaryEscalation", width: "160px" },
  { key: "status", width: "160px" },
  { key: "nextStep", width: "200px" },
  { key: "remark", width: "240px" },
  { key: "action", width: "140px" },
];

export function getCdcIssueMatrixColumns(
  language: CdcIssueMatrixLanguage,
): CdcIssueMatrixColumn[] {
  return CDC_ISSUE_MATRIX_COLUMN_BASE.map((column) => ({
    ...column,
    label:
      cdcIssueMatrixText[language].columns[column.key] ??
      cdcIssueMatrixText.en.columns[column.key] ??
      String(column.key),
  }));
}
