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

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.cf.imes.framework.excel.core.annotations.EnumFormat;
import com.cf.imes.framework.excel.core.convert.EnumBoolValConvert;
import com.cf.imes.framework.excel.core.convert.EnumConvert;
import com.cf.imes.framework.excel.core.enums.WhetherEnum;
import com.cf.imes.module.executor.enums.veneer.VeneerProductLevelEnum;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

/**
 *
 *
 * @author Gqr
 * @since 2026/1/5 8:59
 */
@Schema(description = "生产管理 - 贴皮管理分页 Response VO")
@Data
@ExcelIgnoreUnannotated
@JsonInclude(JsonInclude.Include.NON_NULL)
public class VeneerRespVO {
    @Schema(description = "贴皮id")
    private Long id;

    @Schema(description = "贴皮编号")
    @ExcelProperty("veneer.export.head.veneerNo")
    private String veneerNo;

    @Schema(description = "源贴皮编号")
    private String sourceVeneerNo;

    @Schema(description = "批次号")
    @ExcelProperty("veneer.export.head.batchNo")
    private String batchNo;

    @Schema(description = "分类名称")
    @ExcelProperty("veneer.export.head.classificationName")
    private String classificationName;

    @Schema(description = "贴皮名称")
    @ExcelProperty("veneer.export.head.veneerName")
    private String veneerName;

    @Schema(description = "产品等级，0：A类、1：B类、2：C类")
    @ExcelProperty(value = "veneer.export.head.productLevel", converter = EnumConvert.class)
    @EnumFormat(value = VeneerProductLevelEnum.class)
    private Integer productLevel;

    @Schema(description = "颜色")
    @ExcelProperty("veneer.export.head.color")
    private String color;

    @Schema(description = "材质")
    @ExcelProperty("veneer.export.head.material")
    private String material;

    @Schema(description = "长")
    @ExcelProperty("veneer.export.head.length")
    private BigDecimal length;

    @Schema(description = "宽")
    @ExcelProperty("veneer.export.head.width")
    private BigDecimal width;

    @Schema(description = "厚")
    @ExcelProperty("veneer.export.head.thickness")
    private BigDecimal thickness;

    @Schema(description = "品牌")
    @ExcelProperty("veneer.export.head.brand")
    private String brand;

    @Schema(description = "规格")
    @ExcelProperty("veneer.export.head.spec")
    private String spec;

    @Schema(description = "厂家")
    @ExcelProperty("veneer.export.head.factory")
    private String factory;

    @Schema(description = "数量")
    @ExcelProperty("veneer.export.head.num")
    private Integer num;

    @Schema(description = "瑕疵")
    @ExcelProperty(value = "veneer.export.head.defect", converter = EnumBoolValConvert.class)
    @EnumFormat(value = WhetherEnum.class)
    private Boolean defect;

    @Schema(description = "备注")
    @ExcelProperty("veneer.export.head.remark")
    private String remark;

    @Schema(description = "状态，0：未使用、1：已使用")
    private Integer status;

    @Schema(description = "瑕疵数据")
    private String defectData;

    @Schema(description = "贴皮文件ID")
    private Long fileId;
}
