package util

import (
	"math/rand"
	"strings"
)

const alphabet = "abcdefghijklmnopqrstuvwxyz"
const numbers = "0123456789"

// func init() {
// 	rand.Seed(time.Now().UnixNano())
// }

// RandomInt generates a random number between min and max
func RandomInt(min, max int64) int64 {
	return min + rand.Int63n(max-min+1)
}

// RandomString generates a random string of length n
func RandomString(n int) string {
	var sb strings.Builder
	k := len(alphabet)

	for i := 0; i < n; i++ {
		c := alphabet[rand.Intn(k)]
		sb.WriteByte(c)
	}

	return sb.String()
}

// RandomPhone generates a random phone number as string
func RandomPhone() string {
	var sb strings.Builder
	k := len(numbers)

	for i := 0; i <= 12; i++ {
		c := numbers[rand.Intn(k)]
		sb.WriteByte(c)
	}

	return sb.String()
}

// RandomUser generates a random username
func RandomUser() string {
	return RandomString(20)
}

// RandomEmail generates a random email address
func RandomEmail() string {
	var s string
	s += RandomString(10)
	s += "@"
	s += RandomString(10)
	s += "."
	s += RandomString(2)
	return s
}