package com.cf.imes.module.executor.controller.admin.plan.vo;

import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds;
import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO;
import com.cf.imes.module.executor.validation.plan.PlanStatusValid;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.Max;
import java.util.List;

@Schema(description = "管理后台 - 订单开料排单新增/修改 Request VO")
@Data
public class PlanSaveReqVO {

    @Schema(description = "ID-新增和移除小板时不传")
//    @NotNull(message = "排单数据异常，请重新操作",groups = UpdateGroup.class)
    @Max(value = 0x7fffffffffffffffL,message = "排单号异常，无法更新排单数据")
    private Long id;


    @Schema(description = "排单状态：0 未开料，1 开料中，2 已开料，3 已投产")
//    @NotNull(message = "排单状态：0 未开料，1 已投产，2 开料中，3 已开料", groups = UpdateGroup.class)
    @PlanStatusValid
    private Integer status;

    @Schema(description = "是否已投产")
    private Boolean isScheduled;


    @Schema(description = "需要进行排单的板材信息-数据不改变")
    private SavePlanPlateList savePlanPlateList;


    @Schema(description = "方案ID")
    private Long processId;

    @Schema(description = "方案组名称")
    private String processName;

    @Schema(description = "新增的小板ID")
    private List<OrderPlateIds> insertOrderPlateIds;


    @Schema(description = "添加小板时选择的实际的大板信息")
    private PlanActualGoodsModelDO planActualGoodsModelDO;


    @Schema(description = "去除的小板ID")
    private List<OrderPlateIds> deleteOrderPlateIds;


    @Schema(description = "混单创建排单时选择的实际的大板信息")
    private List<PlanActualGoodsList> planActualGoodsListList;


}