package org.springblade.system.domain;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springblade.common.core.page.PageDomain;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author：liang.chao
 * @Date：2025/9/9 - 14:18
 * 档案目录实体
 */
@Data
public class ArchivalCatalogueDto extends PageDomain {
    private Integer id;
    @NotBlank(message = "分类名称或文件题名不能为空")
    @Length(max = 64, message = "分类名称或文件题名长度不能超过64个字符")
    private String contentName;
    private String parentName;
    @NotNull(message = "上级节点不能为空")
    private Integer parentId;
    private Integer level;
    private Integer sort;
    @NotBlank(message = "档案标识代码不能为空")
    private String markCode;
    @NotBlank(message = "案卷期限不能为空")
    @Length(max = 20, message = "案卷期限长度不能超过20个字符")
    private String term;
    @NotBlank(message = "归档责任单位不能为空")
    @Length(max = 20, message = "案卷期限长度不能超过20个字符")
    private String unitName;
    @NotBlank(message = "所属专业不能为空")
    @Length(max = 20, message = "案卷期限长度不能超过20个字符")
    private String major;
    @NotBlank(message = "文件分类标记不能为空")
    private String classifyMark;
    private String classifyMarkId;
    private String createTime;
    private String updateTime;
    private String createUserId;
    private String createUserName;
    private String updateUserId;
    private String updateUserName;
    private String delFlag;
    private String path;
    // 子节点列表（用于构建树）
    private List<ArchivalCatalogueDto> children = new ArrayList<>();
}
