<?php
// ver-candidato.php

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
require_once 'conexao.php'; // Fornece $pdo globalmente
require_once 'env.php';     // Carrega $_ENV

// Verificar se o usuário está autenticado e é uma Empresa
if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Empresas') {
    $_SESSION['mensagem_login_redirect'] = "Acesso restrito. Faça login como empresa para visualizar perfis de candidatos.";
    header("Location: login.php");
    exit();
}

$id_empresa_logada = (int)$_SESSION['id'];
$id_candidato_ver = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);

if (!$id_candidato_ver || $id_candidato_ver <= 0) {
    $_SESSION['mensagem_listar_candidatos'] = "ID do candidato inválido ou não fornecido.";
    $_SESSION['tipo_mensagem_listar_candidatos'] = "warning";
    header("Location: listar-candidatos.php"); // Página onde a empresa vê a lista de seus candidatos
    exit();
}

$candidato = null;
$mensagem_erro_pagina = null;

if (!$pdo) {
    error_log("ver-candidato.php: Falha crítica - Conexão PDO não disponível.");
    // A mensagem de die() do conexao.php já teria sido exibida.
    // Se chegou aqui, é um fallback, mas idealmente não deveria.
    $mensagem_erro_pagina = "Erro crítico de sistema (DB). Não é possível carregar o perfil do candidato.";
} else {
    try {
        // Query para buscar o candidato E verificar se ele se candidatou a uma vaga da empresa logada
        $sql = "SELECT DISTINCT cand.* FROM Candidatos cand
                JOIN candidaturas c ON cand.id = c.candidato_id
                LEFT JOIN anuncio_pago ap ON (c.id_anuncio = ap.id AND c.tipo_anuncio = 'pago')
                LEFT JOIN anuncio_gratuito ag ON (c.id_anuncio = ag.id AND c.tipo_anuncio = 'gratuito')
                WHERE cand.id = :id_candidato_param 
                AND (ap.empresa_id = :id_empresa_param OR ag.id_empresa = :id_empresa_param)";
                // Nota: em anuncio_gratuito, a FK é id_empresa. Em anuncio_pago é empresa_id.

        $stmt = $pdo->prepare($sql);
        $stmt->bindParam(':id_candidato_param', $id_candidato_ver, PDO::PARAM_INT);
        $stmt->bindParam(':id_empresa_param', $id_empresa_logada, PDO::PARAM_INT);
        $stmt->execute();
        $candidato = $stmt->fetch(PDO::FETCH_ASSOC);

        if (!$candidato) {
            $_SESSION['mensagem_listar_candidatos'] = "Candidato não encontrado ou você não tem permissão para visualizar este perfil (o candidato pode não ter se aplicado a uma de suas vagas).";
            $_SESSION['tipo_mensagem_listar_candidatos'] = "warning";
            header("Location: listar-candidatos.php");
            exit();
        }

    } catch (PDOException $e) {
        error_log("Erro PDO ao buscar perfil do candidato ID {$id_candidato_ver} para empresa ID {$id_empresa_logada}: " . $e->getMessage());
        $mensagem_erro_pagina = "Ocorreu um erro ao carregar o perfil do candidato.";
    }
}

// Rastrear o acesso (se o candidato foi carregado com sucesso e $pdo existe)
if ($candidato && $pdo && isset($_SESSION['id'], $_SESSION['role'])) {
    $usuario_id_log = $_SESSION['id'];
    $role_log = $_SESSION['role']; // Deve ser 'Empresas'
    $role_map_hist = ['Empresas' => 'empresa', 'Candidatos' => 'candidato', 'Administradores' => 'admin', 'Administrador' => 'admin'];
    $tipo_usuario_log = $role_map_hist[$role_log] ?? 'empresa';
    $pagina_acessada_log = $_SERVER['REQUEST_URI'] . " (Visualizou Candidato ID: {$id_candidato_ver})";
    
    try {
        $stmt_hist = $pdo->prepare("INSERT INTO historico_acessos (usuario_id, tipo_usuario, pagina_acessada, data_acesso) VALUES (?, ?, ?, NOW())");
        $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 em ver-candidato.php: " . $e_log->getMessage());
    }
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Perfil do Candidato: <?php echo $candidato ? htmlspecialchars($candidato['nome']) : 'Não Encontrado'; ?> - 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">
    <style>
        /* Seus estilos CSS originais (mantidos para brevidade, mas idealmente externos) com adaptações para Bootstrap 5 */
        body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background-color: #f8f9fa; }
        .container-main { max-width: 800px; margin: 20px auto; background: white; padding: 30px; border-radius: 10px; box-shadow: 0 0 15px rgba(0,0,0,0.1); }
        .profile-header { text-align: center; margin-bottom: 30px; }
        .profile-header h1 { color: #12929e; font-size: 2rem; font-weight: 600; margin-bottom: 5px; }
        .profile-header .text-muted { font-size: 1rem; }
        .info-section h2 { color: #343a40; border-bottom: 2px solid #12929e; padding-bottom: 10px; margin-top: 30px; margin-bottom: 20px; font-size: 1.5rem; font-weight: 500; }
        .info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
        .info-item { margin-bottom: 15px; background-color: #f8f9fa; padding: 10px 15px; border-radius: 5px; border: 1px solid #e9ecef;}
        .info-label { font-weight: bold; display: block; margin-bottom: 3px; color: #495057; font-size: 0.9rem; }
        .info-value { color: #212529; font-size: 1rem; }
        .curriculum-section { margin: 25px 0; padding: 20px; background-color: #e9f7f6; border-radius: 8px; text-align:center;}
        .curriculum-btn { padding: 10px 25px; font-size: 1rem; text-decoration: none; border-radius: 50rem; display: inline-flex; align-items: center; gap: 8px; border: none; cursor: pointer; font-weight:500; }
        .curriculum-btn i { font-size: 1.1rem; }
        .curriculum-btn.available { background-color: #28a745; color: white; }
        .curriculum-btn.available:hover { background-color: #218838; }
        .curriculum-btn.unavailable { background-color: #e0e0e0; color: #757575; cursor: not-allowed; }
        .link-selflix { color: #dc3545; font-weight: bold; } .link-selflix:hover { color: #c82333; }
        .actions-bar { display: flex; justify-content: center; align-items: center; margin-top: 30px; }
        .btn-back { background-color: #6c757d; color: white; } .btn-back:hover{background-color: #5a6268; color:white;}
    </style>
</head>
<body>
    <?php include 'menu-paineis.php'; // Inclui o menu de navegação global ?>

    <div class="container-main">
        <?php if ($mensagem_erro_pagina): ?>
            <div class="alert alert-danger text-center">
                <i class="fas fa-exclamation-triangle fa-2x mb-2"></i><br>
                <?php echo htmlspecialchars($mensagem_erro_pagina); ?>
            </div>
            <div class="text-center">
                <a href="listar-candidatos.php" class="btn btn-primary btn-back"><i class="fas fa-arrow-left"></i> Voltar para Lista de Candidatos</a>
            </div>
        <?php elseif ($candidato): ?>
            <div class="profile-header">
                <h1><i class="fas fa-user-tie"></i> <?php echo htmlspecialchars($candidato['nome']); ?></h1>
                <p class="text-muted">ID do Candidato: <?php echo htmlspecialchars($candidato['id']); ?></p>
            </div>

            <div class="curriculum-section">
                <?php
                $curriculo_path_display = null;
                if (!empty($candidato['curriculo'])) {
                    $cv_path = $candidato['curriculo'];
                    // Tenta normalizar o caminho se ele não for uma URL e não começar com /
                    if (strpos($cv_path, 'http') !== 0 && strpos($cv_path, '/') !== 0) {
                        // Assume que está na pasta de uploads configurada ou em 'uploads/curriculos/'
                        $base_cv_dir = rtrim(($_ENV['UPLOAD_DIR_CURRICULOS'] ?? 'uploads/curriculos'), '/');
                        $cv_path_check = $_SERVER['DOCUMENT_ROOT'] . '/' . $base_cv_dir . '/' . basename($cv_path);
                        if (file_exists($cv_path_check)) {
                            $curriculo_path_display = '/' . $base_cv_dir . '/' . basename($cv_path);
                        } else {
                            // Tenta o caminho direto do BD se ele já contiver 'uploads/'
                            $cv_path_direct_check = $_SERVER['DOCUMENT_ROOT'] . '/' . ltrim($cv_path, '/');
                             if (strpos($cv_path, 'uploads/') !== false && file_exists($cv_path_direct_check)) {
                                $curriculo_path_display = '/' . ltrim($cv_path, '/');
                            } else {
                                error_log("CV não encontrado para candidato {$candidato['id']}: {$cv_path} (Tentativa: {$cv_path_check} ou {$cv_path_direct_check})");
                            }
                        }
                    } elseif (strpos($cv_path, 'http') === 0) { // É uma URL completa
                        $curriculo_path_display = $cv_path;
                    } elseif (file_exists($_SERVER['DOCUMENT_ROOT'] . $cv_path)) { // Caminho absoluto a partir da raiz do site
                         $curriculo_path_display = $cv_path;
                    } else {
                         error_log("CV não encontrado para candidato {$candidato['id']} (caminho do BD): {$cv_path}");
                    }
                }
                ?>
                <?php if ($curriculo_path_display): ?>
                    <a href="<?php echo htmlspecialchars($curriculo_path_display); ?>" 
                       target="_blank" class="btn curriculum-btn available">
                        <i class="fas fa-file-pdf"></i> Visualizar/Baixar Currículo
                    </a>
                <?php else: ?>
                    <button class="btn curriculum-btn unavailable" disabled>
                        <i class="fas fa-file-excel"></i> Currículo não disponível
                    </button>
                <?php endif; ?>
            </div>

            <div class="info-section">
                <h2><i class="fas fa-id-card"></i> Informações de Contato</h2>
                <div class="info-grid">
                    <div class="info-item">
                        <span class="info-label">E-mail:</span>
                        <span class="info-value"><?php echo htmlspecialchars($candidato['email']); ?></span>
                    </div>
                    <div class="info-item">
                        <span class="info-label">Celular:</span>
                        <span class="info-value"><?php echo htmlspecialchars($candidato['celular'] ?? 'Não informado'); ?></span>
                    </div>
                    <div class="info-item">
                        <span class="info-label">Localização:</span>
                        <span class="info-value"><?php echo htmlspecialchars($candidato['cidade']); ?> / <?php echo htmlspecialchars($candidato['estado']); ?></span>
                    </div>
                </div>
            </div>

            <div class="info-section">
                <h2><i class="fas fa-bullseye"></i> Preferências Profissionais</h2>
                <div class="info-grid">
                     <div class="info-item">
                        <span class="info-label">Segmento de Interesse:</span>
                        <span class="info-value"><?php echo htmlspecialchars($candidato['tipo_vaga'] ?? 'Não informado'); ?></span>
                    </div>
                    <div class="info-item">
                        <span class="info-label">Cargo Pretendido:</span>
                        <span class="info-value"><?php echo htmlspecialchars($candidato['cargo_pretendido'] ?? 'Não informado'); ?></span>
                    </div>
                    <div class="info-item">
                        <span class="info-label">Pretensão Salarial:</span>
                        <span class="info-value">
                             <?php 
                                $sal_pret = $candidato['salario_pretendido'] ?? '';
                                if (is_numeric($sal_pret) && (float)$sal_pret > 0) {
                                    echo "R$ " . number_format((float)$sal_pret, 0, ',', '.');
                                } elseif (!empty($sal_pret)) {
                                    echo htmlspecialchars($sal_pret);
                                } else {
                                    echo "Não informado";
                                }
                            ?>
                        </span>
                    </div>
                     <?php if (!empty($candidato['link_selflix'])): ?>
                        <div class="info-item">
                            <span class="info-label">Vídeo Selflix:</span>
                            <span class="info-value">
                                <a href="<?php echo htmlspecialchars($candidato['link_selflix']); ?>" target="_blank" rel="noopener noreferrer" class="link-selflix">
                                    <i class="fab fa-youtube"></i> Assistir Vídeo Apresentação
                                </a>
                            </span>
                        </div>
                    <?php endif; ?>
                </div>
            </div>

            <div class="actions-bar">
                <a href="listar-candidatos.php" class="btn btn-lg btn-back">
                    <i class="fas fa-arrow-left"></i> Voltar para Lista de Candidatos
                </a>
            </div>
        <?php else: ?>
             <?php if (!$mensagem_erro_pagina): ?>
                <div class="alert alert-warning text-center">
                    <i class="fas fa-exclamation-triangle fa-2x mb-2"></i><br>
                    Candidato não encontrado ou acesso não permitido.
                </div>
                 <div class="text-center">
                    <a href="listar-candidatos.php" class="btn btn-primary btn-back"><i class="fas fa-arrow-left"></i> Voltar para Lista de Candidatos</a>
                </div>
            <?php endif; ?>
        <?php endif; ?>
    </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>