package response

import (
	"time"
)

type ClassifyListItem struct {
	ClassifyIdSecond   int    `json:"classify_id_second"`
	ClassifyNameSecond string `json:"classify_name_second"`
	Abstract           string `json:"abstract"`
	ParentId           int    `json:"parent_id"`
	ReportAuthor       string `json:"report_author"`
	AuthorDescript     string `json:"author_descript"`
	HomeImgUrl         string `json:"home_img_url"`
	Stage              int    `description:"期数" json:"stage"`
	ProductName        string `json:"product_name"`
	VipTitle           string `json:"vip_title"`
}

type ClassifyDetail struct {
	ClassifyListItem
	AvatarImgUrl    string               `json:"avatar_img_url"`
	Abstract        string               `json:"abstract"`
	Descript        string               `json:"descript"`
	PermissionCheck *PermissionCheckInfo `json:"permission_check"`
	AuthOk          bool                 `json:"auth_ok"`
	VipTitle        string               `json:"vip_title"`
}

type ClassReportListItem struct {
	ReportId           int       `description:"报告Id" json:"report_id"`
	ClassifyIdFirst    int       `description:"一级分类id" json:"classify_id_first"`
	ClassifyNameFirst  string    `description:"一级分类名称" json:"classify_name_first"`
	ClassifyIdSecond   int       `description:"二级分类id" json:"classify_id_second"`
	ClassifyNameSecond string    `description:"二级分类名称" json:"classify_name_second"`
	Title              string    `description:"标题" json:"title"`
	Abstract           string    `description:"摘要" json:"abstract"`
	Author             string    `description:"作者" json:"author"`
	ReportImgUrl       string    `description:"作者头像" json:"report_img_url"`
	PublishTime        time.Time `description:"发布时间" json:"publish_time"`
	Stage              int       `description:"期数" json:"stage"`
	VideoUrl           string    `description:"音频文件URL" json:"video_url"`
	VideoName          string    `json:"video_name"`         //音频文件名称
	VideoPlaySeconds   string    `json:"video_play_seconds"` //音频播放时长
}
type ClassReportList struct {
	List            []*ClassReportListItem `json:"list"`
	PermissionCheck *PermissionCheckInfo   `json:"permission_check"`
	AuthOk          bool                   `json:"auth_ok"`
	Paging          *PagingItem            `json:"paging"`
}

type ClassifySimpleListItem struct {
	ClassifyIdSecond         int    `json:"classify_id_second"`
	ClassifyNameSecond       string `json:"classify_name_second"`
	ClassifySecondNameSimple string `json:"classify_second_simple"`
}

type ClassifyFirstListItem struct {
	ClassifyIdFirst    int    `description:"一级分类id" json:"classify_id_first"`
	ClassifyIdSecond   int    `json:"classify_id_second"`
	ClassifyNameFirst  string `description:"一级分类名称" json:"classify_name_first"`
	ClassifyNameSecond string `json:"classify_name_second"`
	IconImgUrl         string `json:"icon_img_url"`
	Sort               int    `json:"sort"`
	RedirectType       int    `description:"跳转页面类型：1，专栏列表，2报告列表，3专栏详情" json:"redirect_type"`
}

type ClassifyFirstList []*ClassifyFirstListItem

func (c ClassifyFirstList) Len() int {
	return len(c)
}

func (c ClassifyFirstList) Less(i, j int) bool {
	return c[i].Sort < c[j].Sort
}

func (c ClassifyFirstList) Swap(i, j int) {
	c[i], c[j] = c[j], c[i]
}
