package com.cf.imes.module.plan.dal.elasticsearch;

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;

import java.util.List;

/**
 * 造型明细
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "管理后台 - 造型信息")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ModelDetail {

    @Schema(description = "造型ID")
    private Integer modelID;

    @Schema(description = "刀路ID")
    private Integer lineID;

    @Schema(description = "内部孤岛ID集合")
    private String[] subIDs;

    @Schema(description = "类型——矩形槽Rectangle、路径槽Path、内铣槽internalMilling、折返路径槽turnbackPath")
    private String type; // 目前只在xml中

    @Schema(description = "根据是否为正面，face有不同的含义")
    private Integer faceType;

    // xml更新
    @Schema(description = "加工面——正面、反面、左侧面、右侧面、上侧面、下侧面、斜面")
    private String grooveFace; // 目前只在xml中

    @Schema(description = "造型长度")
    private Double width;
    @Schema(description = "造型宽度")
    private Double length;
    @Schema(description = "造型深度")
    private Double depth;

    @Schema(description = "圆角半径")
    private Double round; // 目前只在xml中

    @Schema(description = "刀路冗余量（偏移重叠量）")
    private Double redundance; // 目前只在xml中
    @Schema(description = "角度(二维刀路V型刀提角/清角用)")
    private Double tangentAngle; // 目前只在xml中

    @Schema(description = "造像使用刀具名称")
    private String knifeName;
    @Schema(description = "刀号")
    private String toolNo;
    @Schema(description = "刀半径")
    private Double knifeRadius;


    @Schema(description = "造型数据")
    private IOriginModelingData originModeling;

    @Schema(description = "造型点列表")
    private List<PointList> pointList;

    @Schema(description = "造型偏移量列表-模块偏移数据")
    private List<OffSetList> offSetList;


    // xml新增
    @Schema(description = "加工模式/方式——由内向外、由外向内")
    private String mode;

}
