<?php
$pageTitle = "Recuperar Senha - CATÁLOGO 44";
include 'header.php';
include '../adm/config/db.php';
require_once __DIR__ . '/inc/mailer.php';
require_once __DIR__ . '/inc/email_templates.php';

$erro    = '';
$sucesso = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $identificador = trim($_POST['identificador'] ?? $_POST['email'] ?? '');
    $identificador_limpo = preg_replace('/\D/', '', $identificador);

    if (empty($identificador)) {
        $erro = "Informe seu e-mail ou CPF/CNPJ de cadastro.";
    } else {
        // Busca por e-mail OU por CPF/CNPJ
        $stmt = $conn->prepare(
            "SELECT id, nome_completo, email_principal FROM usuarios
             WHERE email_principal = ? OR cpf_cnpj = ? LIMIT 1"
        );
        $stmt->bind_param("ss", $identificador, $identificador_limpo);
        $stmt->execute();
        $result = $stmt->get_result();

        if ($user = $result->fetch_assoc()) {
            // Gera senha temporária segura
            $senhaTemp   = substr(str_shuffle('ABCDEFGHJKMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789'), 0, 8);
            $senhaHash   = password_hash($senhaTemp, PASSWORD_DEFAULT);

            // Atualiza senha no banco
            $upStmt = $conn->prepare("UPDATE usuarios SET senha = ? WHERE id = ?");
            $upStmt->bind_param("si", $senhaHash, $user['id']);

            if ($upStmt->execute()) {
                // Envia e-mail com a senha temporária
                try {
                    $loja     = _getLojaEmailData($conn);
                    $assunto  = '🔐 Recuperação de Acesso - ' . $loja['nome'];
                    $htmlEmail = emailRecuperacaoSenha($user['nome_completo'], $senhaTemp, $loja);
                    $enviado  = enviarEmail($user['email_principal'], $user['nome_completo'], $assunto, $htmlEmail);

                    if ($enviado) {
                        $emailMasked = preg_replace('/(?<=.{3}).(?=.*@)/', '*', $user['email_principal']);
                        $sucesso = "Uma senha temporária foi enviada para <strong>{$emailMasked}</strong>.<br>
                                    Acesse seu e-mail, faça login e altere a senha no seu perfil.";
                    } else {
                        $erro = "Não foi possível enviar o e-mail. Tente novamente ou entre em contato com a loja.";
                        // Desfaz a troca de senha
                        $upStmt2 = $conn->prepare("UPDATE usuarios SET senha = ? WHERE id = ?");
                        $senhaAnterior = ''; // Não revertemos — senha temporária já está salva
                    }
                } catch (\Throwable $ex) {
                    error_log('[RECUPERAR-SENHA] ' . $ex->getMessage());
                    $erro = "Erro ao enviar e-mail. Tente novamente.";
                }
            } else {
                $erro = "Erro interno ao redefinir a senha. Tente novamente.";
            }
        } else {
            // Mensagem genérica por segurança (não revela se e-mail existe)
            $sucesso = "Se os dados informados estiverem cadastrados, você receberá um e-mail com instruções.";
        }
    }
}
?>

    <!-- Hero Start -->
    <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">Recuperar Acesso</h1>
                <a href="index.php" class="h4 text-white">Início</a>
                <i class="far fa-circle text-white px-2"></i>
                <span class="h4 text-white">Esqueci a Senha</span>
            </div>
        </div>
    </div>
    <!-- Hero End -->


    <!-- Recovery Start -->
    <div class="container-fluid py-5">
        <div class="container">
            <div class="row g-5 justify-content-center">
                <div class="col-xl-5 col-lg-6 wow slideInUp" data-wow-delay="0.1s">
                    <div class="bg-light rounded p-5 shadow">
                        <div class="section-title mb-4">
                            <h5 class="position-relative d-inline-block text-primary text-uppercase">Recuperação</h5>
                            <h1 class="h3 mb-4">Esqueceu sua senha?</h1>
                            <p class="text-muted">Informe seu <strong>e-mail</strong> ou <strong>CPF/CNPJ</strong> de cadastro e enviaremos uma senha temporária para você acessar sua conta.</p>
                        </div>
                        
                        <?php if ($erro): ?>
                        <div class="alert alert-danger border-0 mb-4" role="alert">
                            <i class="fas fa-exclamation-circle me-2"></i><?= $erro ?>
                        </div>
                        <?php endif; ?>

                        <?php if ($sucesso): ?>
                        <div class="alert alert-success border-0 mb-4" role="alert">
                            <i class="fas fa-check-circle me-2"></i><?= $sucesso ?>
                        </div>
                        <div class="text-center">
                            <a href="login.php" class="btn btn-outline-primary py-2 px-4 mt-2">Voltar para o Login</a>
                        </div>
                        <?php else: ?>

                        <form action="recuperar-senha.php" method="POST">
                            <div class="row g-3">
                                <div class="col-12">
                                    <label class="form-label">E-mail ou CPF/CNPJ de Cadastro</label>
                                    <input type="text" name="identificador" class="form-control border-0 bg-white px-4" placeholder="seu@email.com ou 000.000.000-00" style="height: 55px;" required>
                                </div>
                                <div class="col-12 mt-4">
                                    <button class="btn btn-primary w-100 py-3" type="submit">SOLICITAR RECONEXÃO</button>
                                </div>
                                <div class="col-12 text-center mt-4">
                                    <a href="login.php" class="text-muted"><i class="fas fa-arrow-left me-2"></i>Voltar para o login</a>
                                </div>
                            </div>
                        </form>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- Recovery End -->

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