teldrive/pkg/models/file.go

27 lines
1.1 KiB
Go
Raw Normal View History

2023-08-07 03:32:46 +08:00
package models
import (
"database/sql"
2023-08-07 03:32:46 +08:00
"time"
2024-06-04 16:46:03 +08:00
2024-08-31 23:50:17 +08:00
"github.com/tgdrive/teldrive/pkg/schemas"
2024-06-04 16:46:03 +08:00
"gorm.io/datatypes"
2023-08-07 03:32:46 +08:00
)
type File struct {
2024-08-03 01:33:52 +08:00
Id string `gorm:"type:uuid;primaryKey;default:uuid7()"`
2024-06-04 16:46:03 +08:00
Name string `gorm:"type:text;not null"`
Type string `gorm:"type:text;not null"`
MimeType string `gorm:"type:text;not null"`
Size *int64 `gorm:"type:bigint"`
Category string `gorm:"type:text"`
Encrypted bool `gorm:"default:false"`
UserID int64 `gorm:"type:bigint;not null"`
Status string `gorm:"type:text"`
ParentID sql.NullString `gorm:"type:uuid;index"`
2024-06-04 16:46:03 +08:00
Parts datatypes.JSONSlice[schemas.Part] `gorm:"type:jsonb"`
ChannelID *int64 `gorm:"type:bigint"`
CreatedAt time.Time `gorm:"default:timezone('utc'::text, now())"`
UpdatedAt time.Time `gorm:"default:timezone('utc'::text, now())"`
2023-08-07 03:32:46 +08:00
}