package broadcast

import (
	"gorm.io/gorm"
)

var (
	BroadcastGorm *gorm.DB
	AnchorGorm    *gorm.DB
)

type BroadcastFollow struct {
	Id         int64   `json:"id" gorm:"id" yaml:"id"`
	UserId     int64   `json:"user_id" gorm:"user_id" yaml:"user_id"`
	FollowList string  `json:"-" gorm:"follow_list"`
	Follow     []int64 `json:"follow" gorm:"-" yaml:"follow"`
}

func (this *BroadcastFollow) TableName() string {
	return "broadcast_follow"
}

type BroadcastHistory struct {
	Id           int64  `json:"id" gorm:"id"`
	Date         int64  `json:"date" gorm:"date"`
	ViewShow     string `json:"view_show" gorm:"view_show"`
	ProblemTitle string `json:"problem_title" gorm:"problem_title"`
	Result       string `json:"result" gorm:"result"`
	Status       bool   `json:"status" gorm:"json"`
}

func (this *BroadcastHistory) TableName() string {
	return "broadcast_history"
}

type BroadcastQuestion struct {
	Id            int64    `json:"id" gorm:"id"`
	GameShortName string   `json:"game_short_name" gorm:"game_short_name" yaml:"game_short_name"`
	Problem       string   `json:"problem" gorm:"problem" yaml:"problem"`
	AnswerList    string   `json:"-" gorm:"answer_list" yaml:"answer_list"`
	Answer        []string `json:"answer" gorm:"-" yaml:"answer"`
}

func (this *BroadcastQuestion) TableName() string {
	return "broadcast_question"
}

type BroadcastShower struct {
	Id               int64  `json:"id" gorm:"id"`
	GameShortName    string `json:"game_short_name" gorm:"game_short_name" yaml:"game_short_name"`
	BroadcastId      int64  `json:"broadcast_id" gorm:"broadcast_id" yaml:"broadcast_id"`
	Remark           string `json:"remark" gorm:"remark" yaml:"remark"`
	Introduction     string `json:"introduction" gorm:"introduction" yaml:"introduction"`
	BroadcastPlaform string `json:"broadcast_plaform" gorm:"broadcast_plaform" yaml:"broadcast_plaform"`
	PlaformId        string `json:"plaform_id" gorm:"plaform_id" yaml:"plaform_id"`
	BroadcastCode    string `json:"broadcast_code" gorm:"broadcast_code" yaml:"broadcast_code"`
	Bean             int64  `json:"bean" gorm:"bean" yaml:"bean"`
	AttendLimit      int64  `json:"attend_limit" gorm:"attend_limit" yaml:"attend_limit"`
	QuestionLimit    int64  `json:"question_limit" gorm:"question_limit" yaml:"question_limit"`
}

func (this *BroadcastShower) TableName() string {
	return "broadcast_shower"
}

type BroadCastFollowHistory struct {
	Id          int64 `json:"id" gorm:"id"`
	UserId      int64 `json:"user_id" gorm:"user_id"`
	BroadcastId int64 `json:"broadcast_id" gorm:"broadcast_id"`
}

type Broad struct {
	BroadcastShower
	IsReceive bool `json:"is_receive"`
}
