package com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import jakarta.xml.bind.annotation.*;
import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "Block")
@XmlAccessorType(XmlAccessType.FIELD)
// 板件信息
public class BlockXmlVO implements Serializable {

    // 设计编号
    @XmlAttribute(name = "designCode")
    private String designCode;

    // 生产编号
    @XmlAttribute(name = "productionCode")
    private String productionCode;

    // 名称
    @XmlAttribute(name = "name")
    private String name;

    // 类型——类型——背板类、层板类、立板类 -- order_plate_type
    @XmlAttribute(name = "type")
    private String type;

    // 是否见光板/面板 ——是/否
    @XmlAttribute(name = "visible")
    private String visible;

    // 开向——左开、右开、上开、下开、非门板 -- doorOpeningDirections
    @XmlAttribute(name = "openDirection")
    private String openDirection;

    // 设计纹路——正纹、反纹、可翻转 -- grainType
    @XmlAttribute(name = "texture")
    private String texture;

    // 设计饰面——无、单面、双面
    @XmlAttribute(name = "coatingType")
    private String coatingType;

    // 成品长
    @XmlAttribute(name = "length")
    private String length;

    // 成品宽
    @XmlAttribute(name = "width")
    private String width;

    // 成品厚
    @XmlAttribute(name = "thickness")
    private String thickness;

    // 坯料长
    @XmlAttribute(name = "rawLength")
    private String rawLength;

    // 坯料宽
    @XmlAttribute(name = "rawWidth")
    private String rawWidth;

    // 坯料厚
    @XmlAttribute(name = "rawThickness")
    private String rawThickness;

    // 开料长
    @XmlAttribute(name = "cuttingLength")
    private String cuttingLength;

    // 开料宽
    @XmlAttribute(name = "cuttingWidth")
    private String cuttingWidth;

    // 开料厚
    @XmlAttribute(name = "cuttingThickness")
    private String cuttingThickness;

    // 成倍拆单数量
    @XmlAttribute(name = "multipleNumber")
    private String multipleNumber;

    // 成倍拆单序号
    @XmlAttribute(name = "multipleNo")
    private String multipleNo;

    // 异形——是/否
    @XmlAttribute(name = "unregular")
    private String unregular;

    // 挖槽——是/否
    @XmlAttribute(name = "slotting")
    private String slotting;

    // 排版面——设计正面、设计反面、随意面 -- typographyType
    @XmlAttribute(name = "layoutFace")
    private String layoutFace;

    // 正面饰面颜色、无
    @XmlAttribute(name = "coatingObverse")
    private String coatingObverse;

    // 反面饰面颜色、无
    @XmlAttribute(name = "coatingReverse")
    private String coatingReverse;

    // 长度单位
    @XmlAttribute(name = "unit")
    private String unit;

    // 是否钻孔
    @XmlAttribute(name = "drilling")
    private String drilling;

    // 房间名称
    @XmlAttribute(name = "roomName")
    private String roomName;

    // 房间号
    @XmlAttribute(name = "roomCode")
    private String roomCode;

    // 房间名称
    @XmlAttribute(name = "boxName")
    private String boxName;

    // 柜体号
    @XmlAttribute(name = "boxCode")
    private String boxCode;

    // 加工组号
    @XmlAttribute(name = "groupCodes")
    private String groupCodes;

    // 柜体名称
    @XmlAttribute(name = "groupName")
    private String groupName;

    // 模块名称
    @XmlAttribute(name = "moduleName")
    private String moduleName;

    // 模块号
    @XmlAttribute(name = "moduleCode")
    private String moduleCode;



    // 基点X坐标
    @XmlAttribute(name = "basePointX")
    private String basePointX;

    // 基点Y坐标
    @XmlAttribute(name = "basePointY")
    private String basePointY;

    // 基点Z坐标
    @XmlAttribute(name = "basePointZ")
    private String basePointZ;

    // 绕X轴旋转角度
    @XmlAttribute(name = "axisXrotate")
    private String axisXrotate;

    // 绕Y轴旋转角度
    @XmlAttribute(name = "axisYrotate")
    private String axisYrotate;

    // 绕Z轴旋转角度
    @XmlAttribute(name = "axisZrotate")
    private String axisZrotate;



    // 成品(设计成型/已封边/贴皮或涂装的板件)轮廓信息
    @XmlElement(name = "Outline")
    private OutlineXmlVO outlineXmlVO ;

    // 坯料(还需进行精修/铣削/打磨的板材)轮廓信息
    @XmlElement(name = "RawOutline")
    private RawOutlineXmlVO rawOutlineXmlVO ;

    // 开料成型(精修/铣削/打磨完成，未封边/贴皮或涂装的板材)轮廓信息
    @XmlElement(name = "CuttingOutline")
    private CuttingOutlineXmlVO cuttingOutlineXmlVO ;

    // 孔信息
    @XmlElement(name = "Holes")
    private HoleXmlVOS holeXmlVOS;

    // 凹槽信息 / 造型
    @XmlElement(name = "Grooves")
    private GrooveXmlVOS grooveXmlVOS ;

    // 孤岛列表
    @XmlElement(name = "Islets")
    private IsletXmlVOS isletXmlVOS ;

    // 关联配件/组件列表
    @XmlElement(name = "correlations")
    private CorrelationXmlVOS correlationXmlVOS;

    // 备注
    @XmlElement(name = "Remarks")
    private RemarkXmlVOS remarkXmlVOS;
}
