package cn.iocoder.yudao.module.system.controller.admin.robot.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 机器人任务主表新增/修改 Request VO")
@Data
public class RobotTaskSaveReqVO {

    @Schema(description = "是否拼接任务（0：不拼接、1：拼接）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否拼接任务（0：不拼接、1：拼接）不能为空")
    private Integer montageTask;

    @Schema(description = "拼接任务数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "拼接任务数量不能为空")
    private Integer montageNumber;

    @Schema(description = "任务")
    private List<RobotTaskDetailAddVO> taskDetailList;

    @Schema(description = "物料信息")
    @Size(min = 0, max = 100, message = "物料信息输入的数据长度超过限制")
    private String skuInfo;

    @Schema(description = "物料批次号")
    private String skuBatch;

    @Schema(description = "物料数量")
    private Long skuNumber;

    @Schema(description = "优先级")
    private Long priority;

    @Schema(description = "其他信息")
    @Size(min = 0, max = 100, message = "其他信息输入的数据长度超过限制")
    private String otherMsg;

    @Schema(description = "循环(0:不循环、1：循环)")
    private Long doCycle;

    @Schema(description = "是否搬空所选线库/区域(0:不搬空、1：搬空)")
    private Long doMoveAll;


    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15306")
    private Long id;

    @Schema(description = "循环次数")
    private Long cycleNumber;

    @Schema(description = "剩余循环次数，默认1")
    private Long remainingCycleNumber;

    @Schema(description = "任务号")
    private String taskNo;

    @Schema(description = "任务状态(0:未开始、1：执行中、2：已完成、3：已取消)", example = "2")
    private Integer taskStatus;

    @Schema(description = "任务阶段(0:待执行、1：前往取货、2：取货中、3：运输中、4：放货中、5：结束)")
    private Long taskStage;

    @Schema(description = "开始时间")
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    private LocalDateTime endTime;

}