package com.zt.plat.module.qms.business.config.controller.vo;

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

import java.util.List;

@Schema(description = "管理后台 - 存放位置新增/修改 Request VO")
@Data
public class ConfigWarehouseLocationSaveReqVO {

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

    @Schema(description = "父ID", example = "31498")
    private Long parentId;

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

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

    @Schema(description = "排序号")
    private Integer sortNo;

    @Schema(description = "容量", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "容量不能为空")
    private Integer capacity;

    @Schema(description = "主管部门id", example = "12738")
    private Long mainDepartmentId;

    @Schema(description = "主管部门名称", example = "张三")
    private String mainDepartmentName;

    @Schema(description = "数据类型（仓库、库位）", example = "2")
    private String dataType;

    @Schema(description = "仓库分类", example = "2")
    @NotEmpty(message = "仓库分类不能为空")
    private String warehouseType;

    @Schema(description = "所属部门")
    private String systemDepartmentCode;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "标签打印模板key")
    private String printTemplate;

    //===========扩展字段=======================
    @Schema(description = "权限列表")
    List<ConfigPermissionSaveReqVO> permissionList;
}