using SqlSugar;
namespace Model.Entity.System
{
///
/// 文件上传记录表(每次上传都登记:来源 Provider、业务类型、访问 URL)
///
[SugarTable("sys_file_record")]
public class FileRecordEntity : BaseEntity
{
/// 存储后的文件名(含相对路径,如 2026/09/18/snowflake.jpg)
[SugarColumn(ColumnName = "FileName", ColumnDescription = "存储文件名(含相对路径)", Length = 255, IsNullable = false)]
public string FileName { get; set; }
/// 原始文件名(用户上传时的文件名)
[SugarColumn(ColumnName = "OriginalName", ColumnDescription = "原始文件名", Length = 255, IsNullable = true)]
public string? OriginalName { get; set; }
/// 访问 URL(Endpoint + 相对路径)
[SugarColumn(ColumnName = "Url", ColumnDescription = "访问URL", Length = 500, IsNullable = true)]
public string? Url { get; set; }
/// 文件大小(字节)
[SugarColumn(ColumnName = "Size", ColumnDescription = "文件大小(字节)")]
public long Size { get; set; }
/// 扩展名(含点,如 .jpg)
[SugarColumn(ColumnName = "Ext", ColumnDescription = "扩展名", Length = 20, IsNullable = true)]
public string? Ext { get; set; }
/// 使用的存储 Provider(冗余,便于排查)
[SugarColumn(ColumnName = "Provider", ColumnDescription = "存储Provider", Length = 20, IsNullable = true)]
public string? Provider { get; set; }
/// 使用的存储配置Id(关联 sys_file_storage.Id)
public long StorageId { get; set; }
/// 上传人
[SugarColumn(ColumnName = "Uploader", ColumnDescription = "上传人", Length = 50, IsNullable = true)]
public string? Uploader { get; set; }
/// 业务类型(equipment_attachment/qrcode/generic 等,便于按业务查询)
[SugarColumn(ColumnName = "BizType", ColumnDescription = "业务类型", Length = 50, IsNullable = true)]
public string? BizType { get; set; }
/// 业务Id(关联业务实体的 Id,可空)
[SugarColumn(ColumnName = "BizId", ColumnDescription = "业务Id", Length = 64, IsNullable = true)]
public string? BizId { get; set; }
}
}