package org.dromara.member.domain.vo;

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.member.domain.AppFile;

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

/**
 * App端文件信息视图对象 app_file
 *
 * @author pengles
 */
@Data
@AutoMapper(target = AppFile.class)
public class AppFileVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 文件ID
     */
    private Long fileId;

    /**
     * 用户ID
     */
    private Long userId;

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

    /**
     * 原始文件名
     */
    private String originalName;

    /**
     * 文件路径
     */
    private String filePath;

    /**
     * 文件URL
     */
    private String fileUrl;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件类型（MIME类型）
     */
    private String fileType;

    /**
     * 文件后缀
     */
    private String fileSuffix;

    /**
     * 文件分类（1头像 2文档 3图片 4视频 5音频 6其他）
     */
    private Integer fileCategory;

    /**
     * 存储服务商
     */
    private String storageService;

    /**
     * 文件状态（0正常 1删除）
     */
    private String status;

    /**
     * 下载次数
     */
    private Long downloadCount;

    /**
     * 是否公开（0私有 1公开）
     */
    private String isPublic;

    /**
     * 文件MD5值
     */
    private String fileMd5;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

}