package com.zt.plat.module.base.controller.admin.materialproperties.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 物料属性新增/修改 Request VO")
@Data
public class MaterialPropertiesSaveReqVO {

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

    @Schema(description = "属性编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "属性编码不能为空")
    private String code;

    @Schema(description = "属性名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "属性名称不能为空")
    private String name;

    @Schema(description = "计量单位量ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "30468")
    private Long unitQuantityId;

    @Schema(description = "属性类型(业务字典数据值)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "属性类型不能为空")
    private String dictionaryDataValue;

    @Schema(description = "数据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "数据类型不能为空")
    private String dataType;

    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "备注不能为空")
    private String remark;

    @Schema(description = "部门ID,私有属性有值,通用属性无值")
    private Long deptId;

}