package pdd

import (
	"encoding/json"
)

type PddRecommendItem struct {
	CouponRemainQuantity int     `json:"coupon_remain_quantity"`
	PromotionRate        int     `json:"promotion_rate"`
	CatIds               []int   `json:"cat_ids"`
	CouponMinOrderAmount int     `json:"coupon_min_order_amount"`
	MallID               int     `json:"mall_id"`
	MallName             string  `json:"mall_name"`
	CouponTotalQuantity  int     `json:"coupon_total_quantity"`
	MerchantType         string  `json:"merchant_type"`
	LgstTxt              string  `json:"lgst_txt"`
	GoodsName            string  `json:"goods_name"`
	SalesTip             string  `json:"sales_tip"`
	GoodsID              string  `json:"goods_sign"`
	DescTxt              string  `json:"desc_txt"`
	PredictPromotionRate int     `json:"predict_promotion_rate"`
	GoodsDesc            string  `json:"goods_desc"`
	OptName              string  `json:"opt_name"`
	GoodsThumbnailURL    string  `json:"goods_thumbnail_url"`
	OptID                string  `json:"opt_id"`
	OptIds               []int   `json:"opt_ids"`
	SearchID             string  `json:"search_id"`
	GoodsImageURL        string  `json:"goods_image_url"`
	HasCoupon            bool    `json:"has_coupon"`
	MinNormalPrice       float64 `json:"min_normal_price"`
	ServTxt              string  `json:"serv_txt"`
	CouponStartTime      int     `json:"coupon_start_time"`
	MinGroupPrice        float64 `json:"min_group_price"`
	CouponDiscount       int     `json:"coupon_discount"`
	CouponEndTime        int     `json:"coupon_end_time"`
}
type PddRecommend struct {
	GoodsBasicDetailResponse struct {
		Total     int                `json:"total"`
		ListID    string             `json:"list_id"`
		List      []PddRecommendItem `json:"list"`
		RequestID string             `json:"request_id"`
		SearchID  string             `json:"search_id"`
	} `json:"goods_basic_detail_response"`
}

// 多多进宝API
// https://open.pinduoduo.com/application/document/api?id=pdd.ddk.goods.recommend.get
func Recommend(page, size, id, gid, cid string) (*PddRecommend, error) {
	method := "pdd.ddk.goods.recommend.get"
	args := map[string]interface{}{
		//"channel_type": id,   // 非必填, 	0-1.9包邮, 1-今日爆款, 2-品牌清仓,3-相似商品推荐,4-猜你喜欢,5-实时热销,6-实时收益,7-今日畅销,8-高佣榜单,默认1
		"limit":  size, // 非必填, 请求数量;默认值 : 400
		"offset": page, // 非必填, 从多少位置开始请求;默认值 : 0,offset需是limit的整数倍,仅支持整页翻页
		//"list_id":      "",  // 非必填,翻页时建议填写前页返回的list_id值
	}
	//fmt.Println(gid)
	if id != "" {
		args["channel_type"] = id
	}
	if gid != "" {
		args["goods_ids"] = []string{gid}
		args["channel_type"] = "3"
	}
	if cid != "" {
		//20100-百货,20200-母婴,20300-食品,20400-女装,20500-电器,20600-鞋包,20700-内衣,20800-美妆,20900-男装,21000-水果,21100-家纺,21200-文具,21300-运动,21400-虚拟,21500-汽车,21600-家装,21700-家具,21800-医药;
		args["cat_id"] = cid
		args["channel_type"] = "4"
	}
	// fmt.Println(args)
	data, err := send(args, method)
	if err != nil {
		return nil, err
	}
	// fmt.Println(string(data))
	r := new(PddRecommend)
	if err := json.Unmarshal(data, &r); err != nil {
		return nil, err
	}
	return r, nil
}

// 爆款排行商品接口
//func Hot() {
//	method := "pdd.ddk.top.goods.list.query"
//	args := map[string]interface{}{
//		"limit":     400, // 非必填, 请求数量;默认值 : 400
//		"offset":    400, // 非必填, 从多少位置开始请求;默认值 : 0,offset需是limit的整数倍,仅支持整页翻页
//		"sort_type": "",  // 非必填, 1-实时热销榜;2-实时收益榜
//	}
//}