package response

import (
	"pure/model"
	"time"
)

type MissionClaimView struct {
	ID              uint             `json:"id"`                      //ID
	ClaimNo         string           `json:"claim_no"`                //领取任务编号
	MissionId       uint             `json:"mission_id"`              //任务id
	AchieveNum      int64            `json:"achieve_num"`             //已完成商品数量
	Status          int              `json:"status"`                  //状态 1:已领取待发货 2:已发货 3:已收货推广中
	SpreadUrl       string           `json:"spread_url"`              //推广链接
	HireType        int              `json:"hire_type"`               //佣金类型 1:固定佣金 2:比例抽成
	HireMoneyExpect string           `json:"hire_money_expect"`       //预计佣金描述
	EndTime         *time.Time       `json:"end_time"`                //任务结束时间
	ExpireAt        time.Time        `json:"expire_at"`               //任务推广过期时间
	CollectStatus   bool             `gorm:"-" json:"collect_status"` //收藏状态 true:已收藏 false:未收藏
	Goods           MissionGoodsView `json:"goods"`
}

type MissionCollectView struct {
	ID              uint             `json:"id"`          //ID
	MissionId       uint             `json:"mission_id"`  //任务id
	AchieveNum      int64            `json:"achieve_num"` //已完成商品数量
	TotalBonus      float64          `json:"total_bonus"`
	Status          int              `json:"status"`
	HireType        int              `json:"hire_type"`         //佣金类型 1:固定佣金 2:比例抽成
	HireMoneyExpect string           `json:"hire_money_expect"` //预计佣金描述
	Goods           MissionGoodsView `json:"goods"`
}

type MissionGoodsView struct {
	GoodsId  uint    `json:"goods_id"`
	SpuNo    string  `json:"spu_no"`                               //编号
	Title    string  `json:"title"`                                //标题
	TitleEng string  `json:"title_eng"`                            //英文标题
	Images   string  `json:"images"`                               //图片
	Price    float64 `gorm:"type:decimal(10,2);" json:"price_min"` //最低规格价格
	SkuNo    string  `json:"sku_no"`                               //sku编号

}

type MissionRecommendView struct {
	ID              uint             `json:"id"`          //ID
	MissionId       uint             `json:"mission_id"`  //任务id
	AchieveNum      int64            `json:"achieve_num"` //已完成商品数量
	TotalBonus      float64          `json:"total_bonus"`
	Status          int              `json:"status"`
	HireType        int              `json:"hire_type"`         //佣金类型 1:固定佣金 2:比例抽成
	HireMoneyExpect string           `json:"hire_money_expect"` //预计佣金描述
	Goods           MissionGoodsView `json:"goods"`
	Tags            string           `json:"tags"`
}

type MissionRecommendResponse struct {
	model.MissionRecommend
	MissionVideoCommonData
}

type MissionVideoResponse struct {
	ID uint `json:"id"`
	MissionVideoCommonData
}

type MissionVideoCommonData struct {
	MissionId     uint             `json:"mission_id"`      //任务ID
	VideoUrl      string           `json:"video_url"`       //视频地址
	Cover         string           `json:"cover"`           //封面
	Title         string           `json:"title"`           //任务标题
	GoodsTitle    string           `json:"goods_title"`     //商品标题
	GoodsTitleEng string           `json:"goods_title_eng"` //商品英文标题
	Influencer    model.UserSimple `json:"influencer"`
	//todo 标签系统
	Tag             string     `json:"tag"`
	MissionStatus   int        `json:"mission_status"`             //任务状态
	StartTime       *time.Time `json:"start_time"`                 //任务起始时间
	EndTime         *time.Time `json:"end_time"`                   //任务结束时间
	HireType        int        `json:"hire_type"`                  //佣金类型 1:固定佣金 2:比例抽成
	HireMoney       float64    `json:"hire_money"`                 //hire_type==1 佣金金额
	HireRatio       float64    `json:"hire_ratio"`                 //hire_type==2 抽成比例
	HireMoneyExpect string     `gorm:"-" json:"hire_money_expect"` //预计佣金描述
	ReleaseCountry  string     `gorm:"-" json:"release_country"`   //发布国家
	ReleaseChannels string     `gorm:"-" json:"release_channels"`  //发布渠道
	AchieveNum      int64      `json:"achieve_num"`                //已完成商品数量
	TotalBonus      float64    `json:"total_bonus"`                //累计奖励
	BoughtNum       float64    `json:"bought_num"`                 //购买人数
	Width           int        `json:"width"`                      //宽度
	Height          int        `json:"height"`                     //高度
	ClaimNum        int64      `json:"claim_num"`                  //任务领取人数
}

type SysMissionBonus struct {
	VideoBonus SysBonusDetail `json:"video_bonus"` //视频上传
	TotalBonus float64        `json:"total_bonus"` //奖励汇总金额
	Total      int64          `json:"total"`       //奖励总笔数
}

type SysBonusDetail struct {
	model.SysMissionBonus
	Title       string           `json:"title"`        //标题
	AchieveMax  int64            `json:"achieve_max"`  //最大完成次数
	MissionList []SysMissionDesc `json:"mission_list"` //任务列表
}

type SysMissionDesc struct {
	Title          string  `json:"title"`       //任务标题
	Bonus          float64 `json:"bonus"`       //奖励金额
	Description    string  `json:"description"` //描述
	AchieveNum     int     `json:"achieve_num"`
	Status         int     `json:"status"`          //状态 1待发放 2已发放 3已领取 0未完成
	TitleEng       string  `json:"title_eng"`       //任务标题英文
	DescriptionEng string  `json:"description_eng"` //描述英文

}