<?php
// vagas.php - Versão Refatorada para vagas.selflix.com.br
// =============================================================================
// 1. CONFIGURAÇÃO E INICIALIZAÇÃO
// =============================================================================

// Inicia sessão apenas se não estiver ativa
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Inclusão de arquivos essenciais com verificação
$files_required = ['conexao.php', 'env.php'];
foreach ($files_required as $file) {
    if (file_exists($file)) {
        require_once $file;
    } else {
        // Fallback crítico se arquivos não existirem
        if ($file === 'conexao.php') {
            die("Erro crítico: Arquivo de conexão não encontrado.");
        }
    }
}

// Definição da URL do Site (Prioridade: ENV > Hardcoded)
$env_url = $_ENV['SITE_URL'] ?? getenv('SITE_URL');
$site_url = rtrim($env_url ?: 'https://vagas.selflix.com.br', '/');

// =============================================================================
// 2. FUNÇÕES AUXILIARES
// =============================================================================

/**
 * Busca anúncios relevantes baseados na pesquisa do usuário
 */
function buscarAnuncioRelevante($pdo, $palavraChaveDigitada) {
    if (!$pdo) return [];

    $is_busca_geral = empty($palavraChaveDigitada);
    $ad_where_clause = "";
    $ad_params = [];

    if (!$is_busca_geral) {
        $termos_brutos = explode(' ', mb_strtolower($palavraChaveDigitada, 'UTF-8'));
        $ad_where_parts = [];
        $i = 0;
        
        foreach ($termos_brutos as $termo) {
            $termo_limpo = trim($termo);
            if (mb_strlen($termo_limpo, 'UTF-8') > 1) {
                $placeholder = ":termo_ads" . $i++;
                $ad_where_parts[] = "LOWER(a.palavras_chave_segmentacao) LIKE {$placeholder}";
                $ad_params[$placeholder] = "%" . $termo_limpo . "%";
            }
        }
        
        if (!empty($ad_where_parts)) {
            $ad_where_clause = " AND (" . implode(" OR ", $ad_where_parts) . ")";
        } else {
             $is_busca_geral = true;
        }
    }
    
    $sql_base = "SELECT a.*,
            CASE
                WHEN a.palavras_chave_segmentacao != '' THEN 1 
                ELSE 2 
            END AS prioridade
            FROM selflix_ads a
            WHERE a.status = 'ativo'
              AND (a.limite_visualizacoes = 0 OR a.visualizacoes < a.limite_visualizacoes)";
    
    if ($is_busca_geral) {
        $sql = $sql_base . " AND a.palavras_chave_segmentacao = '' ORDER BY RAND()";
        $ad_params = [];
    } else {
        $sql = "SELECT * FROM (
                    ({$sql_base} {$ad_where_clause} AND a.palavras_chave_segmentacao != '')
                    UNION ALL
                    ({$sql_base} AND a.palavras_chave_segmentacao = '')
                ) AS combinados
                ORDER BY prioridade ASC, RAND()";
    }

    try {
        $stmt = $pdo->prepare($sql);
        $stmt->execute($ad_params); 
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        error_log("Erro ao buscar anúncio: " . $e->getMessage());
        return [];
    }
}

/**
 * Incrementa contador de visualizações do anúncio
 */
function registrarVisualizacaoAd($pdo, $id_anuncio) {
    if (!$pdo) return;
    try {
        $sql = "UPDATE selflix_ads 
                SET visualizacoes = visualizacoes + 1 
                WHERE id = ? AND (limite_visualizacoes = 0 OR visualizacoes < limite_visualizacoes)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$id_anuncio]);
    } catch (PDOException $e) {
        error_log("Erro ao atualizar view do Ad ID {$id_anuncio}: " . $e->getMessage());
    }
}

// =============================================================================
// 3. PROCESSAMENTO DE FILTROS E PARÂMETROS
// =============================================================================

$estados = ["AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO"];
$modalidades = ["Presencial", "Remoto", "Híbrido"];

// Sanitização de Entradas
$palavra_chave_filtro = filter_input(INPUT_GET, 'palavra_chave', FILTER_DEFAULT) ?? '';
$modalidade_filtro    = filter_input(INPUT_GET, 'modalidade', FILTER_DEFAULT) ?? '';
$cidade_filtro        = filter_input(INPUT_GET, 'cidade', FILTER_DEFAULT) ?? '';
$estado_filtro        = filter_input(INPUT_GET, 'estado', FILTER_DEFAULT) ?? '';

// Contexto para Ads
$contexto_ads = trim("$palavra_chave_filtro $estado_filtro $cidade_filtro $modalidade_filtro");

// Paginação
$vagas_por_pagina = 10;
$pagina_atual = filter_input(INPUT_GET, 'pagina', FILTER_VALIDATE_INT) ?: 1;
if ($pagina_atual < 1) $pagina_atual = 1;
$offset = ($pagina_atual - 1) * $vagas_por_pagina;

// Inicialização de Variáveis
$vagas_pagas = [];
$vagas_gratuitas = [];
$total_vagas_gratuitas = 0;
$total_paginas = 0;
$mensagem_erro_pagina = null;
$lista_anuncios_elegiveis = [];

// Controle de Sessão de Ads
if (!isset($_SESSION['ad_page_usage']) || ($_SESSION['last_ad_page'] ?? 0) != $pagina_atual) {
    $_SESSION['ad_page_usage'] = [];
    $_SESSION['ad_index'] = 0;
}
$_SESSION['last_ad_page'] = $pagina_atual;

// =============================================================================
// 4. CONSULTAS AO BANCO DE DADOS
// =============================================================================

if (!isset($pdo) || !$pdo) {
    $mensagem_erro_pagina = "Sistema em manutenção (Conexão DB indisponível).";
    error_log("vagas.php: PDO nulo ou não definido.");
} else {
    try {
        // 4.1 Carrega Ads Relevantes
        $lista_anuncios_elegiveis = buscarAnuncioRelevante($pdo, $contexto_ads);
        $ad_index = $_SESSION['ad_index'] ?? 0;

        // 4.2 Montagem das Cláusulas WHERE
        $where_clauses_gratuito = ["ag.status = 'ativo'", "(ag.data_expiracao >= NOW() OR ag.data_expiracao IS NULL)"];
        $params_gratuito = [];
         
        $where_clauses_pago = ["ap.status = 'ativo'"];
        $params_pago = [];

        // Filtro: Palavra-Chave
        if (!empty($palavra_chave_filtro)) {
            $valor_pesquisa = '%' . $palavra_chave_filtro . '%';
             
            // Gratuitas
            $where_clauses_gratuito[] = "(LOWER(ag.titulo_vaga) LIKE LOWER(:pc1g) OR LOWER(ag.descricao_vaga) LIKE LOWER(:pc2g))";
            $params_gratuito[':pc1g'] = $valor_pesquisa;
            $params_gratuito[':pc2g'] = $valor_pesquisa;

            // Pagas
            $where_clauses_pago[] = "(LOWER(ap.titulo_vaga) LIKE LOWER(:pc1p) OR LOWER(ap.descricao_vaga) LIKE LOWER(:pc2p))";
            $params_pago[':pc1p'] = $valor_pesquisa;
            $params_pago[':pc2p'] = $valor_pesquisa;
        }

        // Filtros Específicos
        if (!empty($modalidade_filtro)) {
            $where_clauses_gratuito[] = "ag.modelo_contratacao = :modg";
            $params_gratuito[':modg'] = $modalidade_filtro;
            $where_clauses_pago[] = "ap.modelo_contratacao = :modp";
            $params_pago[':modp'] = $modalidade_filtro;
        }
        if (!empty($estado_filtro)) {
            $where_clauses_gratuito[] = "ag.estado = :estg";
            $params_gratuito[':estg'] = $estado_filtro;
            $where_clauses_pago[] = "ap.estado = :estp";
            $params_pago[':estp'] = $estado_filtro;
        }
        if (!empty($cidade_filtro)) {
            $valor_cidade = '%' . $cidade_filtro . '%';
            $where_clauses_gratuito[] = "LOWER(ag.cidade_vaga) LIKE LOWER(:cidg)";
            $params_gratuito[':cidg'] = $valor_cidade;
            $where_clauses_pago[] = "LOWER(ap.cidade_vaga) LIKE LOWER(:cidp)";
            $params_pago[':cidp'] = $valor_cidade;
        }

        $where_sql_gratuito = implode(" AND ", $where_clauses_gratuito);
        $where_sql_pago = implode(" AND ", $where_clauses_pago);

        // 4.3 Query Vagas Pagas (CORRIGIDA: Adicionado o Alias 'logo_empresa_tabela')
        $sql_pagos = "SELECT ap.*, e.nome_empresa, e.logotipo AS logo_empresa_tabela 
                      FROM anuncio_pago ap 
                      LEFT JOIN Empresas e ON ap.empresa_id = e.id 
                      WHERE {$where_sql_pago} 
                      ORDER BY ap.data_criacao DESC, ap.id DESC";
        $stmt_pagos = $pdo->prepare($sql_pagos);
        $stmt_pagos->execute($params_pago);
        $vagas_pagas = $stmt_pagos->fetchAll(PDO::FETCH_ASSOC);

        // 4.4 Query Vagas Gratuitas (Count)
        $sql_count = "SELECT COUNT(*) FROM anuncio_gratuito ag WHERE {$where_sql_gratuito}";
        $stmt_count = $pdo->prepare($sql_count);
        $stmt_count->execute($params_gratuito);
        $total_vagas_gratuitas = $stmt_count->fetchColumn();
         
        $total_paginas = ceil($total_vagas_gratuitas / $vagas_por_pagina);
         
        if ($pagina_atual > $total_paginas && $total_paginas > 0) {
            $pagina_atual = $total_paginas;
            $offset = ($pagina_atual - 1) * $vagas_por_pagina;
        }

        // 4.5 Query Vagas Gratuitas (List)
        $sql_gratuitos = "SELECT ag.* FROM anuncio_gratuito ag 
                          WHERE {$where_sql_gratuito} 
                          ORDER BY ag.data_criacao DESC, ag.id DESC 
                          LIMIT :limit OFFSET :offset";
        $stmt_gratuitos = $pdo->prepare($sql_gratuitos);
        foreach ($params_gratuito as $key => $val) {
            $stmt_gratuitos->bindValue($key, $val);
        }
        $stmt_gratuitos->bindValue(':limit', $vagas_por_pagina, PDO::PARAM_INT);
        $stmt_gratuitos->bindValue(':offset', $offset, PDO::PARAM_INT);
        $stmt_gratuitos->execute();
        $vagas_gratuitas = $stmt_gratuitos->fetchAll(PDO::FETCH_ASSOC);

    } catch (PDOException $e) {
        $mensagem_erro_pagina = "Ocorreu um erro ao carregar as vagas. Por favor, tente novamente mais tarde.";
        error_log("Erro DB vagas.php: " . $e->getMessage());
    }
}

// URL de paginação
$url_base_paginacao = '';
if ($total_paginas > 1) {
    $query_params = array_filter([
        'palavra_chave' => $palavra_chave_filtro,
        'modalidade'    => $modalidade_filtro,
        'cidade'        => $cidade_filtro,
        'estado'        => $estado_filtro,
    ]);
    $url_base_paginacao = 'vagas.php?' . http_build_query($query_params) . '&';
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta property="og:type" content="website">
    <meta property="og:url" content="<?= htmlspecialchars($site_url); ?>/vagas.php">
    <meta property="og:title" content="Selflix Vagas | O Seu Vídeo Currículo">
    <meta property="og:description" content="A primeira plataforma de currículos em vídeo. Otimizamos o recrutamento com rapidez, agilidade e segurança para empresas e talentos.">
    <meta property="og:image" content="<?= htmlspecialchars($site_url); ?>/img/id/selflixvagas-favicon.png">
    <meta property="og:image:width" content="300">
    <meta property="og:image:height" content="300">

    <meta name="twitter:card" content="summary">
    <meta name="twitter:title" content="Selflix Vagas | O Seu Vídeo Currículo">
    <meta name="twitter:description" content="Otimize seu processo seletivo com a Selflix. Vídeo currículos que trazem agilidade e economia para sua empresa.">
    <meta name="twitter:image" content="<?= htmlspecialchars($site_url); ?>/img/id/selflixvagas-favicon.png">
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GT-KDD6G8G');</script>
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-0QYJ7W8BSF"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'G-0QYJ7W8BSF');
    </script>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Selflix Vagas | O Seu Vídeo Currículo</title>
     
    <link rel="icon" href="/img/id/selflixvagas-favicon.png" type="image/png">
    <link rel="stylesheet" href="<?= htmlspecialchars($site_url); ?>/css/vagas-style.css">
    <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">

    <style>
    /* Botão WhatsApp Flutuante */
        .whatsapp-fixed {
            position: fixed;
            width: 60px;
            height: 60px;
            bottom: 20px;
            right: 20px;
            background-color: #25d366;
            color: #FFF;
            border-radius: 50px;
            text-align: center;
            font-size: 35px;
            box-shadow: 1px 1px 10px rgba(0,0,0,0.3);
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            transition: transform 0.3s ease;
        }

        .whatsapp-fixed:hover {
            background-color: #128c7e;
            color: #FFF;
            transform: scale(1.1);
        }

        /* Animação Pulsante */
        .whatsapp-fixed::before {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: #25d366;
            opacity: 0.7;
            z-index: -1;
            animation: pulse-whatsapp 2s infinite;
        }

        @keyframes pulse-whatsapp {
            0% { transform: scale(1); opacity: 0.7; }
            100% { transform: scale(1.6); opacity: 0; }
        }
     
        /* Estilos Consolidados */
        body { background-color: #f4f4f4; }
        .container-main { max-width: 1200px; margin: 20px auto; padding: 0 15px; }
         
        /* Filtros */
        .filtros { margin-bottom: 20px; display: flex; justify-content: center; }
        .filtros-form { display: flex; flex-direction: column; width: 100%; }
        .search-bar-container { background-color: #4DB6AC; padding: 15px; border-radius: 8px; width: 100%; }
        .search-bar-container .label-cargo { color: #fff; font-size: 1.1em; margin-bottom: 8px; display: block; }
         
        .search-input-group { display: flex; width: 100%; gap: 8px; align-items: center; flex-wrap: wrap; }
        .search-input-group .form-control, 
        .search-input-group .form-select { border-radius: 5px; height: 40px; border: 1px solid #4DB6AC; background-color: #F8F8F8; flex: 1; min-width: 150px; }
        .search-input-group .btn { height: 40px; color: #fff; border-radius: 5px; display: flex; align-items: center; justify-content: center; padding: 0 15px; }
        .search-input-group .btn-primary { background-color: #808080; border-color: #696969; }
        .search-input-group .btn-primary:hover { background-color: #696969; }
        .search-input-group .btn-secondary { background-color: #808080; border-color: #696969; }

        /* Grid e Cards */
        .vagas-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; }
        .vaga-card { background-color: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 20px; display: flex; flex-direction: column; box-shadow: 0 2px 4px rgba(0,0,0,0.05); min-height: 230px; }
         
        /* Logo */
        .vaga-logo { height: 120px; width: 100%; max-width: 220px; display: flex; align-items: center; margin-bottom: 15px; overflow: hidden; border-radius: 8px; }
        .vaga-logo.no-logo-placeholder { background-color: #ffffff; color: #aaa; justify-content: center; }
        .vaga-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
         
        /* Tipografia e Tags */
        .vaga-titulo { font-weight: bold; font-size: 1.1em; margin-bottom: 10px; }
        .tag-vaga-select { background-color: #4DB6AC; color: #fff; padding: 4px 10px; border-radius: 4px; font-size: 0.85em; display: inline-block; margin-bottom: 10px; margin-top: 10px; }
         
        .vaga-info { margin-bottom: 15px; font-size: 0.9em; flex-grow: 1; }
        .info-item { display: flex; margin-bottom: 5px; }
        .info-label { color: #666; margin-right: 5px; }
        .info-valor { color: #333; }
         
        .btn-candidatar { display: block; width: 100%; padding: 10px; background-color: #4DB6AC; color: #fff; text-align: center; border-radius: 5px; text-decoration: none; font-weight: bold; margin-top: auto; transition: 0.3s; }
        .btn-candidatar:hover { background-color: #3d968d; color: #fff; }

        /* Anúncios (Ads) */
        .vaga-anuncio-card { background-color: #f9f9f9; border-style: dashed; border-color: #ccc; align-items: center; justify-content: center; position: relative; }
        .anuncio-label { position: absolute; top: 5px; right: 10px; font-size: 0.65rem; color: #aaa; text-transform: uppercase; }
        .anuncio-imagem { max-width: 100%; max-height: 200px; object-fit: contain; }

        /* Paginação */
        .paginacao { display: flex; justify-content: center; gap: 8px; margin: 30px 0 50px; flex-wrap: wrap; }
        .paginacao a, .paginacao span { display: flex; justify-content: center; align-items: center; width: 40px; height: 40px; border-radius: 50%; text-decoration: none; color: #000; background-color: #e0e0e0; transition: 0.3s; }
        .paginacao a:hover { background-color: #d0d0d0; }
        .paginacao .ativo { background-color: #927516; color: #fff; font-weight: bold; }
        .paginacao .proximo { border-radius: 20px; width: auto; padding: 0 20px; }

        @media (max-width: 768px) {
            .search-input-group { flex-direction: column; }
            .search-input-group .form-control, .search-input-group .form-select, .search-input-group .btn { width: 100%; }
            .paginacao .proximo { display: none; }
        }
    </style>
</head>
<body>
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GT-KDD6G8G"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <?php 
    if (file_exists('menu.php')) include 'menu.php'; 
    if (file_exists('banner.php')) include 'banner.php'; 
    ?>

    <div class="container-main">
        <div class="header-section d-flex justify-content-between align-items-center mb-3">
            <div></div>
            <?php if (isset($_SESSION['role']) && (in_array(($_SESSION['role'] ?? ''), ['Empresas', 'Administrador', 'Administradores']))): ?>
                <a href="criar-anuncio-pago.php" class="btn btn-success"><i class="fas fa-plus-circle"></i> Anunciar Vaga Destaque</a>
            <?php endif; ?>
        </div>

        <div class="filtros">
            <form class="filtros-form" method="GET" action="vagas.php">
                <div class="search-bar-container">
                    <label class="label-cargo" for="palavra_chave">Busque ou filtre por:</label>
                    <div class="search-input-group">
                        <input type="text" class="form-control" id="palavra_chave" name="palavra_chave" placeholder="Palavras-chave" value="<?= htmlspecialchars($palavra_chave_filtro); ?>">
                         
                        <select class="form-select" id="modalidade" name="modalidade">
                            <option value="">Modalidade</option>
                            <?php foreach ($modalidades as $mod): ?>
                                <option value="<?= htmlspecialchars($mod); ?>" <?= ($modalidade_filtro === $mod) ? 'selected' : ''; ?>><?= htmlspecialchars($mod); ?></option>
                            <?php endforeach; ?>
                        </select>
                         
                        <select class="form-select" id="estado" name="estado">
                            <option value="">Estado</option>
                            <?php foreach ($estados as $est): ?>
                                <option value="<?= htmlspecialchars($est); ?>" <?= ($estado_filtro === $est) ? 'selected' : ''; ?>><?= htmlspecialchars($est); ?></option>
                            <?php endforeach; ?>
                        </select>
                         
                        <input type="text" class="form-control" id="cidade" name="cidade" placeholder="Cidade" value="<?= htmlspecialchars($cidade_filtro); ?>">
                         
                        <button type="submit" class="btn btn-primary" title="Pesquisar"><i class="fas fa-search"></i></button>
                         
                        <?php if (!empty(array_filter([$palavra_chave_filtro, $modalidade_filtro, $cidade_filtro, $estado_filtro]))): ?>
                            <a href="vagas.php" class="btn btn-secondary" title="Limpar Filtros"><i class="fas fa-times"></i></a>
                        <?php endif; ?>
                    </div>
                </div>
            </form>
        </div>

        <?php if ($mensagem_erro_pagina): ?>
            <div class="alert alert-danger text-center"><?= htmlspecialchars($mensagem_erro_pagina); ?></div>
        <?php endif; ?>

        <div class="secao-vagas vagas-pagas">
            <h2 class="section-title-custom mb-3">Vagas Select</h2>
            <?php if (!empty($vagas_pagas)): ?>
                <div class="vagas-grid">
                    <?php foreach ($vagas_pagas as $vaga_paga): ?>
                        <div class="vaga-card">
                            <div class="vaga-logo <?= (empty($vaga_paga['logotipo']) || $vaga_paga['logotipo'] === '0') ? 'no-logo-placeholder' : '' ?>">
                                <?php 
                                // REFATORAÇÃO CORRIGIDA: Prioriza logotipo da vaga, mas usa o da tabela Empresas se vazio
                                $logo_db = trim($vaga_paga['logotipo'] ?: ($vaga_paga['logo_empresa_tabela'] ?? ''));
                                 
                                if (!empty($logo_db) && $logo_db !== '0') {
                                    // Verifica se já é uma URL completa
                                    if (filter_var($logo_db, FILTER_VALIDATE_URL)) {
                                        $caminho_logo = $logo_db;
                                    } else {
                                        // Limpa '../' e './' que possam vir do banco de dados antes de concatenar com $site_url
                                        $logo_clean = ltrim(str_replace(['../', './'], '', $logo_db), '/');
                                        $caminho_logo = $site_url . '/' . $logo_clean;
                                    }
                                     
                                    $alt_tag = "Logo " . htmlspecialchars($vaga_paga['nome_empresa'] ?? 'Empresa');
                                    echo '<img src="' . htmlspecialchars($caminho_logo) . '" alt="' . $alt_tag . '" onerror="this.onerror=null;this.parentElement.innerHTML=\'\';this.parentElement.classList.add(\'no-logo-placeholder\');">';
                                } else {
                                    // Retorno em branco quando não houver logotipo
                                    echo '';
                                }
                                ?>
                            </div>
                            <div class="vaga-titulo"><?= htmlspecialchars($vaga_paga['titulo_vaga']); ?></div>
                            <div class="tag-vaga-select">Vaga Select</div>
                            <div class="vaga-info">
                                <div class="info-item"><span class="info-label">Segmento:</span> <span class="info-valor"><?= htmlspecialchars($vaga_paga['segmento_vaga'] ?? 'Não informado'); ?></span></div>
                                <div class="info-item"><span class="info-label">Modelo:</span> <span class="info-valor"><?= htmlspecialchars($vaga_paga['modelo_contratacao'] ?? 'Não informado'); ?></span></div>
                                <div class="info-item"><span class="info-label">Contrato:</span> <span class="info-valor"><?= htmlspecialchars($vaga_paga['tipo_vaga'] ?? 'Não informado'); ?></span></div>
                            </div>
                            <a href="vaga-select.php?id=<?= htmlspecialchars($vaga_paga['slug'] ?? ($vaga_paga['id'])); ?>" class="btn-candidatar">Candidatar-se</a>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php elseif (!$mensagem_erro_pagina): ?>
                <div class="text-center p-4 text-muted bg-white border rounded">Nenhuma Vaga Select encontrada com os filtros atuais.</div>
            <?php endif; ?>
        </div>

        <div class="secao-vagas vagas-gratuitas mt-5">
            <h2 class="section-title-custom mb-3">Vagas Disponíveis</h2>
            <?php if (!empty($vagas_gratuitas)): ?>
                <div class="vagas-grid">
                <?php 
                    $frequencia_anuncio = 4; 
                    $total_anuncios = count($lista_anuncios_elegiveis);
                    $current_ad_data = null;
                ?>
                 
                <?php foreach ($vagas_gratuitas as $index => $vaga_gratuita): ?>
                    <div class="vaga-card">
                        <div class="vaga-titulo"><?= htmlspecialchars($vaga_gratuita['titulo_vaga']); ?></div>
                        <div class="vaga-info">
                            <div class="info-item"><span class="info-label">Modelo:</span> <span class="info-valor"><?= htmlspecialchars($vaga_gratuita['modelo_contratacao'] ?? 'Não informado'); ?></span></div>
                            <div class="info-item"><span class="info-label">Contrato:</span> <span class="info-valor"><?= htmlspecialchars($vaga_gratuita['tipo_vaga'] ?? 'Não informado'); ?></span></div>
                            <div class="info-item"><span class="info-label">Local:</span> <span class="info-valor"><?= htmlspecialchars(($vaga_gratuita['cidade_vaga'] ?? '') . ', ' . ($vaga_gratuita['estado'] ?? '')); ?></span></div>
                        </div>
                        <a href="vaga-gratuita.php?id=<?= htmlspecialchars($vaga_gratuita['slug'] ?? ($vaga_gratuita['id'])); ?>" class="btn-candidatar">Candidatar-se</a>
                    </div>

                    <?php 
                    // Lógica de Inserção de Anúncios (Ads)
                    if (($index + 1) % $frequencia_anuncio === 0 && $total_anuncios > 0) {
                        $anuncio_a_exibir = null;

                        // Tenta reutilizar anúncio se a frequência permitir
                        if (isset($current_ad_data) && ($current_ad_data['frequencia_por_pagina'] > ($_SESSION['ad_page_usage'][$current_ad_data['id']] ?? 0))) {
                            $anuncio_a_exibir = $current_ad_data;
                        } else {
                            // Busca próximo anúncio elegível
                            $start_index = $ad_index;
                            do {
                                $temp_ad = $lista_anuncios_elegiveis[$ad_index] ?? null;
                                if (!$temp_ad) { $ad_index = 0; continue; } 

                                $ad_id = $temp_ad['id'];
                                $usos = $_SESSION['ad_page_usage'][$ad_id] ?? 0;
                                $max_usos = (int)$temp_ad['frequencia_por_pagina'];

                                if ($usos < $max_usos) {
                                    $anuncio_a_exibir = $temp_ad;
                                    break; 
                                }
                                 
                                $ad_index = ($ad_index + 1) % $total_anuncios;
                                $_SESSION['ad_index'] = $ad_index;

                            } while ($ad_index != $start_index);
                        }

                        if ($anuncio_a_exibir) {
                            $current_ad_data = $anuncio_a_exibir;
                            $_SESSION['ad_page_usage'][$current_ad_data['id']] = ($_SESSION['ad_page_usage'][$current_ad_data['id']] ?? 0) + 1;
                            registrarVisualizacaoAd($pdo, $current_ad_data['id']);
                            ?>
                             
                            <div class="vaga-card vaga-anuncio-card">
                                <span class="anuncio-label">Publicidade</span>
                                <?php if ($current_ad_data['tipo_anuncio'] == 'imagem' && !empty($current_ad_data['imagem_url'])): ?>
                                    <?php $link_rastreavel = $site_url . '/ads/clique_ads.php?id=' . htmlspecialchars($current_ad_data['id']); ?>
                                    <a href="<?= $link_rastreavel; ?>" target="_blank" rel="noopener sponsored" title="<?= htmlspecialchars($current_ad_data['titulo']); ?>">
                                        <img src="<?= htmlspecialchars($current_ad_data['imagem_url']); ?>" alt="<?= htmlspecialchars($current_ad_data['titulo']); ?>" class="anuncio-imagem">
                                    </a>
                                <?php elseif ($current_ad_data['tipo_anuncio'] == 'script' && !empty($current_ad_data['conteudo_script'])): ?>
                                    <div class="anuncio-script-container"><?= $current_ad_data['conteudo_script']; ?></div>
                                <?php endif; ?>
                            </div>
                            <?php
                        }
                    }
                    ?>
                <?php endforeach; ?>
                </div>
             
            <?php elseif (!$mensagem_erro_pagina): ?>
                <div class="text-center p-4 text-muted bg-white border rounded">Nenhuma vaga encontrada para os critérios selecionados.</div>
            <?php endif; ?>

            <?php if ($total_paginas > 1): ?>
                <?php
                    $paginas_mostradas = 5;
                    $metade = floor($paginas_mostradas / 2);
                    $start_page = max(1, $pagina_atual - $metade);
                    $end_page = min($total_paginas, $pagina_atual + $metade);
                     
                    if ($end_page - $start_page < $paginas_mostradas - 1) $start_page = max(1, $end_page - $paginas_mostradas + 1);
                    if ($end_page - $start_page < $paginas_mostradas - 1) $end_page = min($total_paginas, $start_page + $paginas_mostradas - 1);
                ?>
                <div class="paginacao">
                    <?php if ($pagina_atual > 1): ?>
                        <a href="<?= htmlspecialchars($url_base_paginacao . 'pagina=' . ($pagina_atual - 1)); ?>" title="Página Anterior"><i class="fas fa-arrow-left"></i></a>
                    <?php endif; ?>
                     
                    <?php if ($start_page > 1): ?>
                        <a href="<?= htmlspecialchars($url_base_paginacao . 'pagina=1'); ?>">1</a>
                        <?php if ($start_page > 2): ?><span>...</span><?php endif; ?>
                    <?php endif; ?>
                     
                    <?php for ($i = $start_page; $i <= $end_page; $i++): ?>
                        <a href="<?= htmlspecialchars($url_base_paginacao . 'pagina=' . $i); ?>" class="<?= ($i == $pagina_atual) ? 'ativo' : ''; ?>"><?= $i; ?></a>
                    <?php endfor; ?>
                     
                    <?php if ($end_page < $total_paginas): ?>
                        <?php if ($end_page < $total_paginas - 1): ?><span>...</span><?php endif; ?>
                        <a href="<?= htmlspecialchars($url_base_paginacao . 'pagina=' . $total_paginas); ?>"><?= $total_paginas; ?></a>
                    <?php endif; ?>
                     
                    <?php if ($pagina_atual < $total_paginas): ?>
                        <a href="<?= htmlspecialchars($url_base_paginacao . 'pagina=' . ($pagina_atual + 1)); ?>" class="proximo">Próximo</a>
                    <?php endif; ?>
                </div>
            <?php endif; ?>
        </div>
    </div>

    <?php if (file_exists('rodape.php')) include 'rodape.php'; ?>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
    <a href="https://wa.me/5511939453603" class="whatsapp-fixed" target="_blank" rel="noopener noreferrer" title="Fale conosco no WhatsApp">
        <i class="fab fa-whatsapp"></i>
    </a>
</body>
</html>