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

import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 存放位置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ConfigWarehouseLocationRespVO {

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

//    @Dict(dictTable="t_cfg_wrh_loc",dicCode="id",dicText="name")
    @Schema(description = "父ID", example = "31498")
    @ExcelProperty("父ID")
    private Long parentId;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("名称")
    private String name;

    @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("编码")
    private String code;

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

    @Schema(description = "容量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("容量")
    private Integer capacity;

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

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

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

    @Schema(description = "仓库分类", example = "2")
    @ExcelProperty("仓库分类")
    private String warehouseType;

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

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

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

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

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

    @Schema(description = "仓库名称")
    String warehouseName;

    @Schema(description = "仓库编码")
    String warehouseCode;
}