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

import com.cf.imes.framework.common.validation.NumberValid;
import com.cf.imes.module.executor.validation.manage.placeStyle.ValidPlaceStyle;
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;
import java.math.BigDecimal;

/**
 * 余料修改字段
 */
@Schema(description = "管理后台 - 余料修改字段 VO")
@Data
public class RemainPlateUpSaveVO {

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

    @Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "长度不能为空")
    @NumberValid(name = "长度")
    private BigDecimal length;

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

    @Schema(description = "纹理 有 无", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean texture;

    @Schema(description = "材料", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "材料不能为空")
    @Size(max = 50, message = "材料长度不能超过50个字符")
    private String material;

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

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

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

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

    @Schema(description = "放置样式", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "余料放置样式不可为空")
    @ValidPlaceStyle
    private Integer placeStyle;

    @Schema(description = "轮廊数据，Json 串", requiredMode = Schema.RequiredMode.REQUIRED)
    private String outLineJson;
}
