<?php
/**
 * Selflix Vagas - vaga-gratuita.php
 * Versão: Detalhes Completos + Limite Dinâmico (ADM) + Obrigatoriedade de Currículo
 */

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

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

$vaga = null;
$mensagem_erro_pagina = null;
$idVagaParaQuery = null;
$site_url = rtrim($_ENV['SITE_URL'] ?? 'https://vagas.selflix.com.br/', '/');
$slugParaQuery = trim($_GET['id'] ?? '');

// 1. Busca a configuração global de limite definida no ADM
$limite_global = 0;
try {
    $res_limite = $pdo->query("SELECT valor FROM ConfiguracoesGerais WHERE chave = 'limite_vagas_gratuitas'");
    $limite_global = (int)($res_limite->fetchColumn() ?: 0);
} catch (Exception $e) {
    $limite_global = 0; // Fallback caso a tabela não exista
}

// 2. Busca os dados da vaga
if (empty($slugParaQuery)) {
    $mensagem_erro_pagina = "Identificador da vaga não fornecido.";
} elseif (isset($pdo) && $pdo) {
    try {
        // CORREÇÃO: Permitindo data_expiracao nula para vagas de trial/novas
        $sql_vaga = "SELECT ag.*, e.nome_empresa, e.logotipo as logo_empresa_tabela 
                     FROM anuncio_gratuito ag
                     LEFT JOIN Empresas e ON ag.id_empresa = e.id
                     WHERE ag.slug = :slug 
                       AND ag.status = 'ativo' 
                       AND (ag.data_expiracao > NOW() OR ag.data_expiracao IS NULL)";
        
        $stmt_vaga = $pdo->prepare($sql_vaga);
        $stmt_vaga->bindValue(':slug', $slugParaQuery, PDO::PARAM_STR);
        $stmt_vaga->execute();
        $vaga = $stmt_vaga->fetch(PDO::FETCH_ASSOC);

        if (!$vaga) {
            $mensagem_erro_pagina = "Vaga não encontrada ou encerrada.";
        } else {
            $idVagaParaQuery = (int)$vaga['id'];
            $_SESSION['last_vaga_url'] = $site_url . '/vaga-gratuita.php?id=' . $slugParaQuery;
        }
    } catch (PDOException $e) {
        error_log("Erro PDO: " . $e->getMessage());
        $mensagem_erro_pagina = "Erro técnico ao carregar a vaga.";
    }
}

// 3. REGRA DE NEGÓCIO DINÂMICA: Verifica limite apenas se for > 0 no ADM
$limite_atingido = false;
if ($vaga && $idVagaParaQuery && $limite_global > 0) {
    $sqlCount = "SELECT COUNT(*) FROM candidaturas WHERE vaga_id = :vid AND tipo_anuncio = 'gratuito'";
    $stCount = $pdo->prepare($sqlCount);
    $stCount->execute([':vid' => $idVagaParaQuery]);
    if ($stCount->fetchColumn() >= $limite_global) {
        $limite_atingido = true;
    }
}

// 4. Verificação de candidatura prévia
$ja_candidatou = false;
if (isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos' && $idVagaParaQuery > 0) {
    $id_candidato = (int)$_SESSION['id'];
    try {
        $st_check = $pdo->prepare("SELECT 1 FROM candidaturas WHERE candidato_id = ? AND vaga_id = ? AND tipo_anuncio = 'gratuito'");
        $st_check->execute([$id_candidato, $idVagaParaQuery]);
        $ja_candidatou = (bool)$st_check->fetch();
    } catch (PDOException $e) { 
        error_log($e->getMessage()); 
    }
}

// 5. Lógica de Botão
$js_onclick = 'event.preventDefault(); openLoginModal();';
if (isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos' && $vaga) {
    if ($ja_candidatou) {
        $js_onclick = 'event.preventDefault();';
        $subtitulo_candidatura = "Você já se candidatou para esta vaga.";
    } elseif ($limite_atingido) {
        $js_onclick = 'event.preventDefault();';
        $subtitulo_candidatura = "Esta vaga atingiu o limite máximo de candidatos.";
    } else {
        $js_onclick = 'event.preventDefault(); processarCandidatura();';
        $subtitulo_candidatura = "Candidate-se agora mesmo e destaque-se!";
    }
} else {
    $subtitulo_candidatura = 'Faça login ou crie sua conta para se candidatar.';
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title><?php echo $vaga ? htmlspecialchars($vaga['titulo_vaga']) : 'Vaga'; ?> - Selflix</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="<?php echo $site_url; ?>/css/vagas-style.css">

    <style>
        .modal-overlay { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); backdrop-filter: blur(5px); align-items: center; justify-content: center; }
        .modal-content { background-color: #fefefe; padding: 20px; border: 1px solid #888; border-radius: 10px; width: 90%; max-width: 450px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); position: relative; animation: fadeIn 0.3s ease-out; text-align: center; }
        @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        .close-btn { color: #aaa; font-size: 28px; font-weight: bold; position: absolute; top: 10px; right: 15px; cursor: pointer; }
        .modal-title { color: #212529; font-size: 1.5rem; font-weight: 600; margin-bottom: 10px; }
        .modal-text { color: #6c757d; font-size: 1rem; margin-bottom: 20px; }
        .modal-btn { background-color: #007bff; color: white; padding: 12px 25px; border-radius: 5px; text-decoration: none; font-weight: bold; display: inline-flex; align-items: center; justify-content: center; transition: 0.3s; width: 100%; margin-bottom: 10px; }
        
        #confirmarEnvioModal .modal-content { background-color: #38b4a0; color: #ffffff; border: none; padding: 35px 25px; border-radius: 12px; }
        #confirmarEnvioModal h4.modal-title { color: #ffffff !important; font-weight: 700; }
        #confirmarEnvioModal .modal-btn-white { background-color: #ffffff; color: #38b4a0; border: none; width: 100%; padding: 14px 20px; font-weight: 700; text-transform: uppercase; border-radius: 6px; cursor: pointer; display: block; margin-bottom: 12px; }
        
        .social-share { text-align: center; margin-top: 25px; padding-top: 20px; border-top: 1px solid #e9ecef; }
        .social-share a { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0 8px; border-radius: 8px; background-color: #38b4a0; color: white; font-size: 24px; text-decoration: none; }
    </style>
</head>
<body>
    <?php include __DIR__ . '/menu-paineis.php'; ?>

    <div class="vaga-detalhe-container">
        <?php if ($mensagem_erro_pagina): ?>
            <div class="alert alert-danger text-center mt-4"><?php echo $mensagem_erro_pagina; ?></div>
        <?php elseif ($vaga): ?>
            <h1 class="vaga-titulo-detalhe"><?php echo htmlspecialchars($vaga['titulo_vaga']); ?></h1>
            
            <div class="titulos-2">Descrição da Vaga</div>
            <div class="texto-2"><?php echo nl2br(htmlspecialchars($vaga['descricao_vaga'])); ?></div>

            <div class="titulos-2">Segmento</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['segmento_vaga'] ?? 'Não informado'); ?></p></div>
            
            <div class="titulos-2">Localização</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['cidade_vaga'] ?? 'Remoto') . ' / ' . htmlspecialchars($vaga['estado'] ?? ''); ?></p></div>
            
            <div class="titulos-2">Tipo de Contrato</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['tipo_vaga'] ?? 'Não informado'); ?></p></div>

            <div class="titulos-2">Modelo de Trabalho</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['modelo_contratacao'] ?? 'Não informado'); ?></p></div>

            <div class="titulos-2">Requisitos Essenciais</div>
            <div class="texto-2"><p><?php echo nl2br(htmlspecialchars($vaga['requisitos_contratacao'] ?? 'Não informado')); ?></p></div>
            
            <div class="titulos-2">Remuneração</div>
            <div class="texto-2">
                <p>
                    <?php 
                    // 1. Limpa o valor vindo do banco (remove R$, espaços e converte vírgula em ponto)
                    $valorBruto = $vaga['salario'] ?? '';
                    $valorLimpo = preg_replace('/[^\d.]/', '', str_replace(',', '.', $valorBruto));
                    
                    // 2. Verifica as condições para ser "A combinar"
                    $isACombinarFlag = (isset($vaga['salario_a_combinar']) && $vaga['salario_a_combinar'] == 1);
                    $isTextoACombinar = (trim(strtolower($valorBruto)) === 'a combinar');
                    $isValorZero = (is_numeric($valorLimpo) && (float)$valorLimpo <= 0);

                    if ($isACombinarFlag || $isTextoACombinar || $isValorZero || empty($valorBruto)) {
                        echo "A combinar";
                    } else {
                        // Se for um número válido e maior que zero, formata como Real
                        echo "R$ " . number_format((float)$valorLimpo, 2, ',', '.');
                    }
                    ?>
                </p>
            </div>

            <div class="area-candidatura">
                <div class="titulo-candidatura">Interessado(a) nesta Vaga?</div>
                <div class="subtitulo-candidatura"><?php echo htmlspecialchars($subtitulo_candidatura); ?></div>
                
                <div class="botoes-acao">
                    <?php if ($ja_candidatou): ?>
                        <button class="btn btn-cta-main btn-success disabled">Candidatura Enviada</button>
                    <?php elseif ($limite_atingido): ?>
                        <div class="alert alert-warning mb-3">Limite de candidatos atingido para esta vaga gratuita.</div>
                        <button class="btn btn-secondary btn-cta-main disabled">Vaga Encerrada</button>
                    <?php else: ?>
                        <a href="#" class="btn btn-cta-main" onclick="<?php echo $js_onclick; ?>">Candidate-se Agora</a>
                    <?php endif; ?>
                    <a href="https://videos.selflix.com.br/selflix" class="btn btn-cta-video" target="_blank"><i class="fas fa-video"></i> Vídeo Currículo</a>
                </div>

                <div class="social-share">
                    <p class="social-share-title">Compartilhe esta vaga:</p>
                    <a href="https://api.whatsapp.com/send?text=Vaga: <?php echo urlencode($site_url.'/vaga-gratuita.php?id='.$slugParaQuery); ?>" target="_blank"><i class="fab fa-whatsapp"></i></a>
                    <a href="https://www.linkedin.com/sharing/share-offsite/?url=<?php echo urlencode($site_url.'/vaga-gratuita.php?id='.$slugParaQuery); ?>" target="_blank"><i class="fab fa-linkedin"></i></a>
                </div>
            </div>
        <?php endif; ?>
    </div>

    <div class="modal-overlay" id="loginModal">
        <div class="modal-content">
            <span class="close-btn" onclick="document.getElementById('loginModal').style.display='none'">&times;</span>
            <h4 class="modal-title">Acesse sua conta</h4>
            <p class="modal-text">Você precisa estar logado para se candidatar.</p>
            <a href="login.php?redirect=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>" class="modal-btn">Fazer Login</a>
        </div>
    </div>

    <div class="modal-overlay" id="curriculoModal">
        <div class="modal-content">
            <span class="close-btn" onclick="document.getElementById('curriculoModal').style.display='none'">&times;</span>
            <h4 class="modal-title">Perfil Incompleto!</h4>
            <p class="modal-text">Para se candidatar, adicione um currículo ou link de vídeo currículo no seu perfil.</p>
            <a href="editar_cadastro.php" class="modal-btn">Completar Perfil</a>
        </div>
    </div>

    <div class="modal-overlay" id="confirmarEnvioModal">
        <div class="modal-content">
            <span class="close-btn" onclick="document.getElementById('confirmarEnvioModal').style.display='none'">&times;</span>
            <h4 class="modal-title">Confirmar Candidatura?</h4>
            <h5 class="modal-text-vaga" style="color:white; margin-bottom:20px;"><?php echo htmlspecialchars($vaga['titulo_vaga'] ?? ''); ?></h5>
            <button class="modal-btn-white" onclick="confirmarCandidatura()">Confirmo</button>
            <button class="modal-btn-white" style="background:transparent; color:white; border:1px solid white;" onclick="document.getElementById('confirmarEnvioModal').style.display='none'">Cancelar</button>
        </div>
    </div>

    <div class="modal-overlay" id="loadingModal">
        <div class="modal-content">
            <h4 class="modal-title">Processando...</h4>
            <div class="spinner-border text-primary" role="status"></div>
        </div>
    </div>

    <script>
        function openLoginModal() { document.getElementById("loginModal").style.display = 'flex'; }
        function openConfirmarEnvioModal() { document.getElementById("confirmarEnvioModal").style.display = 'flex'; }

        async function processarCandidatura() {
            document.getElementById("loadingModal").style.display = 'flex';
            try {
                const response = await fetch(`<?php echo $site_url; ?>/verificar_curriculo.php?id_vaga=<?php echo $idVagaParaQuery; ?>&tipo_anuncio=gratuito&confirm_only=true`);
                const data = await response.json();
                document.getElementById("loadingModal").style.display = 'none';
                
                if (data.success) {
                    openConfirmarEnvioModal();
                } else {
                    document.getElementById("curriculoModal").style.display = 'flex';
                }
            } catch (error) {
                document.getElementById("loadingModal").style.display = 'none';
                alert('Erro na verificação do currículo.');
            }
        }

        function confirmarCandidatura() {
            document.getElementById("confirmarEnvioModal").style.display = 'none';
            document.getElementById("loadingModal").style.display = 'flex';
            
            const form = document.createElement('form');
            form.method = 'POST';
            form.action = 'registrar_candidatura.php';
            
            const data = { 'id_vaga': '<?php echo $idVagaParaQuery; ?>', 'tipo_anuncio_vaga': 'gratuito' };
            
            for (let key in data) {
                const input = document.createElement('input');
                input.type = 'hidden'; 
                input.name = key; 
                input.value = data[key];
                form.appendChild(input);
            }
            
            document.body.appendChild(form);
            form.submit();
        }
    </script>
    
    <?php include __DIR__ . '/rodape.php'; ?>
</body>
</html>