package idGenerate

import (
	"epur-pay/pkg/logger"
	"github.com/bwmarrin/snowflake"
)

var ID *id

type id struct {
	node *snowflake.Node
}

func init() {

	var err error
	ID = &id{}

	snowflake.Epoch = 1668423088000
	ID.node, err = snowflake.NewNode(1)
	if err != nil {
		logger.AccessLogger.Error(err.Error())
		panic(err)
	}
}

const (
	CoinsOrder = "C" // 币币订单
	Recharge   = "R" // 充值
	Withdraw   = "W" // 提现
	FOrder     = "F" // 理财产品
	Ico        = "I" // ICO申购
	C2C        = "T" // C2C
	NULL       = ""  // 其它
	CHAT       = "M" // 聊天
	Pledge     = "P" // 质押
)

func (i *id) generate() snowflake.ID {
	return i.node.Generate()
}

func (i *id) Generate(Type string) string {
	return Type + i.generate().String()
}