go-common/app/interface/openplatform/article/model/list.go

91 lines
2.0 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package model
import xtime "go-common/library/time"
// sort type
const (
ListSortPtime = 0
ListSortView = 1
)
// CreativeList creative list
type CreativeList struct {
*List
Total int `json:"total"`
}
// ListArtMeta .
type ListArtMeta struct {
ID int64 `json:"id"`
Title string `json:"title"`
State int `json:"state"`
PublishTime xtime.Time `json:"publish_time"`
Position int `json:"-"`
Words int64 `json:"words"`
ImageURLs []string `json:"image_urls"`
Category *Category `json:"category"`
Categories []*Category `json:"categories"`
Summary string `json:"summary"`
}
// Strong fill
func (a *ListArtMeta) Strong() {
if a == nil {
return
}
if a.ImageURLs == nil {
a.ImageURLs = []string{}
}
if a.Category == nil {
a.Category = &Category{}
}
if a.Categories == nil {
a.Categories = []*Category{}
}
}
// FullListArtMeta .
type FullListArtMeta struct {
*ListArtMeta
Stats Stats `json:"stats"`
LikeState int8 `json:"like_state"`
}
// IsNormal judge whether article's state is normal.
func (a *ListArtMeta) IsNormal() bool {
return (a != nil) && (a.State >= StateOpen)
}
// ListArticles list articles
type ListArticles struct {
List *List `json:"list"`
Articles []*ListArtMeta `json:"articles"`
Author *Author `json:"author"`
Last ListArtMeta `json:"last"`
Attention bool `json:"attention"`
}
// WebListArticles .
type WebListArticles struct {
List *List `json:"list"`
Articles []*FullListArtMeta `json:"articles"`
Author *Author `json:"author"`
Last ListArtMeta `json:"last"`
Attention bool `json:"attention"`
}
// ListInfo list info
type ListInfo struct {
List *List `json:"list"`
Last *ListArtMeta `json:"last"`
Next *ListArtMeta `json:"next"`
Now int `json:"now"`
Total int `json:"total"`
}
// UpLists .
type UpLists struct {
Lists []*List `json:"lists"`
Total int `json:"total"`
}