import type { TaskDetailForm, TaskDetailVO } from '../taskDetail/types';
import type { WcsBaseEntity } from '../types';

export type TaskQueueId = string | number;
export type TaskQueueIds = TaskQueueId[];

export interface TaskQueueVO {
  /**
   * 主键标识
   */
  objId: string | number;

  /**
   * 任务编号
   */
  taskCode: string;

  /**
   * 物料编号
   */
  materialCode: string;

  /**
   * 物料名称
   */
  materialName: string;

  /**
   * 托盘条码
   */
  palletBarcode: string;

  /**
   * 物料条码
   */
  materialBarcode: string;

  /**
   * 物料数量
   */
  materialCount: number;

  /**
   * 任务类型
   */
  taskType: number;

  /**
   * 任务类别
   */
  taskCategory: number;

  /**
   * 起始位置
   */
  startPoint: string;

  /**
   * 结束位置
   */
  endPoint: string;

  /**
   * 路径编号
   */
  pathCode: string;

  /**
   * 路径名称
   */
  pathName: string;

  /**
   * 任务状态
   */
  taskStatus: number;

  /**
   * 任务步骤
   */
  taskSteps: number;

  /**
   * 是否标识
   */
  isFlag: number;

  /**
   * 备注
   */
  remark: string;

  /**
   * 创建部门
   */
  createDept: number;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 更新时间
   */
  updateTime: string;

  /** 实时任务明细列表；列表接口不挂载明细，详情接口按需返回。 */
  details?: TaskDetailVO[];

  /** 创建人 */
  createBy: string | number;
  /** 更新人 */
  updateBy: string | number;
  /** 创建人名称 */
  createByName: string;
  /** 更新人名称 */
  updateByName: string;
}

export interface TaskQueueForm extends WcsBaseEntity {
  /**
   * 主键标识
   */
  objId?: string | number;

  /**
   * 任务编号
   */
  taskCode?: string;

  /**
   * 物料编号
   */
  materialCode?: string;

  /**
   * 托盘条码
   */
  palletBarcode?: string;

  /**
   * 物料条码
   */
  materialBarcode?: string;

  /**
   * 物料数量
   */
  materialCount?: number;

  /**
   * 任务类型
   */
  taskType?: number;

  /**
   * 任务类别
   */
  taskCategory?: number;

  /**
   * 起始位置
   */
  startPoint?: string;

  /**
   * 结束位置
   */
  endPoint?: string;

  /**
   * 路径编号
   */
  pathCode?: string;

  /**
   * 任务状态
   */
  taskStatus?: number;

  /**
   * 任务步骤
   */
  taskSteps?: number;

  /**
   * 是否标识
   */
  isFlag?: number;

  /**
   * 备注
   */
  remark?: string;

  /** 实时任务明细列表 */
  details?: TaskDetailForm[];
}

export interface TaskQueueQuery extends PageQuery {
  /**
   * 任务编号
   */
  taskCode?: string;

  /**
   * 物料编号
   */
  materialCode?: string;

  /**
   * 托盘条码
   */
  palletBarcode?: string;

  /**
   * 物料条码
   */
  materialBarcode?: string;

  /**
   * 物料数量
   */
  materialCount?: number;

  /**
   * 任务类型
   */
  taskType?: number;

  /**
   * 任务类别
   */
  taskCategory?: number;

  /**
   * 起始位置
   */
  startPoint?: string;

  /**
   * 结束位置
   */
  endPoint?: string;

  /**
   * 路径编号
   */
  pathCode?: string;

  /**
   * 任务状态
   */
  taskStatus?: number;

  /**
   * 任务步骤
   */
  taskSteps?: number;

  /**
   * 是否标识
   */
  isFlag?: number;

  /**
   * 日期范围参数
   */
  params?: any;
}
