go-common/app/interface/main/tv/model/search/result.go
2019-04-22 18:49:16 +08:00

114 lines
2.5 KiB
Go

package search
import (
"go-common/app/interface/main/tv/model"
)
// ResultResponse def .
type ResultResponse struct {
Page int `json:"page"`
Pagesize int `json:"pagesize"`
NumResults int `json:"numResults"`
NumPages int `json:"numPages"`
Seid string `json:"seid"`
}
type pageinfo struct {
Tvpgc *Page `json:"tvpgc"`
Tvugc *Page `json:"tvugc"`
}
// Page struct .
type Page struct {
NumResult int `json:"numResults"`
Total int `json:"total"`
Pages int `json:"pages"`
}
// RespAll def .
type RespAll struct {
Code int `json:"code"`
Msg string `json:"msg"`
*ResultResponse
PageInfo *pageinfo `json:"pageinfo"`
Result *AllResult `json:"result"`
}
// AllResult def .
type AllResult struct {
Pgc []*PgcResult `json:"tvpgc"`
Ugc []*UgcResult `json:"tvugc"`
}
// RespPgc def .
type RespPgc struct {
Code int `json:"code"`
Msg string `json:"msg"`
*ResultResponse
Result []*PgcResult `json:"result"`
}
// RespUgc def .
type RespUgc struct {
Code int `json:"code"`
Msg string `json:"msg"`
*ResultResponse
Result []*UgcResult `json:"result"`
}
// UgcResult def .
type UgcResult struct {
ID int `json:"id"`
Title string `json:"title"`
Cover string `json:"cover"`
Description string `json:"description"`
Pubtime int `json:"pubtime"`
Category int `json:"category"`
}
// PgcResult def .
type PgcResult struct {
*UgcResult
CV string `json:"cv"`
Staff string `json:"staff"`
CornerMark *model.SnVipCorner `json:"cornermark"`
}
// ToCommon transform pgc to common .
func (p *PgcResult) ToCommon() (res *CommonResult) {
return &CommonResult{
PgcResult: p,
Type: "pgc",
}
}
// ToCommon transform pgc to common .
func (p *UgcResult) ToCommon() (res *CommonResult) {
res = &CommonResult{}
res.PgcResult = &PgcResult{
UgcResult: p,
}
res.Type = "ugc"
return
}
// CommonResult is the common result for both pgc & ugc .
type CommonResult struct {
*PgcResult
Type string `json:"type"`
}
// ReqSearch def .
type ReqSearch struct {
SearchType string `form:"search_type" validate:"required"`
Order string `form:"order"`
Category int `form:"category"`
Platform string `form:"platform" validate:"required"`
Build string `form:"build" validate:"required"`
MobiAPP string `form:"mobi_app"`
Device string `form:"device"`
Keyword string `form:"keyword" validate:"required"`
Page int `form:"page" validate:"required,min=1"`
Pagesize int `form:"pagesize"`
}