package com.cf.imes.module.executor.controller.admin.manage.query.vo.pack;


import com.cf.imes.module.executor.controller.admin.manage.pack.vo.GroupNameList;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Schema(description = "管理后台 - 包裹详情 Response VO")
@Data
public class PackageDetailsRespVO {


    @Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private String orderId;

    @Schema(description = "房间名称-板材类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
    private String roomName;

    @Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cabinetName;

    @Schema(description = "板材ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long plateId;

    @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String plateNo;

    @Schema(description = "自定义板编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String customPlateNo;

    @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String plateName;

    @Schema(description = "材料", requiredMode = Schema.RequiredMode.REQUIRED)
    private String material;

    @Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
    private String color;

    @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double width;

    @Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double height;

    @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double thickness;

    @Schema(description = "面积", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double area;

    @Schema(description = "纹路", requiredMode = Schema.RequiredMode.REQUIRED)
    private String texture;

    @Schema(description = "是否异型", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean specialShaped;

    @Schema(description = "是否造型", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean profiling;

    @Schema(description = "是否有孔", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean rowHole;

    @Schema(description = "加工组", requiredMode = Schema.RequiredMode.REQUIRED)
    private String processGroup;

    @Schema(description = "备注(板材和配件都要传递)", requiredMode = Schema.RequiredMode.REQUIRED)
    private String remark;

    @Schema(description = "加工组名称集合")
    private List<GroupNameList> processGroupNameList;




    @Schema(description = "配件名称-配件类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
    private String name;

    @Schema(description = "配件ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long  partsId;

    @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String model;

    @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
    private String spec;

    @Schema(description = "明细配件类型， 2 五金/配件 3 其他 4 报价配件", requiredMode = Schema.RequiredMode.REQUIRED)
    private String type;

    @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal num;

    @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
    private String unit;

    @Schema(description = "是否复合部件：0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean isComposite;

    @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
    private String brand;

    @Schema(description = "厂家", requiredMode = Schema.RequiredMode.REQUIRED)
    private String factory;

    @Schema(description = "配件颜色", requiredMode = Schema.RequiredMode.REQUIRED)
    private String partsColor;

    @Schema(description = "配件宽度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double partsWidth;

    @Schema(description = "配件长度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double partsLength;

    @Schema(description = "配件厚度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double partsThickness;

    @Schema(description = "配件主类：1封边2五金3组件", requiredMode = Schema.RequiredMode.REQUIRED)
    private String category;

    @Schema(description = "子配件ID列表,复合部件时记录子配件ID,半角逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED)
    private String subparts;



    @Schema(description = "数量-用于计算-不显示")
    private List<BigDecimal> count;


    @Schema(description = "房间-用于计算-不显示")
    private List<Long> roomId;


    @Schema(description = "柜体-用于计算-不显示")
    private List<Long> bodyId;


    @Schema(description = "加工组-用于计算-不显示")
    private List<Long> groupId;

}
