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

import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetialRespVO;
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
import com.cf.imes.module.system.api.machine.dto.MachineDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author Beal
 * 生产单源数据对象
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderSource {

    @Schema(description = "优化后的大板数据")
    private List<OptimizeBoardModelDO> optimizeBoardModelDOS;

    @Schema(description = "优化后的余料板数据", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<OptimizeRemainPlate> optimizeRemainPlates;

    @Schema(description = "机台数据")
    private MachineDTO machineDTO;

    @Schema(description = "排单数据")
    private PlanDO plan;

    @Schema(description = "生产单列表")
    private List<OrderDO> orderList;

    @Schema(description = "板材-大板列表")
    private List<GoodsReqVO> goodsList;

    @Schema(description = "小板列表")
    private List<PlateDetialRespVO> plateList;

    @Schema(description = "小板造型列表")
    private List<OrderModelDO> plateModels;


}
