init
This commit is contained in:
52
domain/models/video_merge.go
Normal file
52
domain/models/video_merge.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/datatypes"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type VideoMergeStatus string
|
||||
|
||||
const (
|
||||
VideoMergeStatusPending VideoMergeStatus = "pending"
|
||||
VideoMergeStatusProcessing VideoMergeStatus = "processing"
|
||||
VideoMergeStatusCompleted VideoMergeStatus = "completed"
|
||||
VideoMergeStatusFailed VideoMergeStatus = "failed"
|
||||
)
|
||||
|
||||
type VideoMerge struct {
|
||||
ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
|
||||
EpisodeID uint `gorm:"not null;index" json:"episode_id"`
|
||||
DramaID uint `gorm:"not null;index" json:"drama_id"`
|
||||
Title string `gorm:"type:varchar(200)" json:"title"`
|
||||
Provider string `gorm:"type:varchar(50);not null" json:"provider"`
|
||||
Model *string `gorm:"type:varchar(100)" json:"model,omitempty"`
|
||||
Status VideoMergeStatus `gorm:"type:varchar(20);not null;default:'pending'" json:"status"`
|
||||
Scenes datatypes.JSON `gorm:"type:json;not null" json:"scenes"`
|
||||
MergedURL *string `gorm:"type:varchar(500)" json:"merged_url,omitempty"`
|
||||
Duration *int `gorm:"type:int" json:"duration,omitempty"`
|
||||
TaskID *string `gorm:"type:varchar(100)" json:"task_id,omitempty"`
|
||||
ErrorMsg *string `gorm:"type:text" json:"error_msg,omitempty"`
|
||||
CreatedAt time.Time `gorm:"not null;autoCreateTime" json:"created_at"`
|
||||
CompletedAt *time.Time `json:"completed_at,omitempty"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
|
||||
Episode Episode `gorm:"foreignKey:EpisodeID" json:"episode,omitempty"`
|
||||
Drama Drama `gorm:"foreignKey:DramaID" json:"drama,omitempty"`
|
||||
}
|
||||
|
||||
type SceneClip struct {
|
||||
SceneID uint `json:"scene_id"`
|
||||
VideoURL string `json:"video_url"`
|
||||
StartTime float64 `json:"start_time"`
|
||||
EndTime float64 `json:"end_time"`
|
||||
Duration float64 `json:"duration"`
|
||||
Order int `json:"order"`
|
||||
Transition map[string]interface{} `json:"transition"`
|
||||
}
|
||||
|
||||
func (v *VideoMerge) TableName() string {
|
||||
return "video_merges"
|
||||
}
|
||||
Reference in New Issue
Block a user