<?php
/**
 * Página de Verificação de E-mail
 * Acessada pelo link enviado por e-mail após o cadastro
 */
include '../adm/config/db.php';
require_once __DIR__ . '/inc/mailer.php';
require_once __DIR__ . '/inc/email_templates.php';

$token  = trim($_GET['token'] ?? '');
$status = 'invalido'; // invalido | expirado | ja_verificado | sucesso

if (!empty($token)) {
    $stmt = $conn->prepare(
        "SELECT id, nome_completo, email_principal, email_verificado, token_expira_em
         FROM usuarios WHERE token_verificacao = ? LIMIT 1"
    );
    $stmt->bind_param("s", $token);
    $stmt->execute();
    $res = $stmt->get_result();

    if ($user = $res->fetch_assoc()) {
        if ((int)$user['email_verificado'] === 1) {
            $status = 'ja_verificado';
        } elseif (!empty($user['token_expira_em']) && strtotime($user['token_expira_em']) < time()) {
            $status = 'expirado';
        } else {
            // Marca como verificado e limpa o token
            $upStmt = $conn->prepare(
                "UPDATE usuarios SET email_verificado = 1, token_verificacao = NULL, token_expira_em = NULL WHERE id = ?"
            );
            $upStmt->bind_param("i", $user['id']);
            $upStmt->execute();
            $status = 'sucesso';

            // E-mail de boas-vindas após verificação
            try {
                $loja     = _getLojaEmailData($conn);
                $assunto  = '🎉 Bem-vindo(a) à ' . $loja['nome'] . '!';
                $htmlBV   = emailBoasVindas($user['nome_completo'], $loja);
                enviarEmail($user['email_principal'], $user['nome_completo'], $assunto, $htmlBV);
            } catch (\Throwable $ex) {
                error_log('[VERIFICAR-EMAIL] Boas-vindas: ' . $ex->getMessage());
            }
        }
    }
}

$pageTitle = "Verificação de E-mail";
include 'header.php';
?>

    <!-- Hero -->
    <div class="container-fluid bg-primary py-5 hero-header mb-5">
        <div class="row py-3">
            <div class="col-12 text-center">
                <h1 class="display-3 text-white animated zoomIn">Verificação de Conta</h1>
            </div>
        </div>
    </div>

    <div class="container-fluid py-5">
        <div class="container">
            <div class="row justify-content-center">
                <div class="col-xl-5 col-lg-6">
                    <div class="bg-light rounded p-5 shadow text-center">

                        <?php if ($status === 'sucesso'): ?>
                            <div class="mb-4">
                                <span style="font-size:72px;">✅</span>
                            </div>
                            <h2 class="h3 text-success mb-3">E-mail Verificado!</h2>
                            <p class="text-muted mb-4">
                                Sua conta foi ativada com sucesso. Você já pode fazer login e aproveitar todas as funcionalidades da loja.
                            </p>
                            <a href="login.php" class="btn btn-primary py-3 px-5 rounded-pill">
                                <i class="fas fa-sign-in-alt me-2"></i> Fazer Login
                            </a>

                        <?php elseif ($status === 'ja_verificado'): ?>
                            <div class="mb-4">
                                <span style="font-size:72px;">✔️</span>
                            </div>
                            <h2 class="h3 text-primary mb-3">Conta Já Verificada</h2>
                            <p class="text-muted mb-4">
                                Seu e-mail já foi verificado anteriormente. Você pode fazer login normalmente.
                            </p>
                            <a href="login.php" class="btn btn-primary py-3 px-5 rounded-pill">Ir para o Login</a>

                        <?php elseif ($status === 'expirado'): ?>
                            <div class="mb-4">
                                <span style="font-size:72px;">⏰</span>
                            </div>
                            <h2 class="h3 text-warning mb-3">Link Expirado</h2>
                            <p class="text-muted mb-4">
                                Este link de verificação expirou (válido por 24h). Solicite um novo abaixo.
                            </p>
                            <form id="form-reenvio" class="mt-2">
                                <input type="hidden" name="token_expirado" value="<?= htmlspecialchars($token) ?>">
                                <button type="submit" class="btn btn-warning py-3 px-5 rounded-pill text-white">
                                    <i class="fas fa-paper-plane me-2"></i> Reenviar Link de Verificação
                                </button>
                            </form>
                            <div id="msg-reenvio" class="mt-3"></div>

                        <?php else: ?>
                            <div class="mb-4">
                                <span style="font-size:72px;">❌</span>
                            </div>
                            <h2 class="h3 text-danger mb-3">Link Inválido</h2>
                            <p class="text-muted mb-4">
                                Este link de verificação é inválido ou já foi utilizado. Se você precisar de ajuda, entre em contato com a loja.
                            </p>
                            <a href="index.php" class="btn btn-outline-primary py-3 px-5 rounded-pill">Voltar para a Loja</a>
                        <?php endif; ?>

                    </div>
                </div>
            </div>
        </div>
    </div>

<script>
const formReenvio = document.getElementById('form-reenvio');
if (formReenvio) {
    formReenvio.addEventListener('submit', function(e) {
        e.preventDefault();
        const btn = formReenvio.querySelector('button');
        btn.disabled = true;
        btn.innerHTML = '<i class="fas fa-spinner fa-spin me-2"></i> Reenviando...';

        fetch('reenviar-verificacao.php', {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({ token_expirado: formReenvio.querySelector('[name="token_expirado"]').value })
        })
        .then(r => r.json())
        .then(data => {
            const msgEl = document.getElementById('msg-reenvio');
            if (data.success) {
                msgEl.innerHTML = '<div class="alert alert-success">' + data.message + '</div>';
                btn.innerHTML = '<i class="fas fa-check me-2"></i> Enviado!';
            } else {
                msgEl.innerHTML = '<div class="alert alert-danger">' + data.message + '</div>';
                btn.disabled = false;
                btn.innerHTML = '<i class="fas fa-paper-plane me-2"></i> Tentar Novamente';
            }
        });
    });
}
</script>

<?php
$marginTop = 'style="margin-top: -75px;"';
include 'footer.php';
?>
