60 lines
2.2 KiB
Go
60 lines
2.2 KiB
Go
|
|
package model
|
||
|
|
|
||
|
|
import "time"
|
||
|
|
|
||
|
|
// File 文件模型
|
||
|
|
type File struct {
|
||
|
|
ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
|
||
|
|
Name string `json:"name" gorm:"size:256;not null"`
|
||
|
|
Extension string `json:"extension" gorm:"size:32"`
|
||
|
|
FolderID uint64 `json:"folder_id" gorm:"index;not null"`
|
||
|
|
OwnerID uint64 `json:"owner_id" gorm:"index;not null"`
|
||
|
|
Size int64 `json:"size" gorm:"default:0"`
|
||
|
|
MD5 string `json:"md5" gorm:"size:32;index"`
|
||
|
|
SHA256 string `json:"sha256" gorm:"size:64"`
|
||
|
|
StorageKey string `json:"storage_key" gorm:"size:512;not null"`
|
||
|
|
StoragePolicyID uint64 `json:"storage_policy_id" gorm:"index;default:1"`
|
||
|
|
MimeType string `json:"mime_type" gorm:"size:128"`
|
||
|
|
IsFavorite int8 `json:"is_favorite" gorm:"default:0"`
|
||
|
|
Status int8 `json:"status" gorm:"default:1"`
|
||
|
|
DownloadCount int `json:"download_count" gorm:"default:0"`
|
||
|
|
Version int `json:"version" gorm:"default:1"` // 乐观锁版本号
|
||
|
|
CreatedAt time.Time `json:"created_at"`
|
||
|
|
UpdatedAt time.Time `json:"updated_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TableName 指定表名
|
||
|
|
func (File) TableName() string {
|
||
|
|
return "fs_file"
|
||
|
|
}
|
||
|
|
|
||
|
|
// FileAssociation 业务文件关联模型
|
||
|
|
// 用于兼容 OA 系统的文件关联
|
||
|
|
type FileAssociation struct {
|
||
|
|
ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
|
||
|
|
BizID string `json:"biz_id" gorm:"size:128;index;not null"`
|
||
|
|
BizType string `json:"biz_type" gorm:"size:64;index;not null"`
|
||
|
|
FileID uint64 `json:"file_id" gorm:"not null"`
|
||
|
|
CreatedAt time.Time `json:"created_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TableName 指定表名
|
||
|
|
func (FileAssociation) TableName() string {
|
||
|
|
return "fs_file_association"
|
||
|
|
}
|
||
|
|
|
||
|
|
// FilePermission 文件权限模型
|
||
|
|
type FilePermission struct {
|
||
|
|
ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
|
||
|
|
FileID uint64 `json:"file_id" gorm:"not null"`
|
||
|
|
UserID uint64 `json:"user_id" gorm:"default:0"`
|
||
|
|
RoleID uint64 `json:"role_id" gorm:"default:0"`
|
||
|
|
PermLevel string `json:"perm_level" gorm:"size:16;default:read"`
|
||
|
|
GrantBy uint64 `json:"grant_by" gorm:"not null"`
|
||
|
|
CreatedAt time.Time `json:"created_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
func (FilePermission) TableName() string {
|
||
|
|
return "fs_file_permission"
|
||
|
|
}
|