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

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cf.imes.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 生产单板件分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PlatePageReqVO extends PageParam {

    @Schema(description = "生产单号", example = "11087")
    private Long orderId;

    @Schema(description = "板名称", example = "晨丰")
    private String name;

    @Schema(description = "自定义板编号,设计有板编号，则保留设计板编号；设计没有且在机台设置中设置了自定义板编号规则，则按规则自动生成")
    private String plateNo;

    @Schema(description = "板类型，0 层板 1 立板 2 背板", example = "1")
    private Integer type;

    @Schema(description = "商品 ID", example = "14195")
    private String goodsId;

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

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

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

    @Schema(description = "拆单宽度")
    private BigDecimal splitWidth;

    @Schema(description = "拆单高度")
    private BigDecimal splitHeight;

    @Schema(description = "拆单厚度")
    private BigDecimal splitThickness;

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

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

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

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

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

    @Schema(description = "纹路类型，0 正纹 1 可翻转 2 反纹")
    private Integer texture;

    @Schema(description = "孔面类型，0 正面 1 反面 2 侧面")
    private Integer holeFace;

    @Schema(description = "排孔类型，0 正纹 1 反面 2 随意面")
    private Integer holeArrange;

    @Schema(description = "异型孔数量", example = "28477")
    private Short unregularPointCount;

    @Schema(description = "正面孔数量", example = "20823")
    private Short frontHoleCount;

    @Schema(description = "背面孔数量", example = "3441")
    private Short backHoleCount;

    @Schema(description = "侧面孔数量", example = "25509")
    private Short sideHoleCount;

    @Schema(description = "正面造型量", example = "31547")
    private Short frontModelCount;

    @Schema(description = "背面造型量", example = "26725")
    private Short backModelCount;

    @Schema(description = "是否门板")
    private Boolean isDoor;

    @Schema(description = "开门类型，0 无 1 左 2 右 3 上 4 下", example = "2")
    private Integer openDoorType;

    @Schema(description = "异型偏移 x")
    private Double offsetX;

    @Schema(description = "异型偏移 y")
    private Double offsetY;

    @Schema(description = "是否孤形对角")
    private Boolean isArcAcross;

    @Schema(description = "模块类型 ID", example = "12800")
    private Long moduleTypeId;

    @Schema(description = "排单过滤类型，1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠", example = "1")
    private Integer filterType;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "是否作废")
    private Boolean isCancel;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}