package model

const (
	MixedTypeMainPass        = 1 // 主线通关
	MixedTypeCooperationPass = 2 // 合作通关
)

// 个人信息
type PersonalItem struct {
	PlayerID int64  `json:"playerId"`
	HeadId   int64  `json:"headId"`  // 头像 -1 代表使用 AvatarURL 微信授权头像
	FrameId  int64  `json:"frameId"` // 头像框
	NickName string `json:"nickName"`
	Level    int64  `json:"level"`
}

// `json:"achieve"` // 成就ID
// `json:"players"` //参与人员
// `json:"created"` //时间
type FirstPassChapter struct {
	Id        int64           `json:"-"`
	Type      int             `xorm:"int 'type'" json:"type"`
	AchieveId int64           `xorm:"bigint 'achieveId'" json:"achieve"`
	Players   []*PersonalItem `xorm:"varchar(2048) 'players'" json:"players"`
	Created   int64           `xorm:"bigint 'created'" json:"created"`
}

func (m *FirstPassChapter) TableName() string {
	return "chapterfirstpass"
}

// // 各种混合数据
// type MixedData struct {
// 	Id      int64
// 	Type    int    `xorm:"INT 'type'"`
// 	Compare int64  `xorm:"BIGINT 'compare'"`
// 	Data    string `xorm:"varchar(2048) json 'data'"`
// 	Created int64  `xorm:"BIGINT 'created'"`
// }

// func (m *MixedData) TableName() string {
// 	return "mixed_data"
// }

// 对战记录数据
type BattleRecord struct {
	Id       int64           // 对战记录的唯一标识符
	BattleID int64           `xorm:"BIGINT 'battleId'"`          // 对战的唯一标识符
	Wave     int             `xorm:"INT 'wave'"`                 //波次
	Score    int             `xorm:"INT 'score'"`                //得分
	Members  []*BattleMember `xorm:"varchar(1024) json members"` // 战斗成员
	Created  int64           `xorm:"BIGINT 'created'"`
}

type BattleMember struct {
	Contribution int64   `json:"contribution"`
	HeroIds      []int64 `json:"heroIds"`
}

func (m *BattleRecord) TableName() string {
	return "battle_record"
}

// 排行奖励表-ServerFirstPass exported from 排行榜奖励.xlsx
type ServerFirstPass struct {
	Uid    int64     `json:"Uid"`    // ID
	Type   int64     `json:"Type"`   // 类型 1--主线 2--合作
	Des    string    `json:"Des"`    // 任务描述
	Value  []int64   `json:"Value"`  // 值 任务参数值  1类：关卡唯一ID 2类：[难度类型，波次]
	Reward [][]int64 `json:"Reward"` // 奖励 道具ID，数量
}
