interface EmailVerificationData {
	email: string;
	fullName?: string | null;
	verificationUrl: string;
	expiresInHours: number;
}

/**
 * Renders the email body sent to a newly-registered user with a single-use
 * verification link. The user cannot log in (or use the SSO) until they
 * click this link and the corresponding `email_verify_tokens` row is marked
 * as `used_at`.
 */
export function getEmailVerificationEmail(data: EmailVerificationData): string {
	const { email, fullName, verificationUrl, expiresInHours } = data;
	const greetingName = fullName?.trim() || email;
	const issuedAt = new Date().toLocaleString('vi-VN');
	const expiresAt = new Date(Date.now() + expiresInHours * 60 * 60 * 1000).toLocaleString('vi-VN');

	return `
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Xác thực email - Email Verification</title>
	<style>
		body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background: #f4f4f7; }
		.container { max-width: 600px; margin: 0 auto; padding: 20px; }
		.header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; text-align: center; border-radius: 10px 10px 0 0; }
		.header h1 { margin: 0; font-size: 24px; }
		.content { background: white; padding: 30px; border-radius: 0 0 10px 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
		.btn { display: inline-block; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white !important; padding: 14px 36px; text-decoration: none; border-radius: 6px; font-weight: bold; margin: 20px 0; }
		.warning { background: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin: 20px 0; border-radius: 4px; }
		.fallback-link { background: #f4f4f7; padding: 12px; border-radius: 4px; word-break: break-all; font-family: 'Courier New', monospace; font-size: 12px; color: #555; }
		.footer { text-align: center; margin-top: 30px; color: #666; font-size: 12px; }
		.info-row { margin: 10px 0; }
		.label { font-weight: bold; color: #555; }
	</style>
</head>
<body>
	<div class="container">
		<div class="header">
			<h1>SSO VietProDev</h1>
			<p style="margin: 5px 0 0 0;">Xác thực địa chỉ email</p>
		</div>

		<div class="content">
			<p><strong>Xin chào ${greetingName},</strong></p>

			<p>
				<strong>Tiếng Việt:</strong><br>
				Cảm ơn bạn đã đăng ký tài khoản SSO VietProDev. Để hoàn tất quá trình đăng ký và kích hoạt tài khoản,
				vui lòng nhấp vào nút bên dưới để xác thực địa chỉ email của bạn.
			</p>

			<p>
				<strong>English:</strong><br>
				Thank you for registering a SSO VietProDev account. To finish the sign-up process and activate your account,
				please click the button below to verify your email address.
			</p>

			<div style="text-align: center;">
				<a href="${verificationUrl}" class="btn">Xác thực email / Verify email</a>
			</div>

			<p>
				Hoặc sao chép liên kết sau vào trình duyệt / Or copy this link into your browser:
			</p>
			<div class="fallback-link">${verificationUrl}</div>

			<div class="warning">
				<p style="margin: 0 0 8px 0;">
					<strong>⚠️ Lưu ý quan trọng / Important Notice:</strong>
				</p>
				<ul style="margin: 0; padding-left: 20px;">
					<li>Liên kết sẽ hết hạn sau <strong>${expiresInHours} giờ</strong> / Link expires in <strong>${expiresInHours} hours</strong></li>
					<li>Bạn cần xác thực email trước khi có thể đăng nhập / You must verify before you can log in</li>
					<li>Nếu bạn không thực hiện đăng ký này, vui lòng bỏ qua email / If you did not sign up, please ignore this email</li>
					<li>Không chia sẻ liên kết này với người khác / Do not share this link with others</li>
				</ul>
			</div>

			<div class="info-row">
				<span class="label">Email đăng ký / Registered email:</span> ${email}
			</div>
			<div class="info-row">
				<span class="label">Thời gian gửi / Issued at:</span> ${issuedAt}
			</div>
			<div class="info-row">
				<span class="label">Hết hạn lúc / Expires at:</span> ${expiresAt}
			</div>
		</div>

		<div class="footer">
			<p>© ${new Date().getFullYear()} SSO VietProDev. All rights reserved.</p>
			<p>Đây là email tự động, vui lòng không trả lời / This is an automated message, please do not reply.</p>
		</div>
	</div>
</body>
</html>
	`;
}
