export type NormalizedPresence = "PRESENT" | "REMOTE" | "OFF";

const presentCodes = new Set(["P", "D"]);
const remoteCodes = new Set(["T"]);
const offCodes = new Set([
  "F",
  "CP",
  "RTT",
  "RH",
  "AP",
  "AJR",
  "OUT",
  "FER",
  "AT",
  "CSS",
  "AJNR",
  "MAT",
  "REP",
  "CPA",
  "CNA",
  "CPAT",
  "CAEM",
  "JNT"
]);

export function normalizePresenceCode(sourceCode: string): NormalizedPresence {
  const code = sourceCode.trim().toUpperCase();

  if (presentCodes.has(code)) {
    return "PRESENT";
  }

  if (remoteCodes.has(code)) {
    return "REMOTE";
  }

  if (offCodes.has(code)) {
    return "OFF";
  }

  throw new Error(`Code de presence inconnu: ${sourceCode}`);
}
