<?php
// painel-de-gestao-candidato.php

// Iniciar a sessão no topo do script
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once 'conexao.php'; // Fornece $pdo globalmente
require_once 'env.php';     // Garante que $_ENV possa ser usado

// Verificar se o usuário está autenticado
if (!isset($_SESSION['id'])) {
    $_SESSION['mensagem_login_redirect'] = "Por favor, faça o login para acessar seu painel.";
    header("Location: login.php");
    exit();
}

if (($_SESSION['role'] ?? '') !== 'Candidatos') {
    $_SESSION['mensagem_acesso_negado'] = "Acesso restrito a candidatos.";
    header("Location: login.php?erro=permissao_candidato_negada");
    exit();
}

$id_candidato_logado = $_SESSION['id'];
$nome_usuario = $_SESSION['usuario_nome'] ?? 'Candidato';

// --- NOVA LÓGICA: VERIFICAR ENTREVISTAS PENDENTES PARA O BOTÃO PISCAR ---
$tem_entrevista_pendente = false;
if ($pdo) {
    try {
        $sql_check_entrevista = "SELECT COUNT(*) FROM Agendamentos WHERE candidato_id = ? AND status = 'Agendado'";
        $stmt_check = $pdo->prepare($sql_check_entrevista);
        $stmt_check->execute([$id_candidato_logado]);
        $tem_entrevista_pendente = $stmt_check->fetchColumn() > 0;
    } catch (PDOException $e) {
        error_log("Erro ao verificar entrevistas pendentes: " . $e->getMessage());
    }
}

function saudacao() {
    $hora = date("H");
    if ($hora >= 5 && $hora < 12) return "Bom dia";
    elseif ($hora >= 12 && $hora < 18) return "Boa tarde";
    else return "Boa noite";
}

// Histórico de Acesso (Mantido)
if (isset($_SESSION['id'], $_SESSION['role']) && $pdo) {
    $usuario_id_log = $_SESSION['id'];
    $tipo_usuario_log = 'candidato';
    $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_log, $pagina_acessada_log]);
    } catch (PDOException $e_log) {
        error_log("Erro ao registrar histórico de acesso: " . $e_log->getMessage());
    }
}

// Lógica do Modal do WhatsApp (Mantida)
$whatsapp_modal_fechado_permanente = isset($_COOKIE['whatsapp_modal_fechado']);
$whatsapp_modal_fechado_temporario = isset($_COOKIE['whatsapp_modal_temp']);

if (isset($_GET['whatsapp_participar']) && $_GET['whatsapp_participar'] === '1') {
    setcookie('whatsapp_modal_fechado', '1', time() + (365 * 24 * 60 * 60), '/'); 
    header('Location:https://https://chat.whatsapp.com/IMQBVfUch8e4gTGNAEXhfB?mode=gi_t');
    exit();
}

// Lógica de Pop-ups de Notificação (Mantida)
$popup_title = null;
$popup_message = null;
$popup_type = null;

if (isset($_GET['msg'])) {
    if ($_GET['msg'] === 'sucesso_candidatura') {
        $popup_title = "Sucesso!";
        $popup_message = $_SESSION['mensagem_candidatura'] ?? "Candidatura realizada com sucesso!";
        $popup_type = $_SESSION['status_candidatura'] ?? 'success';
    } elseif ($_GET['msg'] === 'ja_candidatado') {
        $popup_title = "Atenção!";
        $popup_message = $_SESSION['mensagem_candidatura'] ?? "Você já se candidatou a esta vaga anteriormente.";
        $popup_type = $_SESSION['status_candidatura'] ?? 'info';
    }
    if (isset($_SESSION['mensagem_candidatura'])) unset($_SESSION['mensagem_candidatura']);
    if (isset($_SESSION['status_candidatura'])) unset($_SESSION['status_candidatura']);
} elseif (isset($_SESSION['mensagem_painel'])) {
    $tipo_msg_painel = $_SESSION['tipo_mensagem_painel'] ?? 'info';
    $popup_title = ($tipo_msg_painel === 'success') ? "Sucesso!" : (($tipo_msg_painel === 'danger') ? "Erro!" : "Aviso!");
    $popup_message = $_SESSION['mensagem_painel'];
    $popup_type = $tipo_msg_painel;
    unset($_SESSION['mensagem_painel'], $_SESSION['tipo_mensagem_painel']);
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Selflix Vagas - Painel do Candidato</title>
    <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.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body { font-family: Arial, sans-serif; line-height: 1.6; background-color: #f8f9fa; color: #333; }
        .main-container { width: 100%; max-width: 900px; margin: 20px auto; padding: 0 15px; text-align: center; }
        .candidate-header { background-color: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); margin-bottom: 30px; }
        .candidate-header h2 { color: #12929e; margin-bottom: 10px; font-size: 26px; font-weight: 600; }
        .candidate-header p { font-size: 1rem; color: #555; }
        .menu-candidato { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; margin-bottom: 30px; }
        .menu-candidato a { display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; padding: 20px; background-color: #12929e; color: white; border-radius: 8px; font-weight: 500; transition: all 0.3s ease; box-shadow: 0 2px 5px rgba(0,0,0,0.1); text-align:center; min-height: 120px; }
        .menu-candidato a i { font-size: 2rem; margin-bottom: 10px; }
        .menu-candidato a:hover { background-color: #0e7a84; transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.15); }
        
        /* NOVA ANIMAÇÃO: PISCAR (PULSE) */
        @keyframes pulse-yellow {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(246, 194, 62, 0.7); }
            70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(246, 194, 62, 0); }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(246, 194, 62, 0); }
        }
        .btn-pulse {
            animation: pulse-yellow 2s infinite;
            background-color: #f6c23e !important; /* Cor de alerta */
            color: #000 !important;
            font-weight: bold !important;
        }

        /* Modais e Estilos Gerais (Mantidos) */
        .modal { display: none; position: fixed; z-index: 1050; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.5); backdrop-filter: blur(3px); padding-top: 60px; }
        .modal-content { background-color: #fefefe; margin: 5% auto; padding: 25px; border: 1px solid #ddd; width: 90%; max-width: 480px; text-align: center; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.2); position: relative; }
        .close-modal-btn { position: absolute; right: 15px; top: 10px; color: #aaa; font-size: 28px; font-weight: bold; cursor: pointer; }
        .btn-ok { background-color: #12929e; border-color: #12929e; color:white; }
        #whatsappModal .btn-whatsapp { display: inline-block; background-color: #25D366; color: white; padding: 12px 24px; text-decoration: none; border-radius: 25px; font-weight: bold; margin-top: 10px; transition: 0.3s; }
        
        /* Acordeão de Termos (Mantido) */
        .terms-container { margin-top: 40px; border: 1px solid #eee; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
        .accordion { background-color: #f0f8ff; color: #10909D; cursor: pointer; padding: 18px 20px; width: 100%; border: none; text-align: left; font-size: 17px; border-radius: 8px; font-weight: 500; position: relative; }
        .accordion:after { content: '\f078'; font-family: "Font Awesome 5 Free"; font-weight: 900; position: absolute; right: 20px; }
        .accordion.active:after { content: "\f077"; }
        .terms-panel { padding: 0; max-height: 0; overflow: hidden; background-color: white; transition: max-height 0.4s ease-out; }
        .terms-panel.show { padding: 20px; max-height: 400px; overflow-y: auto; border-top: 1px solid #eee; }
    </style>
</head>
<body>
<?php include 'menu-paineis.php'; ?>

<div class="main-container">
    <div class="candidate-header">
        <h2><?php echo saudacao() . ", <strong>" . htmlspecialchars($nome_usuario); ?></strong>! <i class="fas fa-mug-hot"></i></h2>
        <p>Bem-vindo(a) ao seu painel de candidato. Gerencie suas informações e candidaturas aqui.</p>
    </div>

    <div class="menu-candidato">
        <a href="editar_cadastro.php?id=<?php echo htmlspecialchars($id_candidato_logado); ?>"><i class="fas fa-user-edit"></i>Editar Meu Cadastro</a>
        
        <a href="listar_candidaturas.php" class="<?php echo $tem_entrevista_pendente ? 'btn-pulse' : ''; ?>">
            <i class="fas fa-list-alt"></i>
            Ver Minhas Candidaturas
            <?php if($tem_entrevista_pendente): ?>
                <span class="badge bg-danger mt-2">Nova Entrevista Agendada!</span>
            <?php endif; ?>
        </a>

        <a href="vagas.php"><i class="fas fa-search"></i>Procurar Novas Vagas</a>
        <a href="logout.php" style="background-color: #6c757d;"><i class="fas fa-sign-out-alt"></i>Sair</a>
    </div>
    
    <div class="terms-container">
        <button class="accordion">Termos de Uso do Painel de Vagas - Selflix</button>
        <div class="terms-panel">
            <div class="terms-content">
                <p>Estes Termos de Uso regem a relação entre a Selflix e os CANDIDATOS...</p>
                <p>9.1.1. <a href="https://www.selflix.com.br/termos/" target="_blank">Termos de Contrato</a></p>
                <p>9.1.2. <a href="https://www.selflix.com.br/politica-de-privacidade/" target="_blank">Política de Privacidade</a></p>
            </div>
        </div>
    </div>
</div>

<div id="appNotificationModal" class="modal" <?php if ($popup_message) echo 'style="display:block;"'; ?>>
    <div class="modal-content">
        <span class="close-modal-btn" onclick="closeAppNotificationModal()">&times;</span>
        <h3 class="title-<?php echo $popup_type; ?>"><?php echo htmlspecialchars($popup_title ?? 'Notificação'); ?></h3>
        <p><?php echo htmlspecialchars($popup_message ?? ''); ?></p>
        <button onclick="closeAppNotificationModal()" class="btn btn-primary mt-2 btn-ok">Ok</button>
    </div>
</div>

<div id="whatsappModal" class="modal">
    <div class="modal-content">
        <span class="close-modal-btn whatsappClose">&times;</span>
        <h3><i class="fab fa-whatsapp" style="color: #25D366;"></i> Junte-se ao Grupo!</h3>
        <p>Receba diariamente vagas de emprego selecionadas.</p>
        <a href="?whatsapp_participar=1" class="btn-whatsapp"><i class="fab fa-whatsapp"></i> Quero Participar!</a>
    </div>
</div>

<div id="siteUpdateModal" class="modal">
    <div class="modal-content">
        <span class="close-modal-btn">&times;</span>
        <p style="font-size: 1.2em; color: #333; margin-bottom: 10px;">Nosso site foi atualizado, favor realizar um novo upload do seu currículo.</p>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
function closeAppNotificationModal() {
    const modal = document.getElementById("appNotificationModal");
    if (modal) modal.style.display = "none";
    if (window.history.replaceState) {
        const cleanUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
        window.history.replaceState({path: cleanUrl}, '', cleanUrl);
    }
}

document.addEventListener('DOMContentLoaded', function() {
    // Modal WhatsApp (Mantido)
    const whatsappModal = document.getElementById("whatsappModal");
    if (whatsappModal && !<?php echo $whatsapp_modal_fechado_permanente || $whatsapp_modal_fechado_temporario ? 'true' : 'false'; ?>) {
        setTimeout(() => whatsappModal.style.display = "block", 3000);
        document.querySelector(".whatsappClose").onclick = () => {
            whatsappModal.style.display = "none";
            let expiry = new Date();
            expiry.setDate(expiry.getDate() + 1);
            document.cookie = "whatsapp_modal_temp=1; expires=" + expiry.toUTCString() + "; path=/";
        };
    }

    // Modal Site Update (Mantido)
    const siteUpdateModal = document.getElementById('siteUpdateModal');
    if (!document.cookie.split(';').some((item) => item.trim().startsWith('site_update_modal_viewed='))) {
        setTimeout(() => {
            siteUpdateModal.style.display = 'block';
            let expiry = new Date();
            expiry.setDate(expiry.getDate() + 30);
            document.cookie = "site_update_modal_viewed=1; expires=" + expiry.toUTCString() + "; path=/";
        }, 1000);
        siteUpdateModal.querySelector('.close-modal-btn').onclick = () => siteUpdateModal.style.display = 'none';
    }

    // Accordion (Mantido)
    const accordions = document.getElementsByClassName("accordion");
    for (let i = 0; i < accordions.length; i++) {
        accordions[i].addEventListener("click", function() {
            this.classList.toggle("active");
            this.nextElementSibling.classList.toggle("show");
        });
    }
});
</script>

<?php include 'rodape.php'; ?>
</body>
</html>