package com.cf.imes.module.executor.controller.admin.plate.vo;

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.math.BigDecimal;

/**
 *
 *
 * @author Gqr
 * @since 2025/12/23 13:40
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "管理后台 - 板件视图信息")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderViewPlatePageRespVO {
    @Schema(description = "板件id")
    private Long id;

    @Schema(description = "订单id")
    private Long orderId;

    @Schema(description = "大板id")
    private Long goodsId;

    @Schema(description = "板件编号")
    private String plateNo;

    @Schema(description = "自定义板编号")
    private String customPlateNo;

    @Schema(description = "板件名称")
    private String name;

    @Schema(description = "板材名称")
    private String goodsName;

    @Schema(description = "板件宽度")
    private BigDecimal width;

    @Schema(description = "板件高度")
    private BigDecimal height;

    @Schema(description = "板件厚度")
    private BigDecimal thickness;

    @Schema(description = "开料长")
    private BigDecimal splitHeight;

    @Schema(description = "开料宽")
    private BigDecimal splitWidth;

    @Schema(description = "板件CAD图纸ID")
    private Integer cadViewId;

    @Schema(description = "左封边厚度")
    private BigDecimal sealLeft;

    @Schema(description = "右封边厚度")
    private BigDecimal sealRight;

    @Schema(description = "上封边厚度")
    private BigDecimal sealUp;

    @Schema(description = "下封边厚度")
    private BigDecimal sealDown;

    @Schema(description = "左预留边")
    private BigDecimal reservedEdgeLeft;

    @Schema(description = "右预留边")
    private BigDecimal reservedEdgeRight;

    @Schema(description = "上预留边")
    private BigDecimal reservedEdgeUp;

    @Schema(description = "下预留边")
    private BigDecimal reservedEdgeDown;

    @Schema(description = "材质")
    private String material;

    @Schema(description = "颜色")
    private String color;

    @Schema(description = "CAD图纸文件ID")
    private Long cadViewFileId;

    @Schema(description = "CAD设计板编号")
    private String customNumber;

    @Schema(description = "面积")
    private BigDecimal area;

    @Schema(description = "纹理")
    private Integer texture;

    @Schema(description = "是否造型")
    private Boolean isSculpt;

    @Schema(description = "是否异形")
    private Boolean isSpecialShaped;

    @Schema(description = "是否排孔")
    private Boolean isRowHole;

    @Schema(description = "排版面")
    private Integer holeArrange;

    @Schema(description = "开门类型")
    private Integer openDoorType;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "房间名称")
    private String roomName;

    @Schema(description = "柜体名称")
    private String bodyName;

    @Schema(description = "加工组名称")
    private String processGroupName;

    @Schema(description = "部件名称")
    private String componentName;

    @Schema(description = "是否二维刀路")
    private Boolean is2v;

    @Schema(description = "是否双面造型")
    private Boolean doubleSideModel;

    @Schema(description = "是否双面排孔")
    private Boolean doubleSideHole;

    @Schema(description = "是否正面造型")
    private Boolean frontModel;

    @Schema(description = "是否侧面造型")
    private Boolean backModel;

    @Schema(description = "是否正面排孔")
    private Boolean frontHole;

    @Schema(description = "是否反面排孔")
    private Boolean backHole;

    @Schema(description = "是否侧面造型")
    private Boolean sideModel;

    @Schema(description = "是否侧面排孔")
    private Boolean sideHole;

    @Schema(description = "是否侧面二维刀路")
    private Boolean isSide2v;

    @Schema(description = "品牌")
    private String brand;
}
