<?php
// include/email_template_redefinicao_senha.php

// Incluir os arquivos do PHPMailer diretamente
// __DIR__ é a pasta 'include', então '../' sobe para a raiz do projeto.
// Caminho confirmado: raiz->PHPMailer-master->src->PHPMailer.php
if (!class_exists('PHPMailer\PHPMailer\PHPMailer')) { // Evita re-declaração se já incluído
    require_once __DIR__ . '/../PHPMailer-master/src/Exception.php';
    require_once __DIR__ . '/../PHPMailer-master/src/PHPMailer.php';
    require_once __DIR__ . '/../PHPMailer-master/src/SMTP.php';
}

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception as PHPMailerException; // Alias para a exceção

// Incluir o arquivo que contém a função de configuração do mailer
// Se `configurarMailerParaAnuncioPago` está em `email-anuncio-pago.php`
require_once __DIR__ . '/email-anuncio-pago.php';

/**
 * Envia um e-mail de solicitação de redefinição de senha.
 */
function enviarEmailRedefinicaoSenha($email_destinatario, $nome_usuario, $link_redefinicao, $minutos_validade_token) {
    // Usa a função do seu arquivo email-anuncio-pago.php
    $mail = configurarMailerParaAnuncioPago(); 
    
    if (!$mail) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: PHPMailer não pôde ser configurado para enviar link de redefinição (configurarMailerParaAnuncioPago falhou).");
        return false;
    }

    try {
        $mail->addAddress($email_destinatario, $nome_usuario ?: '');
        $site_name = htmlspecialchars($_ENV['SMTP_FROM_NAME'] ?? ($_ENV['SITE_NAME'] ?? 'Seu Site'));
        $mail->Subject = "Redefinição de Senha - " . $site_name;

        $corpoHtml = "
            <html><head><meta charset='UTF-8'><title>Redefinição de Senha - {$site_name}</title></head>
            <body style='font-family: Arial, sans-serif; line-height: 1.6; color: #333;'>
                <div style='max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>
                    <h2 style='color: #12929e;'>Redefinição de Senha</h2>
                    <p>Olá" . ($nome_usuario ? ", <strong>" . htmlspecialchars($nome_usuario) . "</strong>" : "") . ",</p>
                    <p>Recebemos uma solicitação para redefinir a senha da sua conta em {$site_name}.</p>
                    <p>Se você não fez esta solicitação, por favor, ignore este e-mail.</p>
                    <p>Para criar uma nova senha, clique no link abaixo:</p>
                    <p style='text-align: center; margin: 20px 0;'>
                        <a href=\"" . htmlspecialchars($link_redefinicao) . "\" style='background-color: #12929e; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px; font-weight: bold;'>Redefinir Minha Senha</a>
                    </p>
                    <p>Este link é válido por <strong>{$minutos_validade_token} minutos</strong>.</p>
                    <p>Se tiver problemas para clicar no link, copie e cole a seguinte URL no seu navegador:</p>
                    <p style='word-break: break-all;'>" . htmlspecialchars($link_redefinicao) . "</p>
                    <br><p>Atenciosamente,<br>Equipe {$site_name}</p>
                </div>
            </body></html>";
        $corpoTexto = "Olá" . ($nome_usuario ? " " . htmlspecialchars($nome_usuario) : "") . ",\n\n" .
                      "Recebemos uma solicitação para redefinir a senha da sua conta em {$site_name}.\n\n" .
                      "Se você não fez esta solicitação, por favor, ignore este e-mail.\n\n" .
                      "Para criar uma nova senha, acesse o seguinte link:\n" . htmlspecialchars($link_redefinicao) . "\n\n" .
                      "Este link é válido por {$minutos_validade_token} minutos.\n\n" .
                      "Atenciosamente,\nEquipe {$site_name}";

        $mail->isHTML(true);
        $mail->Body    = $corpoHtml;
        $mail->AltBody = $corpoTexto;

        if ($mail->send()) {
            error_log("EMAIL_REDEFINICAO_TEMPLATE: E-mail de redefinição de senha enviado com sucesso para: " . $email_destinatario);
            return true;
        } else {
            error_log("EMAIL_REDEFINICAO_TEMPLATE: mail->send() retornou false para " . $email_destinatario . ". ErroInfo: " . $mail->ErrorInfo);
            return false;
        }
    } catch (PHPMailerException $e) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: Erro PHPMailer ao enviar link de redefinição para {$email_destinatario}: " . $e->errorMessage() . " (Detalhes: " . $mail->ErrorInfo . ")");
        return false;
    } catch (Exception $e) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: Erro geral ao enviar link de redefinição para {$email_destinatario}: " . $e->getMessage());
        return false;
    }
}

/**
 * Envia um e-mail de confirmação de senha alterada.
 */
function enviarEmailConfirmacaoSenhaAlterada($email_destinatario, $nome_usuario) {
    $mail = configurarMailerParaAnuncioPago(); // Usa a função do seu arquivo email-anuncio-pago.php
    if (!$mail) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: PHPMailer não pôde ser configurado para confirmação de senha alterada (configurarMailerParaAnuncioPago falhou).");
        return false;
    }

    try {
        $site_name = htmlspecialchars($_ENV['SMTP_FROM_NAME'] ?? ($_ENV['SITE_NAME'] ?? 'Seu Site'));
        $mail->addAddress($email_destinatario, $nome_usuario ?: '');
        $mail->Subject = "Sua senha em {$site_name} foi alterada";

        $corpoHtml = "
            <html><head><meta charset='UTF-8'><title>Senha Alterada - {$site_name}</title></head>
            <body style='font-family: Arial, sans-serif; line-height: 1.6; color: #333;'>
                <div style='max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>
                    <h2 style='color: #12929e;'>Senha Alterada</h2>
                    <p>Olá" . ($nome_usuario ? ", <strong>" . htmlspecialchars($nome_usuario) . "</strong>" : "") . ",</p>
                    <p>Este e-mail é para confirmar que a senha da sua conta em {$site_name} foi alterada recentemente.</p>
                    <p>Se você não realizou esta alteração, por favor, <a href='" . htmlspecialchars(rtrim(($_ENV['SITE_URL'] ?? 'http://localhost/seu_projeto'), '/')) . "/recuperar_senha.php' style='color: #12929e; font-weight: bold;'>redefina sua senha imediatamente</a> ou entre em contato conosco.</p>
                    <br><p>Atenciosamente,<br>Equipe {$site_name}</p>
                </div>
            </body></html>";
        $corpoTexto = "Olá" . ($nome_usuario ? " " . htmlspecialchars($nome_usuario) : "") . ",\n\n" .
                      "Este e-mail é para confirmar que a senha da sua conta em {$site_name} foi alterada recentemente.\n\n" .
                      "Se você não realizou esta alteração, por favor, redefina sua senha imediatamente acessando " . htmlspecialchars(rtrim(($_ENV['SITE_URL'] ?? 'http://localhost/seu_projeto'), '/')) . "/recuperar_senha.php ou entre em contato conosco.\n\n" .
                      "Atenciosamente,\nEquipe {$site_name}";

        $mail->isHTML(true);
        $mail->Body    = $corpoHtml;
        $mail->AltBody = $corpoTexto;

        if ($mail->send()) {
            error_log("EMAIL_REDEFINICAO_TEMPLATE: E-mail de confirmação de senha alterada enviado com sucesso para: " . $email_destinatario);
            return true;
        } else {
            error_log("EMAIL_REDEFINICAO_TEMPLATE: mail->send() retornou false para confirmação de senha alterada para " . $email_destinatario . ". ErroInfo: " . $mail->ErrorInfo);
            return false;
        }
    } catch (PHPMailerException $e) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: Erro PHPMailer ao enviar confirmação de senha alterada para {$email_destinatario}: " . $e->errorMessage() . " (Detalhes: " . $mail->ErrorInfo . ")");
        return false;
    } catch (Exception $e) {
        error_log("EMAIL_REDEFINICAO_TEMPLATE: Erro geral ao enviar confirmação de senha alterada para {$email_destinatario}: " . $e->getMessage());
        return false;
    }
}
?>