/**
 * 작업지시 샘플 데이터 생성기
 *
 * 작업지시는 수주 선택 후 자동 채움되는 필드 외의 추가 정보만 생성
 */

import {
  randomPick,
  randomInt,
  dateAfterDays,
  randomRemark,
} from './index';
import type { ProcessOption } from '@/components/production/WorkOrders/actions';

/**
 * 작업지시 추가 정보 생성
 */
export interface GenerateWorkOrderDataOptions {
  processOptions?: ProcessOption[];  // 공정 목록
}

export interface WorkOrderFormDataPartial {
  processId: number | null;
  shipmentDate: string;
  priority: number;
  note: string;
}

export function generateWorkOrderData(
  options: GenerateWorkOrderDataOptions = {}
): WorkOrderFormDataPartial {
  const { processOptions = [] } = options;

  // 공정 선택 (있으면 랜덤 선택, 없으면 null)
  let processId: number | null = null;
  if (processOptions.length > 0) {
    processId = randomPick(processOptions).id;
  }

  return {
    processId,
    shipmentDate: dateAfterDays(randomInt(7, 21)), // 1~3주 후
    priority: randomPick([3, 5, 7]), // 높음(3), 보통(5), 낮음(7)
    note: randomRemark(),
  };
}