package com.zxdmy.excite.system.entity.vo.space;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 文件表
 * </p>
 *
 * @author ss
 * @since 2026-01-28
 */
@Data
public class CloudFileVo implements Serializable {

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 文件大小
     */
    private String fileSize;

    /**
     * 文件格式
     */
    private String fileFormat;

    /**
     * 文件OSS地址
     */
    private String fileOss;

    /**
     * 文件封面地址
     */
    private String fileImage;

    /**
     * 文件排序
     */
    private Integer fileSort;

    /**
     * 0是文件夹  1是文件
     */
    private Integer fileFolder;

    /**
     * 父级文件ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long fileParentId;

    /**
     * 顶级文件ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long fileTopId;

    /**
     * 云盘结构目录
     */
    private String fileFolderPath;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建者ID
     */
    private Integer creatorId;

    /**
     * 创建者姓名
     */
    private String creatorName;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 更新者ID
     */
    private Integer updaterId;

    /**
     * 更新者姓名
     */
    private String updaterName;

    /**
     * 删除时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deleteTime;

    /**
     * 删除者ID
     */
    private Integer deleteId;

    /**
     * 删除者姓名
     */
    private String deleteName;



    private Integer roleUpload;
    private Integer roleDown;
    private Integer roleDelete;

    private Integer fileTop;

    private String title;

    private String checked;

}
