package com.snack.server.module.file.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
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 lombok.Data;

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

/**
 * 文件上传记录
 *
 * 对应数据库表：upload_file
 */
@Data
@TableName("upload_file")
public class UploadFile implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

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

    /** 存储路径（不含域名前缀） */
    private String path;

    /** 访问 URL */
    private String url;

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

    /** MIME 类型 */
    private String contentType;

    /** 存储类型：local / qiniu / aliyun / tencent / minio */
    private String storageType;

    /** 业务类型：avatar / product / banner / chat / notice */
    private String bizType;

    /** 上传人 ID（用户/管理员） */
    private Long uploadBy;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
