package model

import (
	"active/constant"
	"encoding/json"
	"fmt"

	"git.jiaxianghudong.com/webs/pkg/rds"
	"github.com/go-redis/redis"
)

//Precious 神秘宝藏
type PreciousV2 struct {
	UserID     int    `json:"userid"`      //用户ID
	Goodstag   string `json:"goodstag"`    //商品标识符 计费点
	Multiple   int    `json:"multiple"`    //倍数 10:1（20 则为2倍）
	Count      int    `json:"count"`       //抽奖次数
	Locked     int    `json:"locked"`      //锁定 1 锁定倍数  2 锁定计费点
	ExpireTime int64  `json:"expire_time"` // 过期时间
}

// GetPrecious 获取全部活动数据
func (m *PreciousV2) GetPrecious() (has bool, err error) {
	data, err := rds.Redis8.Get(fmt.Sprintf(constant.PreciousV2Key, m.UserID)).Bytes()
	if err != nil {
		if err == redis.Nil {
			err = nil
			return
		}
		return
	}
	if err = json.Unmarshal(data, m); err != nil {
		return
	}
	has = true
	return
}

// Update 更新
func (m *PreciousV2) Update() error {
	data, err := json.Marshal(m)
	if err != nil {
		return err
	}
	return rds.Redis8.Set(fmt.Sprintf(constant.PreciousV2Key, m.UserID), string(data), 0).Err()
}
