/**
 * 배차차량관리 타입 정의
 */

// 배차 상태
export type VehicleDispatchStatus = 'draft' | 'completed';

// 상태 라벨
export const VEHICLE_DISPATCH_STATUS_LABELS: Record<VehicleDispatchStatus, string> = {
  draft: '작성대기',
  completed: '작성완료',
};

// 상태 스타일
export const VEHICLE_DISPATCH_STATUS_STYLES: Record<VehicleDispatchStatus, string> = {
  draft: 'bg-red-100 text-red-800',
  completed: 'bg-green-100 text-green-800',
};

// 선/착불 타입
export type FreightCostType = 'prepaid' | 'collect';

export const FREIGHT_COST_LABELS: Record<FreightCostType, string> = {
  prepaid: '선불',
  collect: '착불',
};

export const FREIGHT_COST_STYLES: Record<FreightCostType, string> = {
  prepaid: 'bg-blue-100 text-blue-800',
  collect: 'bg-orange-100 text-orange-800',
};

// 배차차량 목록 아이템
export interface VehicleDispatchItem {
  id: string;
  dispatchNo: string;          // 배차번호
  shipmentNo: string;          // 출고번호
  lotNo?: string;              // 로트번호
  siteName: string;            // 현장명
  orderCustomer: string;       // 수주처
  logisticsCompany: string;    // 물류업체
  tonnage: string;             // 톤수
  supplyAmount: number;        // 공급가액
  vat: number;                 // 부가세
  totalAmount: number;         // 합계
  freightCostType: FreightCostType; // 선/착불
  vehicleNo: string;           // 차량번호
  driverContact: string;       // 기사연락처
  writer: string;              // 작성자
  arrivalDateTime: string;     // 입차일시
  status: VehicleDispatchStatus; // 상태
  remarks: string;             // 비고
}

// 배차차량 상세 정보
export interface VehicleDispatchDetail {
  id: string;
  // 기본 정보
  dispatchNo: string;          // 배차번호
  shipmentNo: string;          // 출고번호
  lotNo?: string;              // 로트번호
  siteName: string;            // 현장명
  orderCustomer: string;       // 수주처
  freightCostType: FreightCostType; // 운임비용
  status: VehicleDispatchStatus; // 상태
  writer: string;              // 작성자

  // 배차 정보
  logisticsCompany: string;    // 물류업체
  arrivalDateTime: string;     // 입차일시
  tonnage: string;             // 톤수
  vehicleNo: string;           // 차량번호
  driverContact: string;       // 기사연락처
  remarks: string;             // 비고

  // 배송비 정보
  supplyAmount: number;        // 공급가액
  vat: number;                 // 부가세
  totalAmount: number;         // 합계
}

// 배차차량 수정 폼 데이터
export interface VehicleDispatchEditFormData {
  // 기본 정보 (운임비용만 편집 가능)
  freightCostType: FreightCostType;

  // 배차 정보 (모두 편집 가능)
  logisticsCompany: string;
  arrivalDateTime: string;
  tonnage: string;
  vehicleNo: string;
  driverContact: string;
  remarks: string;

  // 배송비 정보
  supplyAmount: number;
  vat: number;
  totalAmount: number;
}

// 통계 데이터
export interface VehicleDispatchStats {
  prepaidAmount: number;     // 선불 금액
  collectAmount: number;     // 착불 금액
  totalAmount: number;       // 합계 금액
}
