go-common/app/admin/main/tv/model/modules.go
2019-04-22 18:49:16 +08:00

167 lines
4.3 KiB
Go

package model
import (
"fmt"
"go-common/library/time"
)
const (
//ModulesNotDelete module not delete
ModulesNotDelete = 0
//ModulesDelete module delete
ModulesDelete = 1
//ModulesValid module is valid
ModulesValid = 1
//ModulesPublishYes module is publish status in MC
ModulesPublishYes = 1
//ModulesPublishNo module is not publish status in MC
ModulesPublishNo = 0
//PageMain 主页
PageMain = 0
//PageJP 追番
PageJP = 1
//PageMovie 电影
PageMovie = 2
//PageDocumentary 纪录片
PageDocumentary = 3
//PageCN 国创
PageCN = 4
//PageSoapopera 电视剧
PageSoapopera = 5
//TypeSevenFocus 首页七格焦点图
TypeSevenFocus = 1
//TypeFiveFocus 5格焦点
TypeFiveFocus = 2
//TypeSixFocus 6格焦点
TypeSixFocus = 3
//TypeVertListFirst 竖图1列表
TypeVertListFirst = 4
//TypeVertListSecond 竖图2列表
TypeVertListSecond = 5
//TypeHorizList 横图列表
TypeHorizList = 6
//TypeZhuiFan 追番模块
TypeZhuiFan = 7
)
// Modules is use for Modular
type Modules struct {
ID uint64 `json:"id"`
PageID string `json:"page_id" form:"page_id" validate:"required"`
Flexible string `json:"flexible" form:"flexible" validate:"required"`
Icon string `json:"icon" form:"icon"`
Title string `json:"title" form:"title" validate:"required"`
Capacity uint64 `json:"capacity" form:"capacity" validate:"required"`
More string `json:"more" form:"more" validate:"required"`
Order uint8 `json:"order"`
Moretype string `json:"moretype" form:"moretype"`
Morepage int64 `json:"morepage" form:"morepage"`
Deleted uint8 `json:"-"`
Valid uint8 `json:"valid"`
ModCore
}
// ModulesAddParam is use for Modular add param
type ModulesAddParam struct {
ID uint64 `form:"id" validate:"required"`
PageID string `form:"page_id" validate:"required"`
Flexible string `form:"flexible" validate:"required"`
Icon string `form:"icon"`
Title string `form:"title" validate:"required"`
Capacity uint64 `form:"capacity" validate:"required"`
More string `form:"more" validate:"required"`
Moretype string `json:"moretype" form:"moretype"`
Morepage int64 `json:"morepage" form:"morepage"`
Order uint8
ModCore
}
// ModCore def.
type ModCore struct {
Type string `json:"type" form:"type" validate:"required"`
Source string `json:"source" form:"source" validate:"required"`
SrcType int `json:"src_type" form:"src_type" validate:"required"`
}
//ModPub is used for store publish status
type ModPub struct {
Time string
State uint8
}
//ModulesList is used for function module list
type ModulesList struct {
Items []*Modules `json:"items"`
PubState uint8 `json:"pubstate"`
PubTime string `json:"pubtime"`
}
// TableName tv modules
func (a Modules) TableName() string {
return "tv_modules"
}
//CommonCat , PGC types or ugc second level types
type CommonCat struct {
ID int32 `json:"id"`
PID int32 `json:"pid"`
Name string `json:"name"`
Type int `json:"type"`
}
//ParentCat : ugc first level types
type ParentCat struct {
ID int32 `json:"id"`
Name string `json:"name"`
Type int `json:"type"`
Children []*CommonCat `json:"children,omitempty"`
}
//SupCats : support category map
type SupCats struct {
UgcMap map[int32]int
PgcMap map[int32]int
}
// AbnorCids is the export format for abnormal cids
type AbnorCids struct {
CID int64 `json:"cid"`
VideoTitle string `json:"video_title"`
CTime string `json:"ctime"`
AID int64 `json:"aid"`
ArcTitle string `json:"arc_title"`
PubTime string `json:"pub_time"`
}
// Export transforms the structure to export csv data
func (v *AbnorCids) Export() (res []string) {
res = append(res, fmt.Sprintf("%d", v.CID))
res = append(res, v.VideoTitle)
res = append(res, v.CTime)
res = append(res, fmt.Sprintf("%d", v.AID))
res = append(res, v.ArcTitle)
res = append(res, v.PubTime)
return
}
// AbnorVideo def.
type AbnorVideo struct {
CID int64
VideoTitle string
CTime time.Time
AID int64
}
// ToCids transforms the archive & video to abnormal cid export structure
func (v *AbnorVideo) ToCids(arc *Archive) *AbnorCids {
return &AbnorCids{
CID: v.CID,
VideoTitle: v.VideoTitle,
CTime: v.CTime.Time().Format("2006-01-02 15:04:05"),
AID: v.AID,
ArcTitle: arc.Title,
PubTime: arc.Pubtime.Time().Format("2006-01-02 15:04:05"),
}
}