package msg

import (
	"leafstalk/covenant/model"
)

// 服务端用
type AddBagMaterialIs struct {
	RpcRequestMsg
	PlayerId int64     `json:"userId"`
	Source   int       `json:"source"` // 类型
	Cost     [][]int64 `json:"cost"`   // 消耗的道具
	Adds     [][]int64 `json:"adds"`   // 增加的道具
}

type ResponseAddBagMaterialIs struct {
	RpcResponseMsg
}

// HeroLevelUp 升级
type HeroLevelUp struct {
	PlayerId int64 `json:"userId"`
	HeroId   int64 `json:"heroId"`
}

type HeroLevelUpData struct {
	Materials map[int64]int64 `json:"materials"`
	Hero      *model.Hero     `json:"hero"`
}

type ResponseHeroLevelUp struct {
	ErrCode int              `json:"errCode"`
	Msg     string           `json:"msg,omitempty"`
	Data    *HeroLevelUpData `json:"data"`
}

// HeroChangeSkin 英雄换皮肤
type HeroChangeSkin struct {
	PlayerId int64 `json:"userId"`
	HeroId   int64 `json:"heroId"`
	SkinId   int64 `json:"skinId"`
}

type HeroChangeSkinData struct {
	Hero *model.Hero `json:"hero"`
}

type ResponseHeroChangeSkin struct {
	ErrCode int                 `json:"errCode"`
	Msg     string              `json:"msg,omitempty"`
	Data    *HeroChangeSkinData `json:"data"`
}

// HeroBuy 英雄购买
type HeroBuy struct {
	PlayerId int64 `json:"userId"`
	HeroId   int64 `json:"heroId"`
}

type ResponseHeroBuy struct {
	ErrCode int          `json:"errCode"`
	Msg     string       `json:"msg,omitempty"`
	Data    *HeroBuyData `json:"data"`
}

type HeroBuyData struct {
	PlayerId  int64           `json:"userId"`
	Hero      *model.Hero     `json:"hero"`
	Materials map[int64]int64 `json:"materials"`
}

// HeroSkinActive 英雄皮肤激活
type HeroSkinActive struct {
	PlayerId int64 `json:"userId"`
	SkinId   int64 `json:"skinId"`
}

type ResponseHeroSkinActive struct {
	ErrCode int                 `json:"errCode"`
	Msg     string              `json:"msg,omitempty"`
	Data    *HeroSkinActiveData `json:"data"`
}

type HeroSkinActiveData struct {
	PlayerId  int64           `json:"userId"`
	Hero      *model.Hero     `json:"hero"`
	SkinId    int64           `json:"skinId"`
	Materials map[int64]int64 `json:"materials"`
}

type QueryPlayerProfile struct {
	RpcRequestMsg
	PlayerIds []int64 `json:"userIds"`
}

type ResponseQueryPlayerProfile struct {
	RpcResponseMsg
	Players []*model.PlayerProfile `json:"players"`
}

// // HeroActive 激活
// type HeroActive struct {
// 	PlayerId int64 `json:"userId"`
// 	HeroId   int32 `json:"heroId"`
// 	Type     int32 `json:"type"` // 1 碎片合成 2 钻石购买
// }

// type HeroActiveData struct {
// }

// type ResponseHeroActive struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *HeroActiveData `json:"data"`
// }

// TreasuresLevelUp 宝物升级
// type TreasuresLevelUp struct {
// 	PlayerId int64 `json:"userId"`
// 	Id       int32 `json:"id"`
// }

// type TreasuresLevelUpData struct {
// }

// type ResponseTreasuresLevelUp struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *TreasuresLevelUpData `json:"data"`
// }

// // TreasureStarUp 宝物升星
// type TreasuresStarUp struct {
// 	PlayerId int64 `json:"userId"`
// 	Id       int32 `json:"id"`
// }

// type TreasuresStarUpData struct {
// }

// type ResponseTreasuresStarUp struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *TreasuresStarUpData `json:"data"`
// }
