/**
 * Loại lớp / chuyên đề (cột `events.kind`, lưu chuỗi tự do). Danh sách gợi ý dùng chung cho form nhập và báo cáo chuyển giao;
 * báo cáo vẫn gom theo đúng chuỗi có trong dữ liệu nên loại lạ (nhập từ Excel, dữ liệu cũ) vẫn hiện, không bị bỏ sót.
 * Không import gì từ tầng cơ sở dữ liệu — dùng được ở cả máy chủ lẫn trình duyệt.
 */
export const EVENT_KINDS = [
  "Lớp sản phẩm",
  "Lớp quy trình",
  "Chuyển giao tại cơ sở khách",
  "Báo cáo Hội nghị/Bệnh viện",
  "Chuyên đề",
  "Lớp học",
  "Hội thảo",
] as const;

export const DEFAULT_EVENT_KIND = "Chuyên đề";

/** Các loại để chọn trong form; loại hiện tại của bản ghi đang sửa luôn có mặt (nếu không, chọn lại làm đổi loại âm thầm). */
export function kindOptions(current?: string | null): string[] {
  const list: string[] = [...EVENT_KINDS];
  if (current && !list.includes(current)) list.push(current);
  return list;
}

/** Thứ tự ổn định của các loại để mọi biểu đồ dùng cùng một màu cho cùng một loại: loại đã biết theo danh sách trên, loại lạ xếp sau theo tên. */
export function orderKinds(kinds: Iterable<string>): string[] {
  const known = EVENT_KINDS as readonly string[];
  return [...new Set(kinds)].sort((a, b) => {
    const ia = known.indexOf(a);
    const ib = known.indexOf(b);
    return (ia === -1 ? 999 : ia) - (ib === -1 ? 999 : ib) || a.localeCompare(b, "vi");
  });
}
