package com.cf.imes.module.executor.dal.dataobject.plate;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 板件明细
 *
 * @author Gqr
 * @since 2026/5/12 10:21
 */
@Data
public class PlateDetailDO {

    /**
     * 板件ID
     */
    private Long plateId;

    /**
     * 房间ID
     */
    private Long roomId;

    /**
     * 房间名称
     */
    private String roomName;

    /**
     * 柜体ID
     */
    private Long bodyId;

    /**
     * 柜体名称
     */
    private String bodyName;

    /**
     * 订单号
     */
    private Long orderId;

    /**
     * 商品ID-大板分类ID
     */
    private Long id;

    /**
     * 大板实际ID
     */
    private String goodsId;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 板编号
     */
    private String plateNo;

    /**
     * 自定义板编号
     */
    private String customPlateNo;

    /**
     * cad设计板编号
     */
    private String customNumber;

    /**
     * 板名称
     */
    private String name;

    /**
     * 板颜色
     */
    private String color;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 板材质
     */
    private String material;

    /**
     * 板长
     */
    private Double height;

    /**
     * 板宽
     */
    private Double width;

    /**
     * 板厚
     */
    private Double thickness;

    /**
     * 拆单宽度
     */
    private BigDecimal splitWidth;

    /**
     * 拆单高度
     */
    private BigDecimal splitHeight;

    /**
     * 拆单厚度
     */
    private BigDecimal splitThickness;

    /**
     * 是否异性-是否弧形地脚，不处理异形
     */
    private Boolean isSpecialShaped;

    /**
     * 左封边厚度
     */
    private BigDecimal sealLeft;

    /**
     * 右封边厚度
     */
    private BigDecimal sealRight;

    /**
     * 上封边厚度
     */
    private BigDecimal sealUp;

    /**
     * 下封边厚度
     */
    private BigDecimal sealDown;

    /**
     * 左预留边
     */
    private BigDecimal reservedEdgeLeft;

    /**
     * 右预留边
     */
    private BigDecimal reservedEdgeRight;

    /**
     * 上预留边
     */
    private BigDecimal reservedEdgeUp;

    /**
     * 下预留边
     */
    private BigDecimal reservedEdgeDown;

    /**
     * 面积
     */
    private BigDecimal area;

    /**
     * 纹路类型，0 正纹 1 可翻转 2 反纹
     */
    private Integer texture;

    /**
     * 孔面类型，0 正面 1 反面 2 侧面
     */
    private Integer holeFace;

    /**
     * 排孔类型，0 正纹 1 反面 2 随意面
     */
    private Integer holeArrange;

    /**
     * 异型孔数量
     */
    private Integer unregularPointCount;

    /**
     * 正面孔数量
     */
    private Integer frontHoleCount;

    /**
     * 背面孔数量
     */
    private Integer backHoleCount;

    /**
     * 侧面孔数量
     */
    private Integer sideHoleCount;

    /**
     * 正面造型量
     */
    private Integer frontModelCount;

    /**
     * 背面造型量
     */
    private Integer backModelCount;

    /**
     * 是否门板
     */
    private Boolean isDoor;

    /**
     * 是否孤形对角
     */
    private Boolean isArcAcross;

    /**
     * 模块类型 ID
     */
    private Long moduleTypeId;

    /**
     * 排单过滤类型，1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠
     */
    private String filterType;

    /**
     * 异型偏移 x
     */
    private Double offsetX;

    /**
     * 异型偏移 y
     */
    private Double offsetY;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否作废
     */
    private Boolean isCancel;

    /**
     * 板类型，0 层板 1 立板 2 背板
     */
    private Integer type;

    /**
     * 加工组id
     */
    private Long groupId;

    private Long groupTypeId;

    /**
     * 加工组名称
     */
    private String processGroupTypeName;

    /**
     * 加工组名称
     */
    private String processGroupName;

    /**
     * 部件名称
     */
    private String componentName;

    /**
     * 部件ID
     */
    private Long componentId;

    /**
     * 开门类型，0 无 1 左 2 右 3 上 4 下
     */
    private Integer openDoorType;

    /**
     * 是否有孔
     */
    private Boolean isRowHole;

    /**
     * 是否造型
     */
    private Boolean isSculpt;

    /**
     * 是否侧面造型
     */
    private Boolean isSideSculpt;

    /**
     * 是否二维刀路
     */
    private Boolean is2v;

    /**
     * 是否侧面二维刀路
     */
    private Boolean isSide2v;

    /**
     * 造型数据
     */
    private String modelData;

    /**
     * 是否双面造型
     */
    private Boolean doubleSideModel;

    /**
     * 是否双面排孔
     */
    private Boolean doubleSideHole;

    /**
     * 是否正面造型
     */
    private Boolean frontModel;

    /**
     * 是否侧面造型
     */
    private Boolean backModel;

    /**
     * 正面排孔
     */
    private Boolean frontHole;

    /**
     * 反面排孔
     */
    private Boolean backHole;

    /**
     * 是否侧面造型
     */
    private Boolean sideModel;

    /**
     * 是否侧面排孔
     */
    private Boolean sideHole;
}