mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package pkg
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"time"
|
|
)
|
|
|
|
// RecordPlanStream 录制计划流信息模型
|
|
type RecordPlanStream struct {
|
|
PlanID uint `json:"plan_id" gorm:"primaryKey;type:bigint;not null"` // 录制计划ID
|
|
StreamPath string `json:"stream_path" gorm:"primaryKey;type:varchar(255)"`
|
|
Fragment string `json:"fragment" gorm:"type:varchar(255)"`
|
|
FilePath string `json:"file_path" gorm:"type:varchar(255)"`
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
DeletedAt gorm.DeletedAt `gorm:"index"`
|
|
Enable bool `json:"enable" gorm:"default:false"` // 是否启用
|
|
RecordType string `json:"record_type" gorm:"type:varchar(255)"`
|
|
}
|
|
|
|
// TableName 设置表名
|
|
func (RecordPlanStream) TableName() string {
|
|
return "record_plans_streams"
|
|
}
|
|
|
|
// ScopeStreamPathLike 模糊查询 StreamPath
|
|
func ScopeStreamPathLike(streamPath string) func(db *gorm.DB) *gorm.DB {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
if streamPath != "" {
|
|
return db.Where("record_plans_streams.stream_path LIKE ?", "%"+streamPath+"%")
|
|
}
|
|
return db
|
|
}
|
|
}
|
|
|
|
// ScopeOrderByCreatedAtDesc 按创建时间倒序
|
|
func ScopeOrderByCreatedAtDesc() func(db *gorm.DB) *gorm.DB {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
return db.Order("record_plans_streams.created_at DESC")
|
|
}
|
|
}
|
|
|
|
// ScopeRecordPlanID 按录制计划ID查询
|
|
func ScopeRecordPlanID(recordPlanID uint) func(db *gorm.DB) *gorm.DB {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
if recordPlanID > 0 {
|
|
return db.Where(&RecordPlanStream{PlanID: recordPlanID})
|
|
}
|
|
return db
|
|
}
|
|
}
|