package uniqueid

import (
	"crypto/rand"
	"fmt"
	"math/big"
	"strings"

	"github.com/google/uuid"
)

func GenerateId() string {
	uuidV1, err := uuid.NewUUID()
	if err != nil {
		panic(err)
	}
	return uuidV1.String()
}

func GenerateName() string {
	str := uuid.New().String()
	//生成一个用户名 比如花友u278bb 中文后的字符随机生成 不可重复 取str的前六位
	return "花友" + str[6:12]

}

// GenerateRandomCode 生成邀请码
func GenerateRandomCode(length int) string {
	const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	var sb strings.Builder
	for i := 0; i < length; i++ {
		n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
		sb.WriteByte(charset[n.Int64()])
	}
	return sb.String()
}

// GenCodeKey 生成邀请码的key
func GenCodeKey(userId string) string {
	return fmt.Sprintf("code:%s", userId)
}
