package com.cf.imes.module.executor.util.deviseData.structure;

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

/**
 * 孔明细,板上的孔的明细
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class HoleDetail {

    @Schema(description = "孔ID")
    private String id;

    @Schema(description = "孔名称，用于类型相同的孔，进行分组区分，一组的孔名称相同")
    private String holeName;

    @Schema(description = "打孔面(0正面, 1反面, 2侧面)")
    private Integer faceType;
    @Schema(description = "方向    0:其他(斜方向),1:上方向,2:右方向,3:下方向,4:左方向")
    private Integer direction;
    @Schema(description = "孔类型(0大孔, 10小孔, 20木削, 21木削大孔, 30层板钉, 40通孔, 50连接杆, -10造型孔)")
    private Integer holeType;

    // xml无法转换数据
    @Schema(description = "[加工面——正面、反面、左侧面、右侧面、上侧面、下侧面、斜面]")
    private String faceTypeStr;
    @Schema(description = "[方向——向后Z-、向前Z+、向右X+、向左X-、向下Y-、向上Y+、斜O]")
    private String directionStr;
    @Schema(description = "孔类型——简单孔(恒定直径的孔(盲孔、通孔/穿孔、间断孔))、沉头孔(恒定直径孔连接直径较大的孔(柱形、锥形))、锥孔、螺纹孔]")
    private String holeTypeStr;


    @Schema(description = "孔的起点坐标")
    private Double startX;
    private Double startY;
    private Double startZ;


    @Schema(description = " 打孔的半径-孔半径")
    private Double radius;


    @Schema(description = "孔的终点坐标")
    private Double endX;
    private Double endY;
    private Double endZ;

    @Schema(description = "深度")
    private Double depth;

    // xml新增数据
    @Schema(description = " 沉头孔内直径")
    private Double diameterInner;

    @Schema(description = " 沉头孔(台阶孔)深孔深度")
    private Double depthInner;

    @Schema(description = " 孔组X坐标偏移")
    private Double groupXOffset;

    @Schema(description = " 孔组Y坐标偏移")
    private Double groupYOffset;

    @Schema(description = " 孔组Z坐标偏移")
    private Double groupZOffset;

    @Schema(description = " 孔组数量")
    private Integer groupNumber;

    @Schema(description = "刀号")
    private String toolNo;

    @Schema(description = "刀名称")
    private String toolName;

    @Schema(description = "刀具起点X轴旋转角度")
    private Double toolStartRotateX;

    @Schema(description = "刀具起点Y轴旋转角度")
    private Double toolStartRotateY;

    @Schema(description = "刀具起点Z轴旋转角度")
    private Double toolStartRotateZ;

    @Schema(description = "刀具终点X轴旋转角度")
    private Double toolEndRotateX;

    @Schema(description = "刀具终点Y轴旋转角度")
    private Double toolEndRotateY;

    @Schema(description = "刀具终点Z轴旋转角度")
    private Double toolEndRotateZ;
}
