package models

import "github.com/shopspring/decimal"

type CreateActiveConfigRequest struct {
	MerchantOpenID    string  `json:"merchant_open_id"`
	DrawOneBiZhong    int64   `json:"draw_one_bi_zhong"`
	GroupBuyUrl       string  `json:"group_buy_url"`
	DrawId            []int64 `json:"draw_id"`
	GroupBuyId        []int64 `json:"group_buy_id"`
	GroupBuyMode      int     `json:"group_buy_mode"`      // 0-不开团 1-虚拟开团 2-真实开团
	DrawMode          int     `json:"draw_mode"`           // 抽奖模式 0-不抽奖,1-盲盒
	ActivityEndTime   string  `json:"activity_end_time"`   // 活动结束时间
	ActivityStartTime string  `json:"activity_start_time"` // 活动开始时间
	ActiveName        string  `json:"active_name"`         // 活动名称
	BackgroundImage   string  `json:"background_image"`    // 海报
}

type ActiveConfigRequest struct {
	ActiveConfigId int64  `json:"active_config_id"`
	MerchantOpenID string `json:"merchant_open_id"`
}

type ActiveConfigReply struct {
	MerchantName      string         `json:"merchant_name"`       //商家名称
	DrawOneBiZhong    int64          `json:"draw_one_bi_zhong"`   //
	GroupBuyUrl       string         `json:"group_buy_url"`       //
	GroupBuyMode      int            `json:"group_buy_mode"`      // 0-不开团 1-虚拟开团 2-真实开团
	DrawMode          int            `json:"draw_mode"`           //抽奖模式 0-不抽奖,1-盲盒
	ActivityEndTime   string         `json:"activity_end_time"`   //活动结束时间
	ActivityStartTime string         `json:"activity_start_time"` //活动开始时间
	ActiveName        string         `json:"active_name"`         //活动名称
	BackgroundImage   string         `json:"background_image"`    // 海报
	DrawProduct       []DrawProduct  `json:"draw_product"`        //中奖商品
	DrawGroupBuy      []DrawGroupBuy `json:"draw_group_buy"`      //活动拼团
}

type DrawProduct struct {
	DrawProductName string `json:"draw_product_name"` // 抽奖名称
	DrawOdds        int    `json:"draw_odds"`         // 中奖概率
	Stock           int    `json:"stock"`             // 剩余库存
	IsPrize         bool   `json:"is_prize"`          // 是否需要兑奖  谢谢惠顾不需要兑奖
	DrawUrl         string `json:"draw_url"`          // 中奖图片
	TotalStock      int    `json:"total_stock"`       // 总库存

}

type DrawGroupBuy struct {
	GroupBuyName       string            `json:"group_buy_name"`        // 拼团名
	GroupBuyMode       int               `json:"group_buy_mode"`        // 拼团模式 1-真实拼团 2-虚拟拼团
	MerchantOpenID     string            `json:"merchant_open_id"`      //
	OriginalPrice      decimal.Decimal   `json:"original_price"`        // 原价
	GroupBuyOneNum     int               `json:"group_buy_one_num"`     // 人数
	GroupBuyOnePrice   decimal.Decimal   `json:"group_buy_one_price"`   // 价格
	GroupBuyTwoNum     int               `json:"group_buy_two_num"`     // 人数
	GroupBuyTwoPrice   decimal.Decimal   `json:"group_buy_two_price"`   // 价格
	GroupBuyThreeNum   int               `json:"group_buy_three_num"`   //
	GroupBuyThreePrice decimal.Decimal   `json:"group_buy_three_price"` //
	GroupBuyFourNum    int               `json:"group_buy_four_num"`    //
	GroupBuyFourPrice  decimal.Decimal   `json:"group_buy_four_price"`  //
	GroupBuyUrl        string            `json:"group_buy_url"`         // 图片
	ActivityEndTime    string            `json:"activity_end_time"`     // 活动结束时间
	ActivityStartTime  string            `json:"activity_start_time"`   // 活动开始时间
	RebateRate         int               `json:"rebate_rate"`           // 佣金比例
	GroupBuyProject    []GroupBuyProject `json:"group_buy_project"`
}

type GroupBuyProject struct {
	ProjectName string `json:"project_name"`
	CancelNum   int    `json:"cancel_num"`
}

type ActiveConfigListRequest struct {
	OpenId    string `json:"open_id"`
	PageSize  int    `json:"page_size"`
	PageIndex int    `json:"page_index"`
}

type ActiveConfigListReply struct {
	ID            int64  `json:"id"`             //id
	ActiveName    string `json:"active_name"`    // 活动名称
	ActivityEnd   string `json:"activity_end"`   // 活动结束时间
	ActivityStart string `json:"activity_start"` //活动开始时间
	CreatedAt     string `json:"created_at"`     //创建时间
}

// 抽奖
type DrawRequest struct {
	ClientOpenID   string `json:"client_open_id"`   //open-id
	ActiveConfigID int64  `json:"active_config_id"` //活动ID
}

// 奖品返回
type DrawReply struct {
	ID              int64  `json:"id"`                //id
	DrawUrl         string `json:"draw_url"`          //奖品url
	DrawProductName string `json:"draw_product_name"` //奖品名称
	Version         int    `json:"version"`
}

const (
	NotWon     = 1 //未中奖
	NotClaimed = 2 //未兑奖
	Claimed    = 3 //已兑奖
)

type ActiveConfigWHXYRequest struct {
	WHXY           string `json:"whxy"`           //坐标
	ActiveConfigId int64  `json:"activeConfigId"` //
}

type ClientActiveQRRequest struct {
	ActiveConfigId int64 `json:"active_config_id"` //
}

type GroupBuyUnifiedOrderRequest struct {
	RequestId      string          `json:"request_id"`      //request id
	OutTradeNo     string          `json:"out_trade_no"`    //交易id
	ActiveConfigId int64           `json:"activeConfigId"`  //
	ClientOpenId   string          `json:"client_open_id"`  //openid
	Amount         decimal.Decimal `json:"amount"`          //交易金额
	InvitationCode string          `json:"invitation_code"` //邀请码
}

type GroupBuyUnifiedOrderReply struct {
	Timestamp string `json:"timestamp"` // 时间戳
	NonceStr  string `json:"nonce_str"` // 随机字符串,长度为32个字符以下
	Package   string `json:"package"`   // prepay_id 参数值
	PaySign   string `json:"pay_sign"`  // 签名
	SignType  string `json:"sign_type"` // 签名类型
}