Yimaru-BackEnd/internal/pkgs/helpers/helpers.go

45 lines
898 B
Go

package helpers
import (
random "crypto/rand"
"fmt"
"github.com/google/uuid"
"math/big"
"math/rand/v2"
)
func GenerateID() string {
return uuid.New().String()
}
func GenerateOTP() string {
num := 100000 + rand.UintN(899999)
return fmt.Sprintf("%d", num) // 6 digit random number [100,000 - 999,999]
}
func GenerateFastCode() string {
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var code string
for i := 0; i < 6; i++ {
code += string(letters[rand.UintN(uint(len(letters)))])
}
return code
}
func GenerateCashoutID() (string, error) {
const chars = "abcdefghijklmnopqrstuvwxyz0123456789"
const length int = 13
charLen := big.NewInt(int64(len(chars)))
result := make([]byte, length)
for i := 0; i < length; i++ {
index, err := random.Int(random.Reader, charLen)
if err != nil {
return "", err
}
result[i] = chars[index.Int64()]
}
return string(result), nil
}