<?php
/**
 * Selflix Vagas - vaga-gratuita.php
 * Versão: UI Premium Sincronizada com Vaga Select + Limite Individual Prioritário
 * Atualizado: Leitura dinâmica das configurações globais e individuais
 */

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

// Includes de configuração
require_once __DIR__ . '/env.php';
require_once __DIR__ . '/conexao.php';

// Declaração de variáveis
$vaga = null;
$mensagem_erro_pagina = null;
$idVagaParaQuery = null;
$slugParaQuery = trim($_GET['id'] ?? '');
$site_url = rtrim($_ENV['SITE_URL'] ?? 'https://vagas.selflix.com.br/', '/');
$logoPathFinalParaExibicao = null;

// 1. Busca configurações globais do ADM
$limite_global = 0;
$dias_expiracao_global = 30; 
try {
    $res_configs = $pdo->query("SELECT chave, valor FROM ConfiguracoesGerais WHERE chave IN ('limite_candidaturas_vaga', 'periodo_dias_limite_gratuitos')");
    $configs = $res_configs->fetchAll(PDO::FETCH_KEY_PAIR);
    
    // Nomes de chaves atualizados conforme a sua tabela ConfiguracoesGerais
    $limite_global = (int)($configs['limite_candidaturas_vaga'] ?? 0);
    $dias_expiracao_global = (int)($configs['periodo_dias_limite_gratuitos'] ?? 30);
} catch (Exception $e) { 
    $limite_global = 0; 
    $dias_expiracao_global = 30; 
}

// 2. Busca os dados da vaga no banco de dados (Incluindo a coluna limite_candidaturas)
if (empty($slugParaQuery)) {
    $mensagem_erro_pagina = "Identificador da vaga não fornecido.";
} elseif (isset($pdo) && $pdo) {
    try {
        $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=' . urlencode($slugParaQuery);
            
            $logo_a_usar = $vaga['logotipo'] ?: ($vaga['logo_empresa_tabela'] ?? null);
            if (!empty($logo_a_usar)) {
                $logoPathFinalParaExibicao = filter_var($logo_a_usar, FILTER_VALIDATE_URL) ? $logo_a_usar : '/' . ltrim('uploads/logo/' . basename(parse_url($logo_a_usar, PHP_URL_PATH)), '/');
            }
        }
    } catch (PDOException $e) { $mensagem_erro_pagina = "Erro técnico ao carregar a vaga."; }
}

// 3. Verificações de Candidatura, Limite e Prazo Dinâmico
$ja_candidatou = false;
$limite_atingido = false;
$vaga_expirada_prazo = false; 

if ($vaga && $idVagaParaQuery > 0) {
    
    // Verifica Expiração baseada no prazo global
    if (!empty($vaga['data_criacao'])) {
        $data_limite = strtotime("-{$dias_expiracao_global} days");
        if (strtotime($vaga['data_criacao']) <= $data_limite) {
            $vaga_expirada_prazo = true;
        }
    }

    // Verifica se já se candidatou
    if (isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos') {
        $st = $pdo->prepare("SELECT 1 FROM candidaturas WHERE candidato_id = ? AND vaga_id = ? AND tipo_anuncio = 'gratuito'");
        $st->execute([$_SESSION['id'], $idVagaParaQuery]);
        $ja_candidatou = (bool)$st->fetch();
    }
    
    // --- LÓGICA DE DECISÃO DO LIMITE (INDIVIDUAL VS GLOBAL) ---
    // Se limite_candidaturas for > 0 na vaga, ele manda. Se for 0, usa o global.
    $limite_final = ($vaga['limite_candidaturas'] > 0) ? (int)$vaga['limite_candidaturas'] : $limite_global;

    if ($limite_final > 0) {
        $stC = $pdo->prepare("SELECT COUNT(*) FROM candidaturas WHERE vaga_id = ? AND tipo_anuncio = 'gratuito'");
        $stC->execute([$idVagaParaQuery]);
        if ($stC->fetchColumn() >= $limite_final) {
            $limite_atingido = true;
        }
    }
}

// 4. Lógica de UI do Botão
$js_onclick_candidatura = isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos' 
    ? 'event.preventDefault(); processarCandidatura();' 
    : 'event.preventDefault(); openLoginModal();';

$subtitulo_candidatura = $ja_candidatou ? "Você já se candidatou para esta vaga." : "Candidate-se agora mesmo e destaque-se!";
if ($vaga_expirada_prazo) $subtitulo_candidatura = "O prazo para envio de currículos para esta vaga já foi encerrado.";
if ($limite_atingido && !$ja_candidatou) $subtitulo_candidatura = "Esta vaga atingiu o limite máximo de candidatos.";
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <?php
    $og_title = $vaga ? htmlspecialchars($vaga['titulo_vaga']) . ' - Selflix Vagas' : 'Vaga';
    $og_url = rtrim($site_url, '/') . '/vaga-gratuita.php?id=' . urlencode($slugParaQuery);
    $og_image = $logoPathFinalParaExibicao ? (filter_var($logoPathFinalParaExibicao, FILTER_VALIDATE_URL) ? $logoPathFinalParaExibicao : htmlspecialchars($site_url) . $logoPathFinalParaExibicao) : htmlspecialchars($site_url) . '/img/id/logo-selflix-divulga.png';
    ?>
    <meta property="og:title" content="<?php echo $og_title; ?>">
    <meta property="og:url" content="<?php echo htmlspecialchars($og_url); ?>">
    <meta property="og:image" content="<?php echo $og_image; ?>">
    <meta charset="UTF-8">
    <title><?php echo $vaga ? htmlspecialchars($vaga['titulo_vaga']) : 'Vaga'; ?> - Selflix Vagas</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 htmlspecialchars($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); -webkit-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; transition: color 0.3s; }
        .close-btn:hover { color: #000; }
        .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: background-color 0.3s; }
        .modal-btn:hover { background-color: #0056b3; color: white; }

        #confirmarEnvioModal .modal-content { background-color: #38b4a0; color: #ffffff; border: none; padding: 35px 25px; box-shadow: 0 8px 20px rgba(0,0,0,0.25); border-radius: 12px; }
        #confirmarEnvioModal .close-btn { color: rgba(255, 255, 255, 0.8); top: 15px; right: 20px; font-size: 2.2rem; font-weight: 300; }
        #confirmarEnvioModal h4.modal-title { color: #ffffff !important; font-size: 1.5rem; font-weight: 700; margin-bottom: 20px; line-height: 1.3; }
        #confirmarEnvioModal .modal-text-vaga { color: rgba(255, 255, 255, 0.95); font-size: 1.1rem; margin-bottom: 30px; font-weight: 400; }
        #confirmarEnvioModal .modal-btn-white { background-color: #ffffff; color: #38b4a0; border: none; width: 100%; padding: 14px 20px; font-size: 1rem; font-weight: 700; text-transform: uppercase; border-radius: 6px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s; margin-bottom: 12px; cursor: pointer; display: block; text-decoration: none; }
        #confirmarEnvioModal .modal-btn-white:hover { background-color: #f8f9fa; transform: translateY(-2px); box-shadow: 0 6px 10px rgba(0,0,0,0.15); color: #2a8f7d; }

        .social-share { text-align: center; margin-top: 25px; padding-top: 20px; border-top: 1px solid #e9ecef; }
        .social-share-title { font-size: 1rem; color: #6c757d; margin-bottom: 15px; font-weight: 500; }
        .social-share a { display: inline-flex; width: 48px; height: 48px; margin: 0 8px; border-radius: 8px; background-color: #38b4a0; color: white; font-size: 24px; transition: 0.2s ease; text-decoration: none; align-items: center; justify-content: center; }
        .social-share a:hover { transform: translateY(-3px); }
    </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 htmlspecialchars($mensagem_erro_pagina); ?></div>
        <?php elseif ($vaga): ?>
            
            <?php
            $paginaUrl = $site_url . '/vaga-gratuita.php?id=' . urlencode($slugParaQuery);
            $paginaUrlEncoded = urlencode($paginaUrl);
            $textoWhatsappEncoded = urlencode("Olha essa vaga que encontrei na Selflix Vagas: *" . $vaga['titulo_vaga'] . "* ");
            ?>

            <h1 class="vaga-titulo-detalhe"><?php echo htmlspecialchars($vaga['titulo_vaga']); ?></h1>
            <div class="tag-wrapper-detalhe"><span class="tag-vaga-gratuita" style="background:#6c757d; color:white; padding:2px 10px; border-radius:4px; font-size:0.8rem;">Vaga Gratuita</span></div>
            
            <div class="titulos-2">Descrição da Vaga</div>
            <div class="texto-2"><p><?php echo nl2br(htmlspecialchars($vaga['descricao_vaga'])); ?></p></div>
            <div class="titulos-2">Segmento</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['segmento_vaga'] ?? 'N/D'); ?></p></div>
            <div class="titulos-2">Localização</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['cidade_vaga'] ?? 'N/D'); ?></p></div>
            <div class="titulos-2">Tipo de Contrato</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['tipo_vaga'] ?? 'N/D'); ?></p></div>
            <div class="titulos-2">Modelo de Trabalho</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['modelo_contratacao'] ?? 'N/D'); ?></p></div>
            <div class="titulos-2">Vaga para PCD</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['PCD'] ?? 'Não'); ?></p></div>
            <div class="titulos-2">Requisitos Essenciais</div>
            <div class="texto-2"><p><?php echo nl2br(htmlspecialchars($vaga['requisitos_contratacao'] ?? 'N/D')); ?></p></div>
            <div class="titulos-2">Remuneração</div>
            <div class="texto-2">
                <p><?php
                    $sal = $vaga['salario'];
                    if (($vaga['salario_a_combinar'] ?? 0) == 1 || empty($sal)) { echo "A combinar"; }
                    else { echo "R$ " . number_format((float)$sal, 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 ($vaga_expirada_prazo): ?>
                        <button class="btn btn-secondary btn-cta-main" disabled><i class="fas fa-lock"></i> Vaga Encerrada</button>
                    <?php elseif ($ja_candidatou): ?>
                        <a href="#" class="btn btn-cta-main btn-success disabled" style="cursor: default;"><i class="fas fa-check"></i> Candidatura Enviada</a>
                    <?php elseif ($limite_atingido): ?>
                        <button class="btn btn-secondary btn-cta-main" disabled>Vaga Encerrada (Limite)</button>
                    <?php else: ?>
                        <a href="#" class="btn btn-cta-main" onclick="<?php echo $js_onclick_candidatura; ?>">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> Crie seu Vídeo Currículo</a>
                </div>

                <div class="social-share">
                    <div class="social-share-title">Compartilhe esta vaga:</div>
                    <a href="https://www.linkedin.com/sharing/share-offsite/?url=<?php echo $paginaUrlEncoded; ?>" target="_blank" class="share-linkedin"><i class="fab fa-linkedin"></i></a>
                    <a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $paginaUrlEncoded; ?>" target="_blank" class="share-facebook"><i class="fab fa-facebook-f"></i></a>
                    <a href="https://api.whatsapp.com/send?text=<?php echo $textoWhatsappEncoded . $paginaUrlEncoded; ?>" target="_blank" class="share-whatsapp"><i class="fab fa-whatsapp"></i></a>
                </div>
            </div>
        <?php endif; ?>
    </div> 

    <div class="modal-overlay" id="loginModal">
        <div class="modal-content">
            <span class="close-btn" onclick="closeLoginModal()">&times;</span>
            <div class="modal-body">
                <h4 class="modal-title">Para candidatar-se à vaga:</h4>
                <p class="modal-text">Faça login ou crie sua conta para enviar sua candidatura de forma rápida e segura.</p>
                <div class="d-grid gap-2">
                    <a href="login.php?redirect=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>" class="modal-btn">
                        <i class="fas fa-sign-in-alt me-2"></i> Faça seu Login
                    </a>
                    <a href="cadastro_candidato.php" class="modal-btn btn-secondary">
                        <i class="fas fa-user-plus me-2"></i> Cadastre-se Gratuitamente
                    </a>
                </div>
            </div>
        </div>
    </div>
    
    <div class="modal-overlay" id="curriculoModal">
        <div class="modal-content">
            <span class="close-btn" onclick="closeCurriculoModal()">&times;</span>
            <div class="modal-body">
                <h4 class="modal-title">Seu Perfil está Incompleto!</h4>
                <p class="modal-text">Para se candidatar, adicione um currículo anexado ou o link do seu vídeo currículo no seu perfil.</p>
                <a href="editar_cadastro.php" class="modal-btn">
                    <i class="fas fa-edit me-2"></i> Adicionar meu Currículo
                </a>
            </div>
        </div>
    </div>

    <div class="modal-overlay" id="confirmarEnvioModal">
        <div class="modal-content">
            <span class="close-btn" onclick="closeConfirmarEnvioModal()">&times;</span>
            <div class="modal-body">
                <h4 class="modal-title">Você confirma a sua candidatura?</h4>
                <h5 class="modal-text-vaga">Vaga: <?php echo htmlspecialchars($vaga['titulo_vaga'] ?? ''); ?></h5>
                <button type="button" class="modal-btn-white" onclick="confirmarCandidatura()">Confirmo</button>
                <button type="button" class="modal-btn-white" style="background:transparent; color:white; border:1px solid white;" onclick="closeConfirmarEnvioModal()">Cancelar</button>
            </div>
        </div>
    </div>

    <div class="modal-overlay" id="loadingModal">
        <div class="modal-content">
            <h4 class="modal-title">Aguarde...</h4>
            <p class="modal-text">Estamos processando sua solicitação.</p>
            <div class="spinner-border text-primary" role="status"></div>
        </div>
    </div>

    <script>
        const loginModal = document.getElementById("loginModal");
        const curriculoModal = document.getElementById("curriculoModal");
        const loadingModal = document.getElementById("loadingModal");
        const confirmarEnvioModal = document.getElementById("confirmarEnvioModal");

        function openLoginModal() { loginModal.style.display = 'flex'; }
        function closeLoginModal() { loginModal.style.display = 'none'; }
        function openCurriculoModal() { curriculoModal.style.display = 'flex'; }
        function closeCurriculoModal() { curriculoModal.style.display = 'none'; }
        function openConfirmarEnvioModal() { confirmarEnvioModal.style.display = 'flex'; }
        function closeConfirmarEnvioModal() { confirmarEnvioModal.style.display = 'none'; }

        async function processarCandidatura() {
            loadingModal.style.display = 'flex';
            const idVaga = <?php echo json_encode($idVagaParaQuery); ?>;
            try {
                const response = await fetch(`verificar_curriculo.php?id_vaga=${idVaga}&tipo_anuncio=gratuito&confirm_only=true`);
                const data = await response.json();
                loadingModal.style.display = 'none';
                if (data.success) { openConfirmarEnvioModal(); } 
                else { openCurriculoModal(); }
            } catch (e) { loadingModal.style.display = 'none'; }
        }

        function confirmarCandidatura() {
            closeConfirmarEnvioModal();
            loadingModal.style.display = 'flex';
            const form = document.createElement('form');
            form.method = 'POST'; form.action = 'registrar_candidatura.php';
            const iD = document.createElement('input'); iD.type = 'hidden'; iD.name = 'id_vaga'; iD.value = '<?php echo $idVagaParaQuery; ?>';
            const iT = document.createElement('input'); iT.type = 'hidden'; iT.name = 'tipo_anuncio_vaga'; iT.value = 'gratuito';
            form.appendChild(iD); form.appendChild(iT);
            document.body.appendChild(form); form.submit();
        }

        window.onclick = (e) => {
            if (e.target.classList.contains('modal-overlay')) {
                loginModal.style.display = 'none'; curriculoModal.style.display = 'none'; 
                confirmarEnvioModal.style.display = 'none';
            }
        }
    </script>
    <?php include __DIR__ . '/rodape.php'; ?>
</body>
</html>