<?php
// include/emails-notificacao/vencimento-vaga.php

if (!defined('BASE_PATH')) {
    define('BASE_PATH', realpath(__DIR__ . '/../../')); 
}

require_once BASE_PATH . '/PHPMailer-master/src/Exception.php';
require_once BASE_PATH . '/PHPMailer-master/src/PHPMailer.php';
require_once BASE_PATH . '/PHPMailer-master/src/SMTP.php';
require_once BASE_PATH . '/env.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception as PHPMailerException;

function processarTemplateVencimento($pdo, $slug, $dados) {
    $stmt = $pdo->prepare("SELECT assunto, corpo FROM EmailTemplates WHERE slug = :slug");
    $stmt->execute([':slug' => $slug]);
    $template = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$template) return null;

    $assunto = $template['assunto'];
    $corpo = $template['corpo'];

    foreach ($dados as $chave => $valor) {
        $placeholder = "{{" . $chave . "}}";
        $assunto = str_replace($placeholder, $valor, $assunto);
        $corpo = str_replace($placeholder, $valor, $corpo);
    }
    return ['assunto' => $assunto, 'corpo' => $corpo];
}

function enviarEmailVencimentoVaga($dados_vaga) {
    global $pdo;
    $mail = new PHPMailer(true);
    
    try {
        $mail->isSMTP();
        $mail->Host       = $_ENV['SMTP_HOST'] ?? '';
        $mail->SMTPAuth   = filter_var(($_ENV['SMTP_AUTH'] ?? true), FILTER_VALIDATE_BOOLEAN);
        $mail->Username   = $_ENV['SMTP_USERNAME'] ?? '';
        $mail->Password   = $_ENV['SMTP_PASSWORD'] ?? '';
        $mail->SMTPSecure = (strtolower($_ENV['SMTP_SECURE'] ?? 'ssl') === 'tls') ? PHPMailer::ENCRYPTION_STARTTLS : PHPMailer::ENCRYPTION_SMTPS;
        $mail->Port       = (int)($_ENV['SMTP_PORT'] ?? 465);
        $mail->CharSet    = 'UTF-8';
        $mail->setFrom($_ENV['SMTP_FROM_EMAIL'] ?? '', "Selflix Vagas - Avisos");
        
        $conteudo = processarTemplateVencimento($pdo, 'vencimento_vaga_gratuita', $dados_vaga);
        
        if (!$conteudo) {
            // Fallback: Layout completo inserido caso o banco de dados falhe ou o painel não tenha sido salvo
            $conteudo = [
                'assunto' => "Aviso: A sua vaga {$dados_vaga['titulo_vaga']} atingiu o prazo de 30 dias",
                'corpo' => "
                    <p>Olá <strong>{$dados_vaga['nome_empresa']}</strong>,</p>
                    <p>Informamos que a sua vaga gratuita para <strong>{$dados_vaga['titulo_vaga']}</strong>, publicada no dia {$dados_vaga['data_criacao']}, atingiu o prazo limite de 30 dias para receber novas candidaturas.</p>
                    <p>A partir de agora, a vaga continuará visível no nosso portal por mais 30 dias para efeitos de visualização, mas o botão de candidatura foi desativado.</p>
                    <p>Para ver a sua vaga, acesse o link: <a href=\"{$dados_vaga['link_vaga']}\">{$dados_vaga['link_vaga']}</a></p>
                    <p>Obrigado por utilizar a Selflix Vagas!</p>
                "
            ];
        }

        $mail->addAddress($dados_vaga['email_empresa']);
        $mail->isHTML(true);
        $mail->Subject = $conteudo['assunto'];
        $mail->Body    = $conteudo['corpo'];
        $mail->AltBody = strip_tags($conteudo['corpo']);

        return $mail->send();
    } catch (Exception $e) {
        error_log("Erro ao enviar e-mail de vencimento: " . $e->getMessage());
        return false; 
    }
}
?>