<?php
// include/email-anuncio-pago.php

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;

/**
 * Configura o motor de disparo de e-mail para anúncios pagos.
 */
function configurarMailerParaAnuncioPago() {
    $mail = new PHPMailer(true);
    
    try {
        // 1. Configurações do Servidor baseadas no .env
        $mail->isSMTP();
        // Fallback para evitar erro caso a variável não exista no .env
        $mail->Host       = $_ENV['SMTP_HOST'] ?? 'smtp.exemplo.com'; 
        $mail->SMTPAuth   = true;
        $mail->Username   = $_ENV['SMTP_USERNAME'] ?? $_ENV['SMTP_USER'] ?? ''; 
        $mail->Password   = $_ENV['SMTP_PASSWORD'] ?? $_ENV['SMTP_PASS'] ?? '';

        $porta = (int)($_ENV['SMTP_PORT'] ?? 587);
        $mail->Port = $porta;

        if ($porta === 465) {
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; 
        } else {
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; 
        }

        // 2. Remetente Padronizado
        $nome_exibicao = htmlspecialchars($_ENV['SMTP_FROM_NAME'] ?? 'Selflix Vagas');
        $mail->setFrom($mail->Username, $nome_exibicao);
        
        if (!empty($_ENV['SMTP_FROM_EMAIL']) && $_ENV['SMTP_FROM_EMAIL'] !== $mail->Username) {
            $mail->addReplyTo($_ENV['SMTP_FROM_EMAIL'], $nome_exibicao);
        }

        $mail->CharSet = 'UTF-8';
        $mail->Encoding = 'base64'; 

        return $mail;

    } catch (PHPMailerException $e) {
        error_log("Erro ao configurar PHPMailer: " . $e->getMessage());
        return null; 
    }
}

/**
 * E-mail para a Empresa: Confirmação de publicação.
 */
function enviarEmailConfirmacaoAnuncioParaEmpresa($email_destinatario, $nome_empresa, $titulo_vaga, $link_vaga, $email_contato_vaga_anuncio) {
    $mail = configurarMailerParaAnuncioPago();
    if (!$mail) return false;

    try {
        $mail->addAddress($email_destinatario, htmlspecialchars($nome_empresa));
        $mail->Subject = "Seu anúncio de vaga foi publicado: " . htmlspecialchars($titulo_vaga);
        
        // Assinatura Padrão
        $assinatura = "<p>Atenciosamente,<br>Equipe " . htmlspecialchars($_ENV['SMTP_FROM_NAME'] ?? 'Selflix Vagas') . "</p>";

        $corpoHtml = "
            <html>
            <body style='font-family: sans-serif; color: #333;'>
                <p>Olá <strong>" . htmlspecialchars($nome_empresa) . "</strong>,</p>
                <p>Seu anúncio de vaga \"<strong>" . htmlspecialchars($titulo_vaga) . "</strong>\" foi publicado com sucesso!</p>
                <p>Link da vaga: <a href=\"" . htmlspecialchars($link_vaga) . "\">" . htmlspecialchars($link_vaga) . "</a></p>
                <p>E-mail de recebimento: <strong>" . htmlspecialchars($email_contato_vaga_anuncio) . "</strong>.</p>
                <p>Obrigado por anunciar conosco!</p>
                {$assinatura}
            </body>
            </html>
        ";

        $mail->isHTML(true);
        $mail->Body = $corpoHtml;
        $mail->AltBody = strip_tags($corpoHtml);
        $mail->send();
        return true;
    } catch (PHPMailerException $e) {
        error_log("Erro E-mail Empresa: " . $mail->ErrorInfo);
        return false;
    }
}

/**
 * E-mail para o Admin: Notificação de nova venda/anúncio.
 */
function enviarEmailNotificacaoNovoAnuncioParaAdmin($email_admin, $nome_empresa, $titulo_vaga, $link_vaga, $email_contato_vaga_anuncio, $id_empresa) {
    $mail = configurarMailerParaAnuncioPago();
    if (!$mail) return false;

    try {
        $mail->addAddress($email_admin);
        $mail->Subject = "[ADMIN] Novo Anúncio Pago: " . htmlspecialchars($titulo_vaga);

        // Assinatura Padrão
        $assinatura = "<p>Atenciosamente,<br>Sistema " . htmlspecialchars($_ENV['SMTP_FROM_NAME'] ?? 'Selflix Vagas') . "</p>";

        $corpoHtml = "
            <html>
            <body style='font-family: sans-serif;'>
                <p>Um novo anúncio de vaga <strong>PAGO</strong> foi criado:</p>
                <ul>
                    <li><strong>Vaga:</strong> " . htmlspecialchars($titulo_vaga) . "</li>
                    <li><strong>Empresa:</strong> " . htmlspecialchars($nome_empresa) . " (ID: {$id_empresa})</li>
                    <li><strong>E-mail CVs:</strong> " . htmlspecialchars($email_contato_vaga_anuncio) . "</li>
                    <li><a href=\"" . htmlspecialchars($link_vaga) . "\">Visualizar no Site</a></li>
                </ul>
                {$assinatura}
            </body>
            </html>
        ";

        $mail->isHTML(true);
        $mail->Body = $corpoHtml;
        $mail->send();
        return true;
    } catch (PHPMailerException $e) {
        error_log("Erro E-mail Admin: " . $mail->ErrorInfo);
        return false;
    }
}