package com.mini.capi.biz.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 文件信息表
 * </p>
 *
 * @author gaoxq
 * @since 2025-11-16
 */
@Getter
@Setter
@TableName("biz_files")
public class BizFiles implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 文件ID
     */
    @TableId(value = "file_id", type = IdType.AUTO)
    private String fileId;

    /**
     * 文件名称（含扩展名）
     */
    @TableField("file_name")
    private String fileName;

    /**
     * 所属文件夹ID（关联folders表）
     */
    @TableField("folder_id")
    private String folderId;

    /**
     * 文件大小（字节）
     */
    @TableField("file_size")
    private Long fileSize;

    /**
     * 文件类型（如：image/jpeg、application/pdf）
     */
    @TableField("file_type")
    private String fileType;

    /**
     * 文件存储路径（物理路径或云存储URL）
     */
    @TableField("file_path")
    private String filePath;

    /**
     * 上传人ID（关联用户表）
     */
    @TableField("creator_id")
    private Integer creatorId;

    /**
     * 上传时间
     */
    @TableField("upload_time")
    private LocalDateTime uploadTime;

    /**
     * 更新时间（如修改名称）
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除（0-未删除，1-已删除）
     */
    @TableField("is_deleted")
    private Byte isDeleted;

    /**
     * 文件版本号（用于版本控制）
     */
    @TableField("version")
    private Integer version;

    /**
     * 文件MD5值（用于去重校验）
     */
    @TableField("md5")
    private String md5;
}
