package response

import (
	"github.com/rdlucklib/rdluck_tools/paging"
	"time"
)

type CommentReportItem struct {
	ReportId           int                         `description:"报告Id"`
	ClassifyIdFirst    int                         `description:"一级分类id"`
	ClassifyNameFirst  string                      `description:"一级分类名称"`
	ClassifyIdSecond   int                         `description:"二级分类id"`
	ClassifyNameSecond string                      `description:"二级分类名称"`
	Title              string                      `description:"标题"`
	CreateTime         string                      `description:"创建时间"`
	State              int                         `description:"1:未发布，2:已发布"`
	PublishTime        string                      `description:"发布时间"`
	ReportChapterList  []*CommentReportChapterItem `description:"章节列表"`
	CommentNum         int                         `description:"留言数量"`
	CommentUnreadNum   int                         `description:"未读留言数量"`
}

type CommentReportResp struct {
	List   []*CommentReportItem
	Paging *paging.PagingItem
}

type CommentReportChapterItem struct {
	ReportChapterId  int    `description:"报告章节Id"`
	Title            string `description:"标题"`
	TypeName         string `description:"品种名称"`
	CommentNum       int    `description:"留言数量"`
	CommentUnreadNum int    `description:"未读留言数量"`
	PublishTime      string `description:"发布时间"`
	CreateTime       string `description:"创建时间"`
}

type CommentListResp struct {
	List    []*CommentItemResp
	Paging  *paging.PagingItem
	StatNum CommentStatNum
}
type CommentItemResp struct {
	CommentId   uint64    `description:"留言ID" `
	ReportId    int       `description:"报告ID"`
	UserId      uint64    `description:"用户id" `
	Content     string    `description:"留言内容" `
	IsTop       int8      `description:"是否置顶（0-未置顶，1-置顶）"`
	IsHot       int8      `description:"是否设置精选（0-未设置，1-已设置）"`
	HotTopTime  time.Time `description:"设置精选或者设置置顶的时间" `
	SourceAgent int       `description:"留言入口来源，1：小程序，2：小程序pc，4：web pc"`
	NickName    string    `description:"用户昵称" `
	HeadImgUrl  string    `description:"用户头像"`
	CreateTime  string    `description:"留言创建时间"`
	Enabled     int8      `description:"是否有效, 0-无效留言 1-有效留言"`
	ReplyList   []*ReplyItem
}

type ReplyItem struct {
	CommentId      uint64 `description:"留言ID"`
	AdminId        uint64 `description:"发布留言回复的管理员ID"`
	AdminName      string `description:"系统昵称"`
	AdminImgUrl    string `description:"系统头像"`
	Content        string `description:"回复内容"`
	ReplyCommentId uint64 `description:"回复的留言ID"`
	CreateTime     string `description:"留言创建时间"`
}

type CommentStatNum struct {
	TopNum int64 `description:"置顶数量"`
	HotNum int64 `description:"精选数量"`
	AllNum int64 `description:"全部总数"`
}

type CommentTopResp struct {
	CommentId int64 `description:"留言ID"`
	IsTop     int8  `description:"是否置顶（0-未置顶，1-置顶）"`
}

type CommentHotResp struct {
	CommentId int64 `description:"留言ID"`
	IsHot     int8  `description:"是否设置精选（0-未设置，1-已设置）"`
}

// 研报 用户未读的留言记录
type UnReadComment struct {
	CommentId       uint64    `orm:"column(comment_id);pk;" description:"留言ID"`
	UserId          uint64    `orm:"column(user_id)" description:"用户id"`
	ReportId        int       `orm:"column(report_id)" description:"报告ID"`
	ReportChapterId int       `orm:"column(report_chapter_id)" description:"报告章节ID"`
	Content         string    `orm:"column(content)" description:"留言内容"`
	CreateTime      time.Time `orm:"column(create_time)" description:"创建时间"`
	ModifyTime      time.Time `orm:"column(modify_time)" description:"修改时间"`
}

// AllCommentResp 所有未读留言数据
type AllCommentResp struct {
	List   []CommentItemResp `description:"留言数据"`
	IsShow bool              `description:"是否展示该图标"`
}

type ProductCommentItemResp struct {
	CommentId           int    `description:"研报留言ID或者问答社区评论ID"`
	UserId              int    `description:"用户ID"`
	ReportId            int    `description:"报告Id"`
	ReportChapterId     int    `description:"报告章节Id"`
	CommunityQuestionId int    `description:"问答ID"`
	Content             string `description:"留言内容"`
	CreateTime          string `description:"创建时间"`
	ProductType         int    `description:"留言板块ID： 1-研报留言，2-问答社区评论"`
	ProductName         string `description:"板块名称"`
	IsTop               int8   `description:"是否置顶（0-未置顶，1-置顶）"`
	RealName            string `description:"用户姓名"`
	CompanyId           int
	CompanyName         string
	CompanyStatus       string
	Title               string
	SellerName          string
	ReplyList           []*ReplyItem
}

// ProductCommentResp 社区问答评论列表返回数据
type ProductCommentResp struct {
	List   []*ProductCommentItemResp
	Paging *paging.PagingItem
}

// OtherProductTypeListResp 其他分产品类型
type OtherProductTypeListResp struct {
	ProductType int    `description:"产品类型"`
	ProductName string `description:"产品名称"`
}
