<?php
// include/email_registro_candidatura.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;
use PHPMailer\PHPMailer\SMTP;

require_once __DIR__ . '/../env.php';

try {
    carregarEnv(__DIR__ . '/../.env'); 
} catch (Exception $e) {
    error_log("Erro crítico ao carregar o arquivo .env: " . $e->getMessage());
}

/**
 * Configuração central do PHPMailer
 */
function configurarMailerParaRegistroCandidatura() {
    $mail = new PHPMailer(true);
    try {
        $mail->SMTPDebug = SMTP::DEBUG_OFF; 
        $mail->isSMTP();
        $mail->Host       = $_ENV['SMTP_HOST'] ?? '';
        $mail->SMTPAuth   = ($_ENV['SMTP_AUTH'] ?? 'true') === 'true';
        $mail->Username   = $_ENV['SMTP_USERNAME'] ?? '';
        $mail->Password   = $_ENV['SMTP_PASSWORD'] ?? '';
        
        $smtp_secure = strtolower($_ENV['SMTP_SECURE'] ?? 'ssl');
        $mail->SMTPSecure = ($smtp_secure === 'tls') ? PHPMailer::ENCRYPTION_STARTTLS : PHPMailer::ENCRYPTION_SMTPS;
        $mail->Port       = (int)($_ENV['SMTP_PORT'] ?? 465);
        $mail->CharSet    = 'UTF-8';
        
        $mail->setFrom(
            $_ENV['SMTP_FROM_EMAIL'] ?? 'noreply@selflix.com.br',
            $_ENV['SMTP_FROM_NAME'] ?? 'Selflix Vagas'
        );
        return $mail;
    } catch (PHPMailerException $e) {
        error_log("Erro PHPMailer Config: " . $e->getMessage());
        return null;
    }
}

/**
 * NOTIFICAÇÃO DE LIMITE ATINGIDO (VAGA GRATUITA) - NOVO!
 */
function enviarEmailLimiteAtingidoEmpresa($email_empresa, $nome_empresa, $titulo_vaga, $site_url) {
    $mail = configurarMailerParaRegistroCandidatura();
    if (!$mail) return false;

    try {
        $mail->addAddress($email_empresa, $nome_empresa);
        $mail->isHTML(true);
        $mail->Subject = "⚠️ Limite Atingido: Sua vaga '{$titulo_vaga}' recebeu 30 candidatos!";

        $corpo = "
        <div style='font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; border: 1px solid #eee; border-radius: 10px; overflow: hidden;'>
            <div style='background-color: #12929e; color: white; padding: 20px; text-align: center;'>
                <h1 style='margin: 0; font-size: 24px;'>Vaga com Sucesso Total!</h1>
            </div>
            <div style='padding: 30px;'>
                <p>Olá, <strong>{$nome_empresa}</strong>!</p>
                <p>Sua vaga <strong>{$titulo_vaga}</strong> acaba de atingir o limite de <strong>30 candidatos</strong> permitidos no plano gratuito.</p>
                
                <div style='background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 20px 0;'>
                    <p style='margin: 0;'><strong>O que isso significa?</strong> Novos candidatos não conseguirão mais se inscrever através deste anúncio.</p>
                </div>

                <p>Para continuar recebendo currículos ilimitados e ter acesso a ferramentas exclusivas de triagem, faça o upgrade agora.</p>
                
                <div style='text-align: center; margin: 30px 0;'>
                    <a href='{$site_url}/planos.php' style='background-color: #12929e; color: white; padding: 15px 25px; text-decoration: none; border-radius: 5px; font-weight: bold; display: inline-block;'>LIBERAR CANDIDATURAS ILIMITADAS</a>
                </div>

                <p style='font-size: 14px; color: #777;'>Parabéns pelo excelente alcance da sua vaga!<br>Equipe Selflix Vagas</p>
            </div>
        </div>";

        $mail->Body = $corpo;
        $mail->AltBody = "Sua vaga {$titulo_vaga} atingiu o limite de 30 candidatos. Faça o upgrade para receber mais!";

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

/**
 * ENVIA E-MAIL PARA O CANDIDATO
 */
function enviarEmailConfirmacaoCandidaturaCandidato($email_candidato, $nome_candidato, $titulo_vaga, $empresa_nome_vaga, $email_empresa_contato, $site_url) {
    $mail = configurarMailerParaRegistroCandidatura();
    if (!$mail) return false;

    try {
        $mail->addAddress($email_candidato, $nome_candidato);
        $mail->isHTML(true);
        $mail->Subject = "Confirmação de Candidatura - " . $titulo_vaga;

        ob_start();
        $caminhoTemplate = __DIR__ . '/confirma-candidatura-candidato.php';
        if (file_exists($caminhoTemplate)) {
            include $caminhoTemplate;
        } else {
            echo "<h2>Candidatura Registrada!</h2><p>Vaga: " . htmlspecialchars($titulo_vaga) . "</p>";
        }
        $mail->Body = ob_get_clean();
        $mail->AltBody = "Sua candidatura para {$titulo_vaga} na empresa {$empresa_nome_vaga} foi registrada.";

        return $mail->send();
    } catch (Exception $e) {
        error_log("Erro envio candidato: " . $e->getMessage());
        return false;
    }
}

/**
 * ENVIA E-MAIL DE NOTIFICAÇÃO PARA A EMPRESA
 */
function enviarEmailNotificacaoCandidaturaEmpresa($email_empresa_contato, $nome_empresa, $titulo_vaga, $nome_candidato, $email_candidato, $celular_candidato, $site_url, $logotipo_empresa = null, $cnpj_empresa = null, $celular_empresa = null, $telefone_empresa = null, $id_vaga = null) {
    $mail = configurarMailerParaRegistroCandidatura();
    if (!$mail) return false;

    try {
        $mail->addAddress($email_empresa_contato, $nome_empresa);
        $mail->isHTML(true);
        $mail->Subject = "Novo Candidato(a) para: " . $titulo_vaga;
        
        $logo_html = '';
        if ($logotipo_empresa) {
            $full_logo_url = rtrim($site_url, '/') . '/' . ltrim($logotipo_empresa, '/');
            $logo_html = '<div style="text-align:center;"><img src="' . htmlspecialchars($full_logo_url) . '" style="max-width:150px;"></div>';
        }

        $mail->Body = "
            <div style='font-family: Arial; padding: 20px; border: 1px solid #eee;'>
                {$logo_html}
                <p>Olá, <strong>{$nome_empresa}</strong>!</p>
                <p>Você recebeu uma nova candidatura para a vaga: <strong>{$titulo_vaga}</strong></p>
                <hr>
                <p><strong>Candidato:</strong> {$nome_candidato}<br>
                <strong>E-mail:</strong> {$email_candidato}<br>
                <strong>Celular:</strong> {$celular_candidato}</p>
                <p>Acesse seu painel na Selflix para visualizar o currículo.</p>
            </div>";

        return $mail->send();
    } catch (Exception $e) {
        error_log("Erro e-mail empresa: " . $e->getMessage());
        return false;
    }
}