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 = "Groove")
@XmlAccessorType(XmlAccessType.FIELD)
// 凹槽信息
public class GrooveXmlVO implements Serializable {

    // 凹槽ID
    @XmlAttribute(name = "id")
    private String id;

    // 内部孤岛ID集合
    @XmlAttribute(name = "subIDs")
    private String subIDs;

    // 类型——矩形槽Rectangle、路径槽Path、内铣槽internalMilling、折返路径槽turnbackPath
    @XmlAttribute(name = "type")
    private String type;

    // 加工面——正面、反面、左侧面、右侧面、上侧面、下侧面、斜面
    @XmlAttribute(name = "face")
    private String face;

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

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

    // 深度
    @XmlAttribute(name = "depth")
    private String depth;

    // 加宽
    @XmlAttribute(name = "widthExtend")
    private String widthExtend;

    // 加长
    @XmlAttribute(name = "lengthExtend")
    private String lengthExtend;

    // 加深
    @XmlAttribute(name = "depthExtend")
    private String depthExtend;

    // 造型/凹槽(边缘)的刀路方向——内圈顺时针(最)外圈逆时针、内圈顺时针(最)外圈顺时针、内圈逆时针(最)外圈顺时针、内圈逆时针(最)外圈逆时针
    @XmlAttribute(name = "direction")
    private String direction;

    // 加工模式/方式——由内向外、由外向内
    @XmlAttribute(name = "mode")
    private String mode;

    // 圆角半径
    @XmlAttribute(name = "round")
    private String round;

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

    // 刀号
    @XmlAttribute(name = "toolNo")
    private String toolNo;

    // 刀直径
    @XmlAttribute(name = "toolDiameter")
    private String toolDiameter;

    // 刀路冗余量——偏移重叠量
    @XmlAttribute(name = "redundance")
    private String redundance;

    // 角度——二维刀路V型刀提角/清角用
    @XmlAttribute(name = "tangentAngle")
    private String tangentAngle;

    // 内层(不含内嵌凹槽内的孤岛)孤岛数量
    @XmlAttribute(name = "isletCount")
    private String isletCount;

    // 凹槽点信息
    @XmlElement(name = "Points")
    private PointXmlVOS pointXmlVOS;

    // 偏移刀路列表
    @XmlElement(name = "offsetLines")
    private OffsetLineXmlVOS offsetLineXmlVOS;

    // 原始造型(外)轮廓信息
    @XmlElement(name = "Outline")
    private OutlineXmlVO outlineXmlVO;

    @XmlAttribute(name = "result")
    private String result;
}
