/**
 * 수주 관리 타입 정의
 */

/**
 * 수주 품목 (order_mng_sub)
 */
export interface OrderItem {
  sub_objid: string; // 품목 고유 ID (예: ORD-20251121-051_1)
  part_objid: string; // 품목 코드
  partner_price: number; // 단가
  partner_qty: number; // 수량
  delivery_date: string | null; // 납기일
  status: string; // 상태
  regdate: string; // 등록일
}

/**
 * 수주 마스터 (order_mng_master)
 */
export interface OrderMaster {
  order_no: string; // 수주 번호 (예: ORD-20251121-051)
  partner_objid: string; // 거래처 코드
  final_delivery_date: string | null; // 최종 납품일
  reason: string | null; // 메모/사유
  status: string; // 상태
  reg_date: string; // 등록일
  writer: string; // 작성자 (userId|companyCode)
}

/**
 * 수주 + 품목 (API 응답)
 */
export interface OrderWithItems extends OrderMaster {
  items: OrderItem[]; // 품목 목록
}

/**
 * 수주 등록 요청
 */
export interface CreateOrderRequest {
  inputMode: string; // 입력 방식
  salesType?: string; // 판매 유형 (국내/해외)
  priceType?: string; // 단가 방식
  customerCode: string; // 거래처 코드
  contactPerson?: string; // 담당자
  deliveryDestination?: string; // 납품처
  deliveryAddress?: string; // 납품장소
  deliveryDate?: string; // 납품일
  items: Array<{
    item_code?: string; // 품목 코드
    id?: string; // 품목 ID (item_code 대체)
    quantity?: number; // 수량
    unit_price?: number; // 단가
    selling_price?: number; // 판매가
    amount?: number; // 금액
    delivery_date?: string; // 품목별 납기일
  }>;
  memo?: string; // 메모
  tradeInfo?: {
    // 해외 판매 시
    incoterms?: string;
    paymentTerms?: string;
    currency?: string;
    portOfLoading?: string;
    portOfDischarge?: string;
    hsCode?: string;
  };
}

/**
 * 수주 등록 응답
 */
export interface CreateOrderResponse {
  orderNo: string; // 생성된 수주 번호
  masterObjid: string; // 마스터 ID
  itemCount: number; // 품목 개수
  totalAmount: number; // 전체 금액
}

