package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad;

import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * api数据转换中可能用到的数据结构
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ApiDataTypeVo {


    public OrderDO orderDO;

    public Map<String, RawGoodsDO> mapRawGoodsDO;
    public Map<String, GoodsDO> mapGoodsDO;

    public Map<String, OrderBodyDO> mapOrderBodyDO;

    public Map<String, OrderGroupDO> mapOrderGroupDO; // 加工组id 和 加工组信息
    public Map<String, List<String>> mapGroupLists;// 加工组id 和 小板配件itemId

    public Map<String, List<OrderItemDO>> mapItemByGroup;
    public List<OrderItemDO> mapItem;

    public Map<String, OrderPartsDO> mapPartsInfos;
    public Map<String, OrderPartsRemark> mapPartRemarks;

    public Map<String, PlateDetail> mapPlateDetails; // 造型数据

    public Map<String, PlateDO> mapPlatesInfos; // 小板数据
    // 柜体板块片数，柜体异形板片数
    public Map<String, Integer> totalPlateCountMapToBody;
    public Map<String, Integer> irregularPlateCountMapToBody;

    // 加工组板块片数，加工组异形板片数
    public Map<String, Integer> totalPlateCountMapToGroup;
    public Map<String, Integer> irregularPlateCountMapToGroup;
 }

