package org.dromara.system.domain.vo;

import org.dromara.system.domain.FileCategory;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 文件分类视图对象 file_category
 *
 * @author Lion Li
 * @date 2024-01-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = FileCategory.class)
public class FileCategoryVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 分类ID
     */
    @ExcelProperty(value = "分类ID")
    private Long id;

    /**
     * 分类名称
     */
    @ExcelProperty(value = "分类名称")
    private String name;

    /**
     * 分类编码
     */
    @ExcelProperty(value = "分类编码")
    private String code;

    /**
     * 父分类ID（0表示顶级分类）
     */
    @ExcelProperty(value = "父分类ID")
    private Long parentId;

    /**
     * 分类类型（1图片 2视频 3音频 4文档 5其他）
     */
    @ExcelProperty(value = "分类类型")
    private Integer type;

    /**
     * 排序号
     */
    @ExcelProperty(value = "排序号")
    private Integer sort;

    /**
     * 分类图标
     */
    @ExcelProperty(value = "分类图标")
    private String icon;

    /**
     * 分类描述
     */
    @ExcelProperty(value = "分类描述")
    private String description;

    /**
     * 状态（0正常 1停用）
     */
    @ExcelProperty(value = "状态")
    private Integer status;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 子分类列表
     */
    private List<FileCategoryVo> children;

}
