package utils

import (
	"crypto/rand"
	"fmt"
)

// GenerateCaptcha 生成6位数字验证码
func GenerateCaptcha() (string, error) {
	// 生成6位随机数字
	b := make([]byte, 3)
	if _, err := rand.Read(b); err != nil {
		return "", err
	}

	// 将随机字节转换为6位数字
	num := int(b[0])<<16 | int(b[1])<<8 | int(b[2])
	return fmt.Sprintf("%06d", num%1000000), nil
}

// GenerateEmailCaptchaContent 生成验证码邮件内容
func GenerateEmailCaptchaContent(code, username, action string) string {
	return fmt.Sprintf(`
		<h3>验证码</h3>
		<p>您好，%s</p>
		<p>您正在进行%s操作，验证码为：</p>
		<h2 style="color: #1890ff;">%s</h2>
		<p>验证码有效期为5分钟，请勿泄露给他人。</p>
		<p>如果这不是您的操作，请忽略此邮件。</p>
	`, username, action, code)
}
