package msg

import "leafstalk/covenant/model"

// 邮件列表
type LetterList struct {
	PlayerId int64 `json:"userId"`
}

type ResponseLetterList struct {
	ErrCode int           `json:"errCode"`
	Msg     string        `json:"msg,omitempty"`
	Data    []*LetterData `json:"data"`
}

type LetterData struct {
	Id         int64               `json:"id"`
	State      int                 `json:"state"` //0:未读，1:已读，2:已领取
	Title      string              `json:"title"`
	Content    string              `json:"content"`
	Extra      []*model.DropedItem `json:"extra"`
	CreateTime int64               `json:"createTime"`
	ExpireTime int64               `json:"expireTime"`
	// DrawState  int              `json:"drawState"`
	// Type       int64            `json:"type"`
}

// type DropedItem struct {
// 	Id   int64 `json:"id"`
// 	Type int64 `json:"type"`
// 	Num  int64 `json:"num"`
// }

// 领取附件
type DrawLetterExtra struct {
	PlayerId int64   `json:"userId"`
	Letters  []int64 `json:"letters"`
}

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

type DrawLetterExtraData struct {
	Letters []int64             `json:"letters"`
	Bundles *model.DropedBundle `json:"bundles"`
}

// 删除邮件
type DeleteLetter struct {
	PlayerId int64   `json:"userId"`
	Letters  []int64 `json:"letters"`
}

type ResponseDeleteLetter struct {
	ErrCode int     `json:"errCode"`
	Msg     string  `json:"msg,omitempty"`
	Data    []int64 `json:"data"`
}

// 查看邮件
type ViewLetter struct {
	PlayerId int64   `json:"userId"`
	Letters  []int64 `json:"letters"`
}

type ResponseViewLetter struct {
	ErrCode int     `json:"errCode"`
	Msg     string  `json:"msg,omitempty"`
	Data    []int64 `json:"data"`
}

type AddNewLetterNotfiyIs struct {
	PlayerIds []int64 `json:"userId"`
	// Letters  []int64 `json:"letters"`
}

type GMLetter struct {
	MsgId      string            `json:"msgId"`
	Letter     *model.MailGlobal `json:"letter"`
	Players    []int64           `json:"players"`
	OperatorId int64             `json:"operatorId"`
}

type ResponseGMLetter struct {
	ErrCode int    `json:"errCode"`
	MsgId   string `json:"msgId"`
}

type DrawLetterExtraIs struct {
	RpcRequestMsg
	PlayerId  int64           `json:"userId"`
	Letters   []int64         `json:"letters"`
	Materials map[int64]int64 `json:"materials"`
	Equips    []int64         `json:"equips"`
	Roles     []int64         `json:"roles"`
}

type ResponseDrawLetterExtraIs struct {
	RpcResponseMsg
}
