package msg

import "leafstalk/covenant/model"

// 获取7天活动状态
type GetSevenDayActivitiesStatus struct {
	PlayerId int64 `json:"userId"`
}

type GetSevenDayActivitiesStatusData struct {
	RemainTime      int64                                `json:"remainTime"`      // 剩余时间
	UnlockDays      int64                                `json:"unlockDays"`      // 已解锁天数
	TotalPoint      int64                                `json:"totalPoint"`      // 总积分
	ChallengeAwards map[int64]*model.ChallengeTaskStatus `json:"challengeAwards"` // 任务完成状态 {taskType:任务状态}
	GiftAwards      map[int64]int64                      `json:"giftAwards"`      // 礼包购买状态 {uid:购买次数}
	PointAward      int64                                `json:"pointAward"`      // 积分奖励领取状态 0:未领取 1:已领取
}

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

// 领取7天活动奖励
type ClaimSevenDayMissionReward struct {
	PlayerId int64 `json:"userId"`
	Uid      int64 `json:"uid"`
}

type ClaimSevenDayMissionRewardData struct {
	Bundles *model.DropedBundle              `json:"bundles"`
	Status  *GetSevenDayActivitiesStatusData `json:"status"`
}

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

// 购买7日礼包
type BuySevenDayGiftPack struct {
	PlayerId int64 `json:"userId"`
	Uid      int64 `json:"uid"`
}

type BuySevenDayGiftPackData struct {
	Bundles *model.DropedBundle              `json:"bundles"`
	Costs   map[int64]int64                  `json:"costs"`
	Status  *GetSevenDayActivitiesStatusData `json:"status"`
}

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

// 领取积分奖励
type ClaimSevenDayActiveReward struct {
	PlayerId int64 `json:"userId"`
}

type ClaimSevenDayActiveRewardData struct {
	Bundles *model.DropedBundle              `json:"bundles"`
	Status  *GetSevenDayActivitiesStatusData `json:"status"`
}
type ResponseClaimSevenDayActiveReward struct {
	ErrCode int                            `json:"errCode"`
	Msg     string                         `json:"msg,omitempty"`
	Data    *ClaimSevenDayActiveRewardData `json:"data"`
}

// 7日任务进度更新
type Update7DayMissionProgress struct {
	PlayerId int64 `json:"userId"`
	// 任务类型
	TaskType int64 `json:"taskType"`
	// 任务进度
	Progress int64 `json:"progress"`
}
