package com.aegis.file.domain;

import com.aegis.common.core.domain.BaseEntity;

/**
 * 文件信息实体类 sys_file_info
 * 
 * @author aegis
 */
public class FileInfo extends BaseEntity {
    
    private static final long serialVersionUID = 1L;
    
    /** 文件ID */
    private Long id;
    
    /** 文件存储路径（相对路径，如：/profile/upload/2025/11/05/test_123456.pdf） */
    private String filePath;
    
    /** 原始文件名 */
    private String originalName;
    
    /** 文件大小（字节） */
    private Long fileSize;
    
    /** 文件类型（扩展名，如jpg、pdf） */
    private String fileType;
    
    /** MIME类型 */
    private String mimeType;
    
    /** 上传者用户ID */
    private Long uploadUserId;
    
    /** 上传者姓名（冗余字段） */
    private String uploadUserName;
    
    /** 文件分类：document-文档，image-图片，video-视频等 */
    private String fileCategory;
    
    /** 文件状态：normal-正常，deleted-已删除 */
    private String status;
    
    /** 下载次数 */
    private Integer downloadCount;
    
    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getOriginalName() {
        return originalName;
    }

    public void setOriginalName(String originalName) {
        this.originalName = originalName;
    }

    public Long getFileSize() {
        return fileSize;
    }

    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }

    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    public Long getUploadUserId() {
        return uploadUserId;
    }

    public void setUploadUserId(Long uploadUserId) {
        this.uploadUserId = uploadUserId;
    }

    public String getUploadUserName() {
        return uploadUserName;
    }

    public void setUploadUserName(String uploadUserName) {
        this.uploadUserName = uploadUserName;
    }

    public String getFileCategory() {
        return fileCategory;
    }

    public void setFileCategory(String fileCategory) {
        this.fileCategory = fileCategory;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getDownloadCount() {
        return downloadCount;
    }

    public void setDownloadCount(Integer downloadCount) {
        this.downloadCount = downloadCount;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String toString() {
        return "FileInfo{" +
                "id=" + id +
                ", filePath='" + filePath + '\'' +
                ", originalName='" + originalName + '\'' +
                ", fileSize=" + fileSize +
                ", fileType='" + fileType + '\'' +
                ", mimeType='" + mimeType + '\'' +
                ", uploadUserId=" + uploadUserId +
                ", uploadUserName='" + uploadUserName + '\'' +
                ", fileCategory='" + fileCategory + '\'' +
                ", status='" + status + '\'' +
                ", downloadCount=" + downloadCount +
                ", delFlag='" + delFlag + '\'' +
                '}';
    }
}