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

import com.cf.imes.framework.common.validation.NumberValid;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

@Schema(description = "管理后台 - 板材信息表 plate_{N}新增/修改 Request VO")
@Data
public class PlateSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "客户的商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "客户的商品编号不能为空")
    @Size(max = 32, message = "商品编号长度不能超过32个字符")
    private String goodsId;

    @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotEmpty(message = "商品名称不能为空")
    @Size(max = 64, message = "商品名称长度不能超过64个字符")
    private String goodsName;

    @Schema(description = "材质：颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "材质：颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板不能为空")
    @Size(max = 64, message = "材质长度不能超过64个字符")
    private String material;

    @Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "颜色不能为空")
    @Size(max = 32, message = "颜色长度不能超过32个字符")
    private String color;

    @Schema(description = "纹理", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "纹理不能为空")
    private Boolean texture;

    @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "宽度不能为空")
    @NumberValid(name = "宽度")
    private Double width;

    @Schema(description = "高度", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "高度不能为空")
    @NumberValid(name = "高度")
    private Double height;

    @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "厚度不能为空")
    @NumberValid(name = "厚度")
    private Double thickness;

    @Schema(description = "价格", example = "3380")
    @NumberValid(name = "价格")
    private Double price;

    @Schema(description = "品牌")
    @Size(max = 64, message = "品牌长度不能超过64个字符")
    private String brand;

    @Schema(description = "规格")
    @Size(max = 64, message = "规格长度不能超过64个字符")
    private String spec;

    @Schema(description = "备注", example = "随便")
    @Size(max = 255, message = "备注长度不能超过255个字符")
    private String remark;

    private Long organId;
}