<?php
// listar-anuncios-empresa.php

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

if (($_SESSION['role'] ?? '') !== 'Administradores') {
    $_SESSION['mensagem_login'] = "Acesso negado! Você não tem permissão para acessar esta página.";
    header("Location: login.php");
    exit();
}

// --- LÓGICA PARA ATUALIZAR LIMITE MANUAL ---
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['btn_atualizar_limite_vaga'])) {
    $vaga_id = filter_input(INPUT_POST, 'id_vaga', FILTER_VALIDATE_INT);
    $novo_limite = filter_input(INPUT_POST, 'novo_limite', FILTER_VALIDATE_INT);
    $tipo_vaga = $_POST['tipo_vaga']; 
    $empresa_id_retorno = $_POST['empresa_id_retorno'];

    $tabela = ($tipo_vaga === 'pago') ? 'anuncio_pago' : 'anuncio_gratuito';
    
    try {
        $stmt = $pdo->prepare("UPDATE $tabela SET limite_candidaturas = ? WHERE id = ?");
        $stmt->execute([$novo_limite, $vaga_id]);
        $_SESSION['status_mensagem'] = ['texto' => "Limite da vaga atualizado com sucesso!", 'tipo' => "success"];
    } catch (PDOException $e) {
        $_SESSION['status_mensagem'] = ['texto' => "Erro ao atualizar limite. Verifique se a coluna existe no banco.", 'tipo' => "danger"];
    }
    header("Location: listar-anuncios-empresa.php?id=" . $empresa_id_retorno);
    exit();
}

// Tokens para deleção
if (empty($_SESSION['csrf_token_delete_gratuito'])) {
    $_SESSION['csrf_token_delete_gratuito'] = bin2hex(random_bytes(32));
}
$token_del_gratuito = $_SESSION['csrf_token_delete_gratuito'];

if (empty($_SESSION['csrf_token_delete_pago'])) {
    $_SESSION['csrf_token_delete_pago'] = bin2hex(random_bytes(32));
}
$token_del_pago = $_SESSION['csrf_token_delete_pago'];

$empresa_id_get = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (!$empresa_id_get) {
    $_SESSION['status_mensagem'] = ['texto' => "ID da empresa inválido.", 'tipo' => "danger"];
    header("Location: listar_empresas.php");
    exit();
}

$nome_empresa_selecionada = "Empresa ID " . htmlspecialchars($empresa_id_get);
$anuncios = [];

try {
    $stmt_nome_empresa = $pdo->prepare("SELECT nome_empresa FROM Empresas WHERE id = ?");
    $stmt_nome_empresa->execute([$empresa_id_get]);
    $nome_empresa_obj = $stmt_nome_empresa->fetch(PDO::FETCH_OBJ);
    if ($nome_empresa_obj) {
        $nome_empresa_selecionada = $nome_empresa_obj->nome_empresa;
    }

    // Busca Gratuitos - Removi o limite da query principal para evitar erro de 'coluna não encontrada' caso você ainda não tenha rodado o SQL de alteração
    $sql_gratuitos = "SELECT id, titulo_vaga, data_criacao, 'gratuito' AS tipo FROM anuncio_gratuito WHERE id_empresa = ? AND status = 'ativo'";
    $stmt_gratuitos = $pdo->prepare($sql_gratuitos);
    $stmt_gratuitos->execute([$empresa_id_get]);
    $res_gratuitos = $stmt_gratuitos->fetchAll(PDO::FETCH_ASSOC);

    // Busca Pagos
    $sql_pagos = "SELECT id, titulo_vaga, data_criacao, 'pago' AS tipo FROM anuncio_pago WHERE empresa_id = ? AND status = 'ativo'";
    $stmt_pagos = $pdo->prepare($sql_pagos);
    $stmt_pagos->execute([$empresa_id_get]);
    $res_pagos = $stmt_pagos->fetchAll(PDO::FETCH_ASSOC);

    $anuncios = array_merge($res_gratuitos, $res_pagos);

    usort($anuncios, function($a, $b) {
        return strtotime($b['data_criacao']) - strtotime($a['data_criacao']);
    });

} catch (PDOException $e) {
    $mensagem_erro_pagina = "Erro ao buscar os anúncios: " . $e->getMessage();
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Anúncios: <?php echo htmlspecialchars($nome_empresa_selecionada); ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        body { background-color: #f8f9fa; padding: 20px; }
        .container-main { max-width: 1100px; margin: auto; background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        h2 { color: #12929e; text-align: center; margin-bottom: 25px; }
        .tag { display: inline-block; padding: .35em .6em; font-size: .75em; font-weight: 700; border-radius: .375rem; }
        .tag-pago { background-color: #fff3cd; color: #664d03; border: 1px solid #ffe69c;}
        .tag-gratuito { background-color: #d1e7dd; color: #0f5132; border: 1px solid #badbcc;}
    </style>
</head>
<body>

<div class="container-main">
    <h2>Anúncios: <i><?php echo htmlspecialchars($nome_empresa_selecionada); ?></i></h2>

    <div class="mb-3 d-flex justify-content-between">
        <div>
            <a href="listar_empresas.php" class="btn btn-outline-secondary btn-sm"><i class="fas fa-arrow-left"></i> Voltar</a>
            <a href="painel-adm.php" class="btn btn-outline-info btn-sm"><i class="fas fa-tachometer-alt"></i> Painel</a>
        </div>
    </div>

    <?php if (isset($_SESSION['status_mensagem'])): ?>
        <div class="alert alert-<?php echo $_SESSION['status_mensagem']['tipo']; ?> alert-dismissible fade show">
            <?php echo $_SESSION['status_mensagem']['texto']; ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>
        <?php unset($_SESSION['status_mensagem']); ?>
    <?php endif; ?>

    <?php if (!empty($anuncios)): ?>
        <div class="table-responsive">
            <table class="table table-striped table-hover align-middle">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Título da Vaga</th>
                        <th>Tipo</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($anuncios as $anuncio): ?>
                        <tr>
                            <td><?php echo $anuncio['id']; ?></td>
                            <td><?php echo htmlspecialchars($anuncio['titulo_vaga']); ?></td>
                            <td>
                                <span class="tag tag-<?php echo $anuncio['tipo']; ?>">
                                    <?php echo $anuncio['tipo'] === 'pago' ? '<i class="fas fa-star"></i> Pago' : 'Gratuito'; ?>
                                </span>
                            </td>
                            <td>
                                <div class="d-flex gap-2">
                                    <?php
                                    $file_edit = ($anuncio['tipo'] === 'gratuito') ? 'editar-anuncio-gratuito' : 'editar-anuncio-pago';
                                    $file_del = ($anuncio['tipo'] === 'gratuito') ? 'deletar-anuncio-gratuito' : 'deletar-anuncio-pago';
                                    $token_ativo = ($anuncio['tipo'] === 'gratuito') ? $token_del_gratuito : $token_del_pago;
                                    $link_delecao = "{$file_del}.php?id={$anuncio['id']}&empresa_id_retorno={$empresa_id_get}&csrf_token={$token_ativo}";
                                    ?>
                                    
                                    <button type="button" class="btn btn-sm btn-info text-white" 
                                            data-bs-toggle="modal" data-bs-target="#modalLimite"
                                            data-id="<?php echo $anuncio['id']; ?>"
                                            data-titulo="<?php echo htmlspecialchars($anuncio['titulo_vaga']); ?>"
                                            data-tipo="<?php echo $anuncio['tipo']; ?>">
                                        <i class="fas fa-cog"></i>
                                    </button>

                                    <a href="<?php echo $file_edit; ?>.php?id=<?php echo $anuncio['id']; ?>" class="btn btn-sm btn-outline-primary"><i class="fas fa-edit"></i></a>

                                    <form action="admin_alternar_tipo.php" method="POST" class="m-0">
                                        <input type="hidden" name="id_anuncio" value="<?php echo $anuncio['id']; ?>">
                                        <input type="hidden" name="tipo_atual" value="<?php echo $anuncio['tipo']; ?>">
                                        <input type="hidden" name="empresa_id_retorno" value="<?php echo $empresa_id_get; ?>">
                                        <button type="submit" class="btn btn-sm <?php echo $anuncio['tipo'] === 'gratuito' ? 'btn-success' : 'btn-warning'; ?>" onclick="return confirm('Alterar categoria?');">
                                            <i class="fas fa-arrow-<?php echo $anuncio['tipo'] === 'gratuito' ? 'up' : 'down'; ?>"></i>
                                        </button>
                                    </form>

                                    <button type="button" class="btn btn-sm btn-outline-danger btn-delete-vaga" 
                                            data-bs-toggle="modal" data-bs-target="#modalExcluir"
                                            data-link="<?php echo $link_delecao; ?>"
                                            data-titulo="<?php echo htmlspecialchars($anuncio['titulo_vaga']); ?>">
                                        <i class="fas fa-trash-alt"></i>
                                    </button>
                                </div>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    <?php else: ?>
        <div class="alert alert-info">Nenhuma vaga ativa encontrada para esta empresa.</div>
    <?php endif; ?>
</div>

<div class="modal fade" id="modalLimite" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header bg-info text-white">
                <h5 class="modal-title"><i class="fas fa-users-cog"></i> Limite Manual</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <form method="POST">
                <div class="modal-body">
                    <p>Vaga: <strong id="vaga-titulo-limite"></strong></p>
                    <input type="hidden" name="id_vaga" id="vaga-id-limite">
                    <input type="hidden" name="tipo_vaga" id="vaga-tipo-limite">
                    <input type="hidden" name="empresa_id_retorno" value="<?php echo $empresa_id_get; ?>">
                    
                    <div class="mb-3">
                        <label class="form-label fw-bold">Definir quantidade máxima de candidaturas:</label>
                        <input type="number" name="novo_limite" class="form-control" placeholder="Ex: 50" required min="1">
                        <small class="text-muted">Isso ignorará a regra global para esta vaga específica.</small>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" name="btn_atualizar_limite_vaga" class="btn btn-info text-white">Salvar Alteração</button>
                </div>
            </form>
        </div>
    </div>
</div>

<div class="modal fade" id="modalExcluir" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header bg-danger text-white">
                <h5 class="modal-title">Confirmar Exclusão</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body text-center">
                <p>Excluir a vaga: <strong id="vaga-titulo-modal"></strong>?</p>
                <input type="text" id="confirm-input" class="form-control text-center" placeholder="Digite Excluir">
            </div>
            <div class="modal-footer">
                <button type="button" id="btn-confirmar-delete" class="btn btn-danger" disabled>Confirmar</button>
            </div>
        </div>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
    // Configura o Modal de Limite Individual
    const modalLimite = document.getElementById('modalLimite');
    modalLimite.addEventListener('show.bs.modal', function (event) {
        const button = event.relatedTarget;
        document.getElementById('vaga-titulo-limite').textContent = button.getAttribute('data-titulo');
        document.getElementById('vaga-id-limite').value = button.getAttribute('data-id');
        document.getElementById('vaga-tipo-limite').value = button.getAttribute('data-tipo');
    });

    // Lógica de Exclusão
    const inputConfirm = document.getElementById('confirm-input');
    const btnConfirmar = document.getElementById('btn-confirmar-delete');
    let currentDeleteUrl = ''; 
    document.querySelectorAll('.btn-delete-vaga').forEach(button => {
        button.addEventListener('click', function () {
            currentDeleteUrl = this.getAttribute('data-link');
            document.getElementById('vaga-titulo-modal').textContent = this.getAttribute('data-titulo');
            inputConfirm.value = '';
            btnConfirmar.disabled = true;
        });
    });
    inputConfirm.addEventListener('input', function () {
        btnConfirmar.disabled = (this.value.trim().toLowerCase() !== 'excluir');
    });
    btnConfirmar.addEventListener('click', function() {
        if (currentDeleteUrl) window.location.href = currentDeleteUrl;
    });
});
</script>
</body>
</html>