21 lines
1.1 KiB
Go
21 lines
1.1 KiB
Go
package model
|
|
|
|
import "portal-mini-go/internal/pkg/types"
|
|
|
|
// File 记录一次上传文件的元数据;实际内容由 StorageKey 指向具体存储实现(本地/对象存储)。
|
|
type File struct {
|
|
ID uint64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
|
StorageKey string `gorm:"type:varchar(255);index" json:"storage_key"` // 如 2006/01/02/<rand>.ext
|
|
Filename string `gorm:"type:varchar(255)" json:"filename"` // 落盘文件名(含扩展名)
|
|
OriginName string `gorm:"type:varchar(255)" json:"origin_name"` // 用户上传时的原始文件名
|
|
MimeType string `gorm:"type:varchar(128)" json:"mime_type"`
|
|
Ext string `gorm:"type:varchar(32)" json:"ext"` // 小写扩展名,不含点
|
|
Size int64 `gorm:"type:bigint" json:"size"`
|
|
UploaderType string `gorm:"type:varchar(16)" json:"uploader_type"` // admin | ma
|
|
UploaderID uint64 `gorm:"type:bigint;index" json:"uploader_id"`
|
|
URL string `gorm:"type:varchar(512)" json:"url"`
|
|
CreatedAt types.Time `json:"created_at"`
|
|
}
|
|
|
|
func (File) TableName() string { return "files" }
|