package response

import (
	"pure-admin/model"
	"time"
)

type MissionRecommendResponse struct {
	SortIndex int `json:"sort_index"`
	model.MissionRecommend
	MissionVideoCommonData
}

type MissionVideoResponse struct {
	ID         uint `json:"id"`
	SourceType int  `json:"source_type" gorm:"type:tinyint(1);default:1"` //类型:1:固定费用上传 2:奖励任务上传 3:后台上传
	MissionVideoCommonData
}

type MissionVideoCommonData struct {
	MissionId  uint                     `json:"mission_id"`
	VideoUrl   string                   `json:"video_url"`
	Cover      string                   `json:"cover"`
	Title      string                   `json:"title"`
	GoodsTitle string                   `json:"goods_title"`
	Influencer model.InfluencerUserView `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"`  //发布渠道
	Seller          model.SellerStoreInfo `json:"seller"`
}

type MissionClaimVideo struct {
	model.MissionClaimVideo
	MissionId       uint                     `json:"mission_id"`                 //任务id
	MissionTitle    string                   `json:"mission_title"`              //任务名称
	GoodsTitle      string                   `json:"goods_title"`                //商品名称
	InfluencerUser  model.InfluencerUserView `json:"influencer_user"`            //网红信息
	ClaimAt         time.Time                `json:"claim_at"`                   //接任务时间
	ClaimDays       int                      `json:"claim_days"`                 //完成任务时间
	HireMoneyExpect string                   `gorm:"-" json:"hire_money_expect"` //预计佣金描述
}

type MissionClaimVideoDetail struct {
	ClaimVideo     model.MissionClaimVideo  `json:"claim_video"`
	InfluencerUser model.InfluencerUserDesc `json:"influencer_user"` //网红信息
	ClaimGoods     MissionClaimGoods        `json:"claim_goods"`     //商品信息
	MissionClaim   MissionClaimInfo         `json:"mission_claim"`   //任务领取信息
}

type MissionClaimGoods struct {
	GoodsId  uint    `json:"goods_id"`  //商品ID
	OrderId  string  `json:"order_id"`  //订单ID
	SpuNo    string  `json:"spu_no"`    //编号
	Title    string  `json:"title"`     //标题
	TitleEng string  `json:"title_eng"` //英文标题
	Sales    float64 `json:"sales"`     //总销售量
	Sales30  float64 `json:"sales_30"`  //30天销售量
	Status   int     `json:"status"`    //1:上架 2:下架 3:售罄
	Specs    string  `json:"specs"`     //规格
	SkuNo    string  `json:"sku_no"`    //商品编码
	Stock    int64   `json:"stock"`     //库存
	Price    float64 `json:"price"`     //价格
	Image    string  `json:"image"`     //规格图片url
	Tags     string  `json:"tags"`      //标签
}

type MissionClaimInfo struct {
	MissionId       uint       `json:"mission_id"`                              //任务id
	Title           string     `json:"title"`                                   //任务名称
	ClaimAt         time.Time  `json:"claim_at"`                                //接任务时间
	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"`              //预计佣金描述
	StartTime       *time.Time `json:"start_time"`                              //任务起始时间
	EndTime         *time.Time `json:"end_time"`                                //任务结束时间
	Status          int        `json:"status"`                                  //状态 1:未开始 2:进行中 3:已结束
	ClaimNum        int64      `json:"claim_num"`                               //接任务人数
	ClaimStock      int64      `json:"claim_stock"`                             //可接任务库存
	OrderNum        int64      `gorm:"-" json:"order_num"`                      //订单数
	ClaimDays       int        `gorm:"type:tinyint(11)" json:"claim_days"`      //任务完成天数
	ClaimDemands    string     `gorm:"type:varchar(500);" json:"claim_demands"` //任务拍摄要求
	Description     string     `gorm:"type:varchar(2000);" json:"description"`  //描述/卖点
	model.Sample
	model.VideoMaterial
	ReleaseCountry  string `gorm:"-" json:"release_country"`  //发布国家
	ReleaseChannels string `gorm:"-" json:"release_channels"` //发布渠道
}

type MissionCommonData struct {
	MissionId       uint                  `json:"mission_id"`
	Title           string                `json:"title"`
	GoodsTitle      string                `json:"goods_title"`
	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                `json:"hire_money_expect"` //预计佣金描述
	ReleaseCountry  string                `json:"release_country"`   //发布国家
	ReleaseChannels string                `json:"release_channels"`  //发布渠道
	ClaimNum        int64                 `json:"claim_num"`         //接任务人数
	Seller          model.SellerStoreInfo `json:"seller"`
	Description     string                `json:"description"` //描述/卖点
	HasSample       int                   `json:"has_sample"`  //是否有样品 0:没有 1:有
	HasVideo        int                   `json:"has_video"`   //是否有视频素材 0:没有 1:有
	SampleNum       int                   `json:"sample_num"`  //样品数量
}

type MissionStopData struct {
	Remark string `json:"remark"`
	ID     uint   `json:"id"`
	MissionCommonData
	Goods model.TbGoods4List `json:"goods"` //商品信息
}

type MissionClaimSimpleData struct {
	model.MissionClaim
	Video           model.MissionClaimVideo `json:"video"`
	MissionId       uint                    `json:"mission_id"`        //任务id
	MissionTitle    string                  `json:"mission_title"`     //任务名称
	ClaimAt         time.Time               `json:"claim_at"`          //接任务时间
	ClaimDays       int                     `json:"claim_days"`        //完成任务时间
	HireMoneyExpect string                  `json:"hire_money_expect"` //预计佣金描述
	HireType        int                     `json:"hire_type"`         //佣金类型 1:固定佣金 2:比例抽成
	VideoUrl        string                  `json:"video_url"`
	HasVideo        int                     `json:"has_video"` //是否有视频素材 0:没有 1:有
	SignUrl         string                  `json:"sign_url"`  //签约地址
}