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


import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

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

    @Schema(description = "包裹ID")
    private Long packageNo;

    @Schema(description = "订单ID")
    private Long orderId;

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

    @Schema(description = "柜体名称")
    private String cabinetName;

    @Schema(description = "板材ID")
    private Long plateId;

    @Schema(description = "板编号")
    private String plateNo;

    @Schema(description = "自定义板编号")
    private String customPlateNo;

    @Schema(description = "板名称")
    private String plateName;

    @Schema(description = "材料")
    private String material;

    @Schema(description = "颜色")
    private String color;

    @Schema(description = "宽度")
    private Double width;

    @Schema(description = "长度")
    private Double height;

    @Schema(description = "厚度")
    private Double thickness;

    @Schema(description = "面积")
    private Double area;

    @Schema(description = "纹路")
    private String texture;

    @Schema(description = "是否异型")
    private Boolean specialShaped;

    @Schema(description = "是否造型")
    private Boolean isSculpt;

    @Schema(description = "是否有孔")
    private Boolean isRowHole;

    @Schema(description = "排版面")
    private Integer holeArrange;

    @Schema(description = "加工组")
    private String processGroup;

    private List<String> processGroupNameList;

    private List<String> componentNameList;

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

    @Schema(description = "配件名称-配件类型显示")
    private String partsName;

    @Schema(description = "配件ID")
    private Long partsId;

    @Schema(description = "型号")
    private String model;

    @Schema(description = "规格")
    private String spec;

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

    @Schema(description = "数量")
    private BigDecimal packNum;

    @Schema(description = "单位")
    private String unit;

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

    @Schema(description = "品牌")
    private String brand;

    @Schema(description = "厂家")
    private String factory;

    @Schema(description = "配件颜色")
    private String partsColor;

    @Schema(description = "配件宽度")
    private Double partsWidth;

    @Schema(description = "配件长度")
    private Double partsLength;

    @Schema(description = "配件厚度")
    private Double partsThickness;

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

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



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


    @Schema(description = "房间ID")
    private Long roomId;


    @Schema(description = "柜体ID")
    private Long bodyId;

    private Long groupId;

    @Schema(description = "正面孔数量")
    private Integer frontHoleCount;

    @Schema(description = "背面孔数量")
    private Integer backHoleCount;

    @Schema(description = "侧面孔数量")
    private Integer sideHoleCount;

    @Schema(description = "开门类型")
    private String openDoorType;

    @Schema(description = "是否侧面造型")
    private Boolean isSideSculpt;

    @Schema(description = "是否二维刀路")
    private Boolean is2v;

    @Schema(description = "是否侧面二维刀路")
    private Boolean isSide2v;

    @Schema(description = "部件名称")
    private String componentName;

    @Schema(description = "开料长")
    private BigDecimal splitHeight;

    @Schema(description = "开料宽")
    private BigDecimal splitWidth;

    @Schema(description = "左封边厚度")
    private BigDecimal sealLeft;


    @Schema(description = "右封边厚度")
    private BigDecimal sealRight;


    @Schema(description = "上封边厚度")
    private BigDecimal sealUp;


    @Schema(description = "下封边厚度")
    private BigDecimal sealDown;

    @Schema(description = "成倍数量")
    private Integer multiNum;

    @Schema(description = "成倍序号")
    private Integer multiSort;
}
