Files
portal-mini-go/internal/model/file.go
T
2026-10-27 22:48:36 +08:00

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" }