init
This commit is contained in:
57
domain/models/asset.go
Normal file
57
domain/models/asset.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Asset struct {
|
||||
ID uint `gorm:"primarykey" json:"id"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
|
||||
DramaID *uint `gorm:"index" json:"drama_id,omitempty"`
|
||||
Drama *Drama `gorm:"foreignKey:DramaID" json:"drama,omitempty"`
|
||||
|
||||
EpisodeID *uint `gorm:"index" json:"episode_id,omitempty"`
|
||||
StoryboardID *uint `gorm:"index" json:"storyboard_id,omitempty"`
|
||||
StoryboardNum *int `json:"storyboard_num,omitempty"`
|
||||
|
||||
Name string `gorm:"type:varchar(200);not null" json:"name"`
|
||||
Description *string `gorm:"type:text" json:"description,omitempty"`
|
||||
Type AssetType `gorm:"type:varchar(20);not null;index" json:"type"`
|
||||
Category *string `gorm:"type:varchar(50);index" json:"category,omitempty"`
|
||||
URL string `gorm:"type:varchar(1000);not null" json:"url"`
|
||||
ThumbnailURL *string `gorm:"type:varchar(1000)" json:"thumbnail_url,omitempty"`
|
||||
LocalPath *string `gorm:"type:varchar(500)" json:"local_path,omitempty"`
|
||||
|
||||
FileSize *int64 `json:"file_size,omitempty"`
|
||||
MimeType *string `gorm:"type:varchar(100)" json:"mime_type,omitempty"`
|
||||
Width *int `json:"width,omitempty"`
|
||||
Height *int `json:"height,omitempty"`
|
||||
Duration *int `json:"duration,omitempty"`
|
||||
Format *string `gorm:"type:varchar(50)" json:"format,omitempty"`
|
||||
|
||||
ImageGenID *uint `gorm:"index" json:"image_gen_id,omitempty"`
|
||||
ImageGen ImageGeneration `gorm:"foreignKey:ImageGenID" json:"image_gen,omitempty"`
|
||||
|
||||
VideoGenID *uint `gorm:"index" json:"video_gen_id,omitempty"`
|
||||
VideoGen VideoGeneration `gorm:"foreignKey:VideoGenID" json:"video_gen,omitempty"`
|
||||
|
||||
IsFavorite bool `gorm:"default:false" json:"is_favorite"`
|
||||
ViewCount int `gorm:"default:0" json:"view_count"`
|
||||
}
|
||||
|
||||
type AssetType string
|
||||
|
||||
const (
|
||||
AssetTypeImage AssetType = "image"
|
||||
AssetTypeVideo AssetType = "video"
|
||||
AssetTypeAudio AssetType = "audio"
|
||||
)
|
||||
|
||||
func (Asset) TableName() string {
|
||||
return "assets"
|
||||
}
|
||||
Reference in New Issue
Block a user