/**
 * 공정 상태 코드 매핑
 * Gubun 코드를 영문 상태값으로 변환
 */

export enum ProcessStatus {
  InProgress = 'in_progress',
  Waiting = 'waiting',
  Wip = 'wip',
  Error = 'error',
  Completed = 'completed',
}

export const PROCESS_STATUS_MAP: { [gubun: string]: ProcessStatus } = {
  '1': ProcessStatus.InProgress, // 작업 중
  '2': ProcessStatus.Waiting, // 대기 중
  '3': ProcessStatus.Wip, // 재공 (Work in Process)
  '4': ProcessStatus.Error, // 이상 발생
};

export const PROCESS_STATUS_WAITING_MAP: { [gubun: string]: ProcessStatus } = {
  '1': ProcessStatus.InProgress,
  '2': ProcessStatus.Waiting,
  '3': ProcessStatus.Wip,
  '4': ProcessStatus.Completed,
};

export function convertGubunToStatus(
  gubun: string | number | null | undefined,
): string {
  if (gubun === null || gubun === undefined) return '';

  const key = String(gubun);
  return PROCESS_STATUS_MAP[key] ?? '';
}

export function convertGubunToWaitingStatus(
  gubun: string | number | null,
): string {
  if (gubun === null || gubun === undefined) return '';

  const key = String(gubun);
  return PROCESS_STATUS_WAITING_MAP[key] ?? '';
}
