<?php
// listar-anuncios-pago.php - CORRIGIDO: Incluindo 'empresa_id_retorno' na URL de deleção

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
require_once 'conexao.php';
require_once 'env.php';

// 1. Autenticação e Verificação de Permissão
if (!isset($_SESSION['id'], $_SESSION['role'])) {
    $_SESSION['mensagem_login'] = "Acesso restrito. Por favor, faça login.";
    header("Location: login.php");
    exit();
}

$user_role = $_SESSION['role'] ?? '';
if ($user_role !== 'Empresas' && $user_role !== 'Administrador' && $user_role !== 'Administradores') {
    $_SESSION['mensagem_painel'] = "Você não tem permissão para acessar esta página.";
    $_SESSION['tipo_mensagem_painel'] = "danger";
    header("Location: " . ($user_role === 'Candidatos' ? 'painel-de-gestao-candidato.php' : 'login.php'));
    exit();
}

// 2. Geração de Tokens CSRF
if (empty($_SESSION['csrf_token_delete_pago'])) {
    $_SESSION['csrf_token_delete_pago'] = bin2hex(random_bytes(32));
}
if (empty($_SESSION['csrf_token_toggle_status'])) {
    $_SESSION['csrf_token_toggle_status'] = bin2hex(random_bytes(32));
}

$csrf_token_for_delete = $_SESSION['csrf_token_delete_pago'];
$csrf_token_for_toggle = $_SESSION['csrf_token_toggle_status'];

$anuncios_pagos_lista = [];
$mensagem_erro_pagina = null;

// 3. Busca dos Anúncios
if (!$pdo) {
    error_log("Falha ao listar anúncios pagos: conexão PDO não disponível.");
    $mensagem_erro_pagina = "Erro crítico de sistema (DB). Não é possível listar os anúncios.";
} else {
    try {
        if ($user_role === 'Administrador' || $user_role === 'Administradores') {
            $sql = "SELECT ap.*, e.nome_empresa, e.logotipo FROM anuncio_pago ap LEFT JOIN Empresas e ON ap.empresa_id = e.id ORDER BY ap.data_criacao DESC";
            $stmt = $pdo->prepare($sql);
            $stmt->execute();
        } else { // Role é 'Empresas'
            $sql = "SELECT ap.*, e.logotipo FROM anuncio_pago ap LEFT JOIN Empresas e ON ap.empresa_id = e.id WHERE ap.empresa_id = :id_empresa ORDER BY ap.data_criacao DESC";
            $stmt = $pdo->prepare($sql);
            $stmt->bindParam(':id_empresa', $_SESSION['id'], PDO::PARAM_INT);
            $stmt->execute();
        }
        $anuncios_pagos_lista = $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        error_log("Erro PDO ao buscar anúncios pagos: " . $e->getMessage());
        $mensagem_erro_pagina = "Ocorreu um erro ao buscar os anúncios pagos. Por favor, tente mais tarde.";
    }
}

// 4. Rastrear o acesso
if (isset($_SESSION['id'], $_SESSION['role']) && $pdo) {
    $usuario_id_log = $_SESSION['id'];
    $role_log = $_SESSION['role'];
    
    $role_map_hist = ['Empresas' => 'empresa', 'Candidatos' => 'candidato', 'Administrador' => 'admin', 'Administradores' => 'admin'];
    $tipo_usuario_hist = $role_map_hist[$role_log] ?? 'desconhecido';
    
    $pagina_acessada_log = $_SERVER['REQUEST_URI'];
    
    try {
        $sql_inserir_hist = "INSERT INTO historico_acessos (usuario_id, tipo_usuario, pagina_acessada, data_acesso) VALUES (?, ?, ?, NOW())";
        $stmt_hist = $pdo->prepare($sql_inserir_hist);
        $stmt_hist->execute([$usuario_id_log, $tipo_usuario_hist, $pagina_acessada_log]);
    } catch (PDOException $e_log) {
        error_log("Erro ao registrar histórico de acesso em listar-anuncios-pago.php: " . $e_log->getMessage());
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Anúncios Pagos - Selflix Vagas</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
    <style>
        body { font-family: Arial, sans-serif; background-color: #f8f9fa; padding: 20px; }
        .container-main { max-width: 1200px; margin: 0 auto; background-color: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        h1 { text-align: center; margin-bottom: 30px; color: #12929e; font-size: 28px; }
        .cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; }
        .card {
            background: white;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            padding: 0;
            box-shadow: 0 4px 8px rgba(0,0,0,0.05);
            display: flex;
            flex-direction: column;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .card:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0,0,0,0.1); }
        .card-img-top-container {
            width: 100%;
            height: 150px;
            overflow: hidden;
            border-top-left-radius: 8px;
            border-top-right-radius: 8px;
            background-color: white;
            display:flex;
            align-items:center;
            justify-content:center;
        }
        .card-img-top-container img.logo { max-width: 90%; max-height: 90%; object-fit: contain; }
        .card-body { padding: 20px; flex-grow: 1; display: flex; flex-direction: column; }
        .card-title { font-size: 1.15rem; font-weight: bold; margin-bottom: 0.75rem; color: #12929e; }
        .card-info { font-size: 0.9rem; color: #555; margin-bottom: 0.3rem; }
        .card-info strong { color: #333; }
        .card-salario { font-weight: bold; color: #28a745; margin-bottom: 1rem; font-size: 1rem; }
        .card-actions {
            margin-top: auto;
            padding-top: 15px;
            padding-bottom: 15px;
            border-top: 1px solid #f0f0f0;
            text-align: center;
        }
        .card-actions .btn { margin: 5px; font-size: 0.85rem; padding: 0.375rem 0.75rem; }
        .btn-edit { background-color: #0d6efd; color:white; } .btn-edit:hover { background-color: #0b5ed7;}
        .btn-delete { background-color: #dc3545; color:white; } .btn-delete:hover { background-color: #bb2d3b;}
        .btn-view { background-color: #198754; color:white; } .btn-view:hover { background-color: #157347;}
        .sem-anuncios { text-align: center; color: #6c757d; margin-top: 40px; font-size: 1.1rem; padding: 20px; background-color: #f8f9fa; border-radius: 5px;}
        .btn-voltar-painel { margin-bottom: 25px; }
        .header-actions { display: flex; justify-content: space-between; align-items: center; margin-bottom:25px; }
        
        /* --- ESTILOS DO MODAL DE EXCLUSÃO (VERDE-AZULADO) --- */
        .modal-overlay {
            display: none;
            position: fixed;
            z-index: 1050;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.6);
            backdrop-filter: blur(4px);
            align-items: center;
            justify-content: center;
        }

        #modalExclusao .modal-content {
            background-color: #38b4a0; /* Fundo Verde-Azulado */
            color: #ffffff; /* Texto Branco */
            border: none;
            border-radius: 12px;
            padding: 35px 25px;
            width: 90%;
            max-width: 400px;
            text-align: center;
            box-shadow: 0 8px 20px rgba(0,0,0,0.25);
            position: relative;
            animation: fadeInModal 0.3s ease-out;
        }

        @keyframes fadeInModal {
            from { opacity: 0; transform: scale(0.9); }
            to { opacity: 1; transform: scale(1); }
        }

        #modalExclusao .close-btn {
            color: rgba(255, 255, 255, 0.8);
            position: absolute;
            top: 15px;
            right: 20px;
            font-size: 2rem;
            cursor: pointer;
            line-height: 1;
        }
        #modalExclusao .close-btn:hover { color: #ffffff; }

        #modalExclusao h4 {
            color: #ffffff;
            font-size: 1.5rem;
            font-weight: 700;
            margin-bottom: 15px;
        }

        #modalExclusao p {
            color: rgba(255, 255, 255, 0.95);
            font-size: 1.1rem;
            margin-bottom: 30px;
        }

        /* Botões Brancos dentro do Modal */
        #modalExclusao .btn-modal-white {
            background-color: #ffffff;
            color: #38b4a0;
            border: none;
            width: 100%;
            padding: 12px 0;
            font-size: 1rem;
            font-weight: bold;
            text-transform: uppercase;
            border-radius: 6px;
            margin-bottom: 12px;
            cursor: pointer;
            transition: transform 0.2s, box-shadow 0.2s;
            display: block;
            text-decoration: none; /* Para links */
            line-height: 1.5;
        }

        #modalExclusao .btn-modal-white:hover {
            background-color: #f1f1f1;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.15);
            color: #2a8f7d;
        }
    </style>
</head>
<body>
<div class="container-main">
    <h1>Lista de Anúncios Pagos</h1>

    <div class="header-actions">
        <a href="<?php echo (($user_role === 'Administrador' || $user_role === 'Administradores') ? 'painel-adm.php' : 'painel-de-gestao-empresa.php'); ?>" class="btn btn-outline-secondary btn-voltar-painel">
            Voltar ao Painel
        </a>
        <?php if ($user_role === 'Empresas' || $user_role === 'Administrador' || $user_role === 'Administradores'): ?>
            <a href="criar-anuncio-pago.php" class="btn btn-primary">Criar Novo Anúncio Pago</a>
        <?php endif; ?>
    </div>
    <div class="clearfix mb-3"></div>
    <?php 
    // Exibe a mensagem de feedback se existir
    if (isset($_SESSION['mensagem']) && isset($_SESSION['tipo_mensagem'])) {
        $alert_class = ($_SESSION['tipo_mensagem'] === 'success') ? 'alert-success' : 'alert-danger';
        echo '<div class="alert ' . $alert_class . ' alert-dismissible fade show" role="alert">';
        echo htmlspecialchars($_SESSION['mensagem']);
        echo '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
        echo '</div>';
        unset($_SESSION['mensagem']);
        unset($_SESSION['tipo_mensagem']);
    }
    
    // Exibe mensagem de status vinda da deleção
    if (isset($_SESSION['status_mensagem'])) {
        $status = $_SESSION['status_mensagem'];
        echo '<div class="alert alert-' . htmlspecialchars($status['tipo']) . ' alert-dismissible fade show" role="alert">';
        echo htmlspecialchars($status['texto']);
        echo '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
        echo '</div>';
        unset($_SESSION['status_mensagem']);
    }
    ?>
    <?php if ($mensagem_erro_pagina): ?>
        <div class="alert alert-danger"><?php echo htmlspecialchars($mensagem_erro_pagina); ?></div>
    <?php endif; ?>

    <?php if (!empty($anuncios_pagos_lista)): ?>
        <div class="cards">
            <?php foreach ($anuncios_pagos_lista as $anuncio): ?>
                <div class="card">
                    <div class="card-img-top-container">
                        <?php
                        $logo_path_card = $anuncio['logotipo'] ?? '';
                        if (!empty($logo_path_card) && strpos($logo_path_card, 'http') !== 0 && strpos($logo_path_card, '/') !== 0) {
                            $logo_path_card = '/' . ltrim($logo_path_card, '/');
                        }
                        ?>
                        <?php if (!empty($logo_path_card)): ?>
                            <img src="<?php echo htmlspecialchars($logo_path_card); ?>" class="logo" alt="Logotipo" 
                                onerror="this.style.display='none'; this.parentElement.innerHTML='<small class=\'text-muted p-3\'>Logo não disponível</small>';">
                        <?php else: ?>
                            <small class="text-muted p-3">Sem Logotipo</small>
                        <?php endif; ?>
                    </div>
                    <div class="card-body">
                        <h5 class="card-title"><?php echo htmlspecialchars($anuncio['titulo_vaga']); ?></h5>
                        <?php if (($user_role === 'Administrador' || $user_role === 'Administradores') && isset($anuncio['nome_empresa'])): ?>
                            <p class="admin-info"><strong>Empresa:</strong> <?php echo htmlspecialchars($anuncio['nome_empresa']); ?></p>
                        <?php endif; ?>
                        <p class="card-info"><strong>Email para Currículo:</strong> <?php echo htmlspecialchars($anuncio['email_para_curriculo']); ?></p>
                        <p class="card-info"><strong>Local:</strong> <?php echo htmlspecialchars($anuncio['cidade_vaga'] ?? 'N/D'); ?>, <?php echo htmlspecialchars($anuncio['estado']); ?></p>
                        <p class="card-info"><strong>Tipo de Contrato:</strong> <?php echo htmlspecialchars($anuncio['tipo_vaga']); ?></p>
                        <p class="card-info"><strong>Modelo:</strong> <?php echo htmlspecialchars($anuncio['modelo_contratacao']); ?></p>
                        <p class="card-salario">
                            <?php
                                $salario_valor = $anuncio['salario'] ?? '';
                                if ($anuncio['salario_a_combinar'] == 1) {
                                    echo "A Combinar";
                                } elseif (is_numeric($salario_valor) && $salario_valor > 0) {
                                    echo "R$ " . number_format((float)$salario_valor, 2, ',', '.');
                                } else {
                                    echo "Salário não informado";
                                }
                            ?>
                        </p>
                        <p class="card-info"><small class="text-muted">Publicado em: <?php echo htmlspecialchars(date("d/m/Y", strtotime($anuncio['data_criacao']))); ?></small></p>
                        <p class="card-info"><small class="text-muted">Status: <?php echo htmlspecialchars($anuncio['status']); ?></small></p>
                    </div>
                    <div class="card-actions">
                        <a href="editar-anuncio-pago.php?id=<?php echo $anuncio['id']; ?>" class="btn btn-sm btn-edit">Editar</a>
                        
                        <?php
                            $is_ativo = $anuncio['status'] === 'ativo';
                            $icon_class = $is_ativo ? 'bi-eye-fill' : 'bi-eye-slash-fill';
                            $btn_class = $is_ativo ? 'btn-success' : 'btn-secondary';
                        ?>
                        <button type="button" class="btn btn-sm btn-toggle-status <?php echo $btn_class; ?>" 
                                data-id="<?php echo $anuncio['id']; ?>" data-status="<?php echo htmlspecialchars($anuncio['status']); ?>"
                                title="<?php echo $is_ativo ? 'Ocultar Anúncio' : 'Ativar Anúncio'; ?>">
                            <i class="bi <?php echo $icon_class; ?>"></i>
                        </button>

                        <?php
                            // ===========================================================
                            // CORREÇÃO AQUI: Incluímos o 'empresa_id_retorno' na URL
                            // ===========================================================
                            
                            // Define o ID da empresa para o script de deleção saber para onde voltar
                            $empresaIdParaRetorno = isset($anuncio['empresa_id']) ? $anuncio['empresa_id'] : ($_SESSION['id'] ?? 0);

                            // Monta a URL de deleção segura
                            $urlDelecao = "deletar-anuncio-pago.php?id=" . $anuncio['id'] . 
                                          "&empresa_id_retorno=" . $empresaIdParaRetorno . 
                                          "&csrf_token=" . urlencode($csrf_token_for_delete);
                        ?>
                        <a href="#" 
                           class="btn btn-sm btn-delete" 
                           onclick="event.preventDefault(); abrirModalExclusao('<?php echo $urlDelecao; ?>');">
                            Excluir
                        </a>

                        <?php
                            $urlVagaPublica = "#";
                            $baseSiteUrl = rtrim(($_ENV['SITE_URL'] ?? ''), '/');

                            $slugForUrl = null;
                            if (!empty($anuncio['slug'])) {
                                $slugForUrl = htmlspecialchars($anuncio['slug']);
                            } elseif (!empty($anuncio['titulo_vaga']) && !empty($anuncio['id'])) {
                                $tituloSlugView = strtolower(preg_replace('/[^a-z0-9]+/', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $anuncio['titulo_vaga'])));
                                $slugForUrl = $tituloSlugView . "-" . $anuncio['id'];
                            }
                            
                            if (!empty($slugForUrl)) {
                                $urlVagaPublica = $baseSiteUrl . "/vaga-select.php?id=" . $slugForUrl;
                            }
                        ?>
                        <?php if ($urlVagaPublica !== "#" && !empty($anuncio['id'])): ?>
                            <a href="<?php echo $urlVagaPublica; ?>" target="_blank" class="btn btn-sm btn-view">Ver Anúncio</a>
                        <?php endif; ?>
                    </div>
                </div>
            <?php endforeach; ?>
        </div>
    <?php elseif (!$mensagem_erro_pagina): ?>
        <div class="sem-anuncios">
            Não há anúncios pagos cadastrados <?php echo (($user_role === 'Empresas') ? 'pela sua empresa no momento' : ''); ?>.
        </div>
    <?php endif; ?>
</div>

<div class="modal-overlay" id="modalExclusao">
    <div class="modal-content">
        <span class="close-btn" onclick="fecharModalExclusao()">&times;</span>
        
        <h4>Tem certeza?</h4>
        <p>Deseja realmente excluir este anúncio pago? Esta ação não pode ser desfeita.</p>
        
        <a href="#" id="btnConfirmarExclusao" class="btn-modal-white">
            Sim, Excluir
        </a>
        
        <button type="button" class="btn-modal-white" onclick="fecharModalExclusao()">
            Cancelar
        </button>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
    // --- FUNÇÕES DO MODAL DE EXCLUSÃO ---
    function abrirModalExclusao(url) {
        var modal = document.getElementById('modalExclusao');
        var btnConfirmar = document.getElementById('btnConfirmarExclusao');
        
        // Define o link de deleção no botão "Sim"
        btnConfirmar.setAttribute('href', url);
        
        // Mostra o modal
        modal.style.display = 'flex';
    }

    function fecharModalExclusao() {
        document.getElementById('modalExclusao').style.display = 'none';
    }

    // Fechar ao clicar fora do conteúdo do modal
    window.onclick = function(event) {
        var modal = document.getElementById('modalExclusao');
        if (event.target == modal) {
            fecharModalExclusao();
        }
    }
    
    // Fechar com a tecla ESC
    window.addEventListener("keydown", function(e) {
        if (e.key === "Escape") { 
            fecharModalExclusao();
        }
    });

    // --- FUNÇÕES DE TOGGLE STATUS (MANTIDAS DO SEU CÓDIGO) ---
    document.querySelectorAll('.btn-toggle-status').forEach(button => {
        button.addEventListener('click', function() {
            const idAnuncio = this.dataset.id;
            const currentStatus = this.dataset.status;
            const newStatus = currentStatus === 'ativo' ? 'inativo' : 'ativo';
            const csrfToken = '<?php echo $csrf_token_for_toggle; ?>'; 
            const currentButton = this;

            const formData = new URLSearchParams();
            formData.append('id_anuncio', idAnuncio);
            formData.append('novo_status', newStatus);
            formData.append('csrf_token', csrfToken);

            fetch('toggle-anuncio-status.php', {
                method: 'POST',
                body: formData,
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    currentButton.dataset.status = data.novo_status;
                    const icon = currentButton.querySelector('i');
                    
                    if (data.novo_status === 'ativo') {
                        icon.className = 'bi bi-eye-fill';
                        currentButton.classList.remove('btn-secondary');
                        currentButton.classList.add('btn-success');
                        currentButton.title = 'Ocultar Anúncio';
                    } else {
                        icon.className = 'bi bi-eye-slash-fill';
                        currentButton.classList.remove('btn-success');
                        currentButton.classList.add('btn-secondary');
                        currentButton.title = 'Ativar Anúncio';
                    }
                } else {
                    alert('Erro ao alterar status: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro na requisição:', error);
                alert('Não foi possível se comunicar com o servidor.');
            });
        });
    });
</script>
</body>
</html>