<?php
// formulario_candidatura.php - VERSÃO FINAL E CORRIGIDA (19/06/2025)

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once 'conexao.php'; // Fornece $pdo global
require_once 'env.php';

// Verificar se o usuário (candidato) está autenticado
if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Candidatos') {
    $_SESSION['mensagem_login'] = "Você precisa estar logado como candidato para se candidatar a uma vaga.";
    $_SESSION['redirect_after_login'] = $_SERVER['REQUEST_URI'];
    header("Location: login.php");
    exit();
}

// ========= MUDANÇA 1: Capturar o tipo de anúncio da URL e ID da vaga =========
$id_candidato_logado = (int)$_SESSION['id'];
$id_vaga_param = filter_input(INPUT_GET, 'id_vaga', FILTER_VALIDATE_INT);
$tipo_anuncio_param = filter_input(INPUT_GET, 'tipo_anuncio', FILTER_SANITIZE_STRING);

// Validação dos parâmetros essenciais da URL
if (!$id_vaga_param || !in_array($tipo_anuncio_param, ['pago', 'gratuito'])) {
    $_SESSION['mensagem_candidatura'] = "Parâmetros de vaga inválidos. Por favor, selecione uma vaga corretamente.";
    $_SESSION['status_candidatura'] = "danger";
    header("Location: vagas.php"); // Redireciona para a página de vagas se os parâmetros estiverem faltando/incorretos
    exit();
}

// Gerar/verificar token CSRF para o formulário
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

$candidato_data = null;
$anuncio_data = null;
$mensagem_pagina_erro = null; // Variável para erros internos desta página, não para sessão

// Verificar se a conexão PDO está disponível
if (!isset($pdo) || !$pdo instanceof PDO) { // Ajustado para verificar a instância de PDO
    error_log("Erro crítico: conexão PDO não disponível em formulario_candidatura.php.");
    $mensagem_pagina_erro = "Erro crítico de sistema (DB). Por favor, tente novamente mais tarde.";
}

try {
    // Busca os dados do candidato logado (se $pdo estiver OK)
    if (!$mensagem_pagina_erro) { // Só executa se não houver erro crítico no DB
        $stmt_user = $pdo->prepare("SELECT id, nome, email FROM Candidatos WHERE id = ?");
        $stmt_user->execute([$id_candidato_logado]);
        $candidato_data = $stmt_user->fetch(PDO::FETCH_ASSOC);

        if (!$candidato_data) {
            // Se o candidato logado não for encontrado (ex: dado corrompido na sessão), força logout
            session_destroy();
            $_SESSION['mensagem_login'] = "Seus dados de candidato não foram encontrados. Por favor, refaça o login.";
            header("Location: login.php");
            exit();
        }

        // ========= MUDANÇA 2: Usar uma consulta específica em vez de UNION =========
        $tabela_anuncio = ($tipo_anuncio_param === 'pago') ? 'anuncio_pago' : 'anuncio_gratuito';
        
        // Colunas selecionadas devem corresponder às que você usa depois
        $sql_vaga = "SELECT id, titulo_vaga, descricao_vaga, email_para_curriculo FROM `{$tabela_anuncio}` WHERE id = ?";
        $stmt_vaga = $pdo->prepare($sql_vaga);
        $stmt_vaga->execute([$id_vaga_param]);
        $anuncio_data = $stmt_vaga->fetch(PDO::FETCH_ASSOC);

        if (!$anuncio_data) {
            $mensagem_pagina_erro = "Vaga não encontrada ou indisponível.";
        }
    }

} catch (PDOException $e) {
    error_log("Erro PDO ao carregar dados para formulário de candidatura (Vaga ID: {$id_vaga_param}, Candidato ID: {$id_candidato_logado}): " . $e->getMessage());
    $mensagem_pagina_erro = "Ocorreu um erro ao carregar os detalhes da vaga. Tente novamente.";
} catch (Exception $e) {
    error_log("Erro geral ao carregar formulário de candidatura: " . $e->getMessage());
    $mensagem_pagina_erro = $e->getMessage();
}

// Guardar os dados da vaga e do candidato na sessão se tudo deu certo, para uso no registrar_candidatura.php
// Isso evita ter que buscá-los novamente no próximo script, especialmente útil se o registrar_candidatura
// precisar de mais detalhes que não estão no formulário oculto.
if ($candidato_data && $anuncio_data) {
    $_SESSION['temp_candidatura_data'] = [
        'id_candidato' => $candidato_data['id'],
        'nome_candidato' => $candidato_data['nome'],
        'email_candidato' => $candidato_data['email'],
        'id_vaga' => $anuncio_data['id'],
        'titulo_vaga' => $anuncio_data['titulo_vaga'],
        'email_contato_vaga' => $anuncio_data['email_para_curriculo'], // Adicionado o email de contato da vaga
        'tipo_anuncio' => $tipo_anuncio_param
    ];
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Confirmar Candidatura - Selflix Vagas</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <style> 
        body {
            background-color: #f0f2f5; /* Um cinza claro de fundo */
        }
        .container {
            margin-top: 50px;
            max-width: 700px; /* Limita a largura do container para o card */
        }
        .card {
            background-color: #ffffff;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); /* Sombra mais suave */
            padding: 30px;
            border: none; /* Remove a borda padrão do card do Bootstrap se não quiser */
        }
        h1.main-title {
            color: #0d6efd;
            margin-bottom: 30px;
            text-align: center;
            font-size: 2.5rem; /* Tamanho maior para o título principal */
            font-weight: 700;
        }
        h3 {
            color: #495057;
            margin-top: 20px;
            margin-bottom: 15px;
            border-bottom: 2px solid #0d6efd; /* Linha azul destacada */
            padding-bottom: 5px;
            font-size: 1.5rem;
        }
        .alert {
            margin-bottom: 20px;
            text-align: center;
        }
        .info-item strong {
            color: #343a40; /* Cor mais escura para os labels */
            display: inline-block;
            min-width: 80px; /* Para alinhar os dois pontos */
        }
        .info-item p {
            margin-bottom: 5px; /* Espaçamento entre os itens de informação */
        }
        .job-description-box {
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 8px;
            border: 1px solid #e9ecef;
            line-height: 1.6;
            color: #555;
            max-height: 250px; /* Altura máxima para a descrição */
            overflow-y: auto; /* Adiciona scroll se o conteúdo for muito grande */
        }
        .d-grid button, .d-grid a {
            margin-top: 15px; /* Espaço acima dos botões */
        }
        .btn-primary {
            background-color: #0d6efd;
            border-color: #0d6efd;
        }
        .btn-primary:hover {
            background-color: #0b5ed7;
            border-color: #0a58ca;
        }
        .btn-outline-secondary {
            border-color: #6c757d;
            color: #6c757d;
        }
        .btn-outline-secondary:hover {
            background-color: #6c757d;
            color: #fff;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="main-title">Confirmar Candidatura</h1>

        <?php if ($mensagem_pagina_erro): ?>
            <div class="alert alert-danger"><?php echo htmlspecialchars($mensagem_pagina_erro); ?></div>
            <p class="text-center"><a href="vagas.php" class="btn btn-secondary">Voltar para Vagas</a></p>
        <?php elseif ($candidato_data && $anuncio_data): ?>
            <div class="card">
                <div class="card-body">
                    <form action="registrar_candidatura.php" method="POST">
                        <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>">
                        <input type="hidden" name="id_vaga" value="<?php echo htmlspecialchars($id_vaga_param); ?>">
                        <input type="hidden" name="tipo_anuncio_vaga" value="<?php echo htmlspecialchars($tipo_anuncio_param); ?>">
                        <input type="hidden" name="email_contato_vaga" value="<?php echo htmlspecialchars($anuncio_data['email_para_curriculo'] ?? ''); ?>">
                        <input type="hidden" name="redirect_url" value="<?php echo htmlspecialchars($_SERVER['HTTP_REFERER'] ?? 'vagas.php'); ?>">

                        <h3>Seus Dados</h3>
                        <div class="info-item">
                            <p><strong>Nome:</strong> <?php echo htmlspecialchars($candidato_data['nome']); ?></p>
                        </div>
                        <div class="info-item">
                            <p><strong>Email:</strong> <?php echo htmlspecialchars($candidato_data['email']); ?></p>
                        </div>
                        
                        <h3>Sobre a Vaga</h3>
                        <div class="info-item">
                            <p><strong>Título da Vaga:</strong> <?php echo htmlspecialchars($anuncio_data['titulo_vaga']); ?></p>
                        </div>
                        <p><strong>Descrição:</strong></p>
                        <div class="job-description-box">
                            <?php echo $anuncio_data['descricao_vaga']; // <-- LINHA CORRIGIDA ?>
                        </div>

                        <div class="d-grid gap-2 mt-4">
                            <button type="submit" class="btn btn-primary btn-lg">Confirmar e Registrar Candidatura</button>
                            <a href="<?php echo htmlspecialchars($_SERVER['HTTP_REFERER'] ?? 'vagas.php'); ?>" class="btn btn-outline-secondary">Cancelar e Voltar</a>
                        </div>
                    </form>
                </div>
            </div>
        <?php else: ?>
            <div class="card">
                <div class="card-body">
                    <div class="alert alert-warning">Não foi possível carregar os dados da vaga ou do candidato.</div>
                    <p class="text-center"><a href="vagas.php" class="btn btn-secondary">Voltar para Vagas</a></p>
                </div>
            </div>
        <?php endif; ?>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>