<?php
/**
 * Selflix Vagas - vaga-select.php
 * Regra: Limite de 30 candidatos para anúncios gratuitos + Design Refatorado
 */

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

// Includes de configuração
require_once __DIR__ . '/env.php';
require_once __DIR__ . '/conexao.php';

// Declaração de variáveis
$vaga = null;
$mensagem_erro_pagina = null;
$idVagaParaQuery = null;
$slugCompletoFromGet = trim($_GET['id'] ?? '');
$site_url = rtrim($_ENV['SITE_URL'] ?? 'https://vagas.selflix.com.br/', '/');
$logoPathFinalParaExibicao = null;

// --- Lógica de Back-end ---

// 1. Extração do ID
if (empty($slugCompletoFromGet)) {
    $mensagem_erro_pagina = "Identificador da vaga não fornecido.";
} else {
    if (preg_match('/-(\d+)$/', $slugCompletoFromGet, $matches)) {
        $idVagaParaQuery = (int)$matches[1];
    } elseif (is_numeric($slugCompletoFromGet)) {
        $idVagaParaQuery = (int)$slugCompletoFromGet;
    }
}

// 2. Busca de Dados e Identificação do Tipo (Pago ou Gratuito)
if (!$mensagem_erro_pagina && $idVagaParaQuery > 0) {
    try {
        // Tentamos primeiro na tabela de Pagos
        $sql = "SELECT ap.*, e.nome_empresa, e.logotipo as logo_empresa_tabela, 'pago' as tipo_anuncio_real 
                FROM anuncio_pago ap 
                LEFT JOIN Empresas e ON ap.empresa_id = e.id 
                WHERE ap.id = :id";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([':id' => $idVagaParaQuery]);
        $vaga = $stmt->fetch(PDO::FETCH_ASSOC);

        // Se não achou, tentamos na tabela de Gratuitos
        if (!$vaga) {
            $sqlG = "SELECT ag.*, e.nome_empresa, e.logotipo as logo_empresa_tabela, 'gratuito' as tipo_anuncio_real 
                     FROM anuncio_gratuito ag 
                     LEFT JOIN Empresas e ON ag.id_empresa = e.id 
                     WHERE ag.id = :id";
            $stmtG = $pdo->prepare($sqlG);
            $stmtG->execute([':id' => $idVagaParaQuery]);
            $vaga = $stmtG->fetch(PDO::FETCH_ASSOC);
        }

        if (!$vaga) {
            $mensagem_erro_pagina = "Vaga não encontrada ou não está mais disponível.";
        } else {
            $_SESSION['last_vaga_url'] = rtrim($site_url, '/') . '/vaga-select.php?id=' . urlencode($slugCompletoFromGet);
            
            // Lógica do logotipo
            $logo_a_usar = $vaga['logotipo'] ?? ($vaga['logo_empresa_tabela'] ?? null);
            if (!empty($logo_a_usar)) {
                $logoPathFinalParaExibicao = filter_var($logo_a_usar, FILTER_VALIDATE_URL) ? $logo_a_usar : '/' . ltrim('uploads/logo/' . basename(parse_url($logo_a_usar, PHP_URL_PATH)), '/');
                if (!filter_var($logo_a_usar, FILTER_VALIDATE_URL) && !file_exists($_SERVER['DOCUMENT_ROOT'] . $logoPathFinalParaExibicao)) {
                    $logoPathFinalParaExibicao = null;
                }
            }
        }
    } catch (PDOException $e) {
        error_log($e->getMessage());
        $mensagem_erro_pagina = "Erro técnico ao carregar os detalhes da vaga.";
    }
}

// 3. REGRA DE NEGÓCIO: Verificação do Limite de 30 para Gratuitas
$limite_atingido = false;
if ($vaga && $vaga['tipo_anuncio_real'] === 'gratuito') {
    $sqlCount = "SELECT COUNT(*) FROM candidaturas WHERE vaga_id = :v_id AND tipo_anuncio = 'gratuito'";
    $stC = $pdo->prepare($sqlCount);
    $stC->execute([':v_id' => $idVagaParaQuery]);
    if ($stC->fetchColumn() >= 30) {
        $limite_atingido = true;
    }
}

// 4. Verificação de Candidatura e Currículo
$ja_candidatou = false;
$curriculo_completo = false;
if (isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos' && $vaga) {
    $id_candidato_logado = (int)$_SESSION['id'];
    $stmt_check = $pdo->prepare("SELECT 1 FROM candidaturas WHERE candidato_id = ? AND vaga_id = ? AND tipo_anuncio = ?");
    $stmt_check->execute([$id_candidato_logado, $idVagaParaQuery, $vaga['tipo_anuncio_real']]);
    $ja_candidatou = (bool)$stmt_check->fetch();

    $stmt_cur = $pdo->prepare("SELECT (SELECT COUNT(*) FROM CandidatoCurriculos WHERE candidato_id = ?) + (SELECT COUNT(*) FROM Candidatos WHERE id = ? AND link_perfil_selflix IS NOT NULL AND link_perfil_selflix != '')");
    $stmt_cur->execute([$id_candidato_logado, $id_candidato_logado]);
    $curriculo_completo = $stmt_cur->fetchColumn() > 0;
}

// 5. Definição do Botão
$js_onclick_candidatura = 'event.preventDefault(); openLoginModal();';
if (isset($_SESSION['id']) && ($_SESSION['role'] ?? '') === 'Candidatos' && $vaga) {
    if ($ja_candidatou) {
        $js_onclick_candidatura = 'event.preventDefault();';
        $subtitulo_candidatura = "Você já se candidatou para esta vaga.";
    } elseif ($limite_atingido) {
        $js_onclick_candidatura = 'event.preventDefault();';
        $subtitulo_candidatura = "Esta vaga atingiu o limite máximo de candidatos.";
    } else {
        $js_onclick_candidatura = 'event.preventDefault(); processarCandidatura();';
        $subtitulo_candidatura = "Candidate-se agora mesmo com seu currículo ou vídeo currículo e destaque-se!";
    }
} else {
    $subtitulo_candidatura = 'Para se candidatar, faça login ou crie sua conta. Destaque-se com um vídeo currículo na Selflix!';
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <?php
    // --- Prepara as variáveis para o Open Graph ---
    $og_title = 'Confira esta Vaga na Selflix Vagas';
    $og_description = 'Encontre as melhores oportunidades de emprego e destaque-se com seu vídeo currículo na Selflix Vagas.';
    $og_url = rtrim($site_url, '/') . '/vaga-select.php?id=' . urlencode($slugCompletoFromGet);
    $og_image = htmlspecialchars($site_url) . '/img/id/logo-selflix-divulga.png';
    if (!empty($logoPathFinalParaExibicao)) {
        $og_image = filter_var($logoPathFinalParaExibicao, FILTER_VALIDATE_URL) ? $logoPathFinalParaExibicao : htmlspecialchars($site_url) . $logoPathFinalParaExibicao;
    }
    if ($vaga) {
        $og_title = htmlspecialchars($vaga['titulo_vaga']) . ' - Selflix Vagas';
    }
    ?>
    <meta property="og:title" content="<?php echo $og_title; ?>">
    <meta property="og:url" content="<?php echo htmlspecialchars($og_url); ?>">
    <meta property="og:image" content="<?php echo $og_image; ?>">
    <meta charset="UTF-8">
    <title><?php echo $vaga ? htmlspecialchars($vaga['titulo_vaga']) : 'Vaga'; ?> - 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">
    <link rel="stylesheet" href="<?php echo htmlspecialchars($site_url); ?>/css/vagas-style.css">

    <style>
        /* Estilos dos Modais (Design Refatorado) */
        .modal-overlay { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); backdrop-filter: blur(5px); align-items: center; justify-content: center; }
        .modal-content { background-color: #fefefe; padding: 20px; border: 1px solid #888; border-radius: 10px; width: 90%; max-width: 450px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); position: relative; animation: fadeIn 0.3s ease-out; text-align: center; }
        @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        .close-btn { color: #aaa; font-size: 28px; font-weight: bold; position: absolute; top: 10px; right: 15px; cursor: pointer; }
        .modal-title { color: #212529; font-size: 1.5rem; font-weight: 600; margin-bottom: 10px; }
        .modal-text { color: #6c757d; font-size: 1rem; margin-bottom: 20px; }
        .modal-btn { background-color: #007bff; color: white; padding: 12px 25px; border-radius: 5px; text-decoration: none; font-weight: bold; display: inline-flex; align-items: center; justify-content: center; transition: 0.3s; }
        .modal-btn:hover { background-color: #0056b3; color: white; }
        .spinner-border { width: 3rem; height: 3rem; margin-top: 15px; }

        /* Social Share Design */
        .social-share { text-align: center; margin-top: 25px; padding-top: 20px; border-top: 1px solid #e9ecef; }
        .social-share-title { font-size: 1rem; color: #6c757d; margin-bottom: 15px; font-weight: 500; }
        .social-share a { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0 8px; border-radius: 8px; background-color: #38b4a0; color: white; font-size: 24px; transition: 0.2s ease; text-decoration: none; }
        .social-share a:hover { transform: translateY(-3px); }
        .share-linkedin:hover { background-color: #0077b5; }
        .share-facebook:hover { background-color: #3b5998; }
        .share-whatsapp:hover { background-color: #25d366; }

        /* Modal Confirmação Verde-Azulado */
        #confirmarEnvioModal .modal-content { background-color: #38b4a0; color: #ffffff; border: none; padding: 35px 25px; box-shadow: 0 8px 20px rgba(0,0,0,0.25); border-radius: 12px; }
        #confirmarEnvioModal .close-btn { color: rgba(255, 255, 255, 0.8); top: 15px; right: 20px; font-size: 2.2rem; }
        #confirmarEnvioModal h4.modal-title { color: #ffffff !important; font-size: 1.5rem; font-weight: 700; margin-bottom: 20px; }
        #confirmarEnvioModal .modal-text-vaga { color: rgba(255, 255, 255, 0.95); font-size: 1.1rem; margin-bottom: 30px; }
        #confirmarEnvioModal .modal-btn-white { background-color: #ffffff; color: #38b4a0; border: none; width: 100%; padding: 14px 20px; font-size: 1rem; font-weight: 700; text-transform: uppercase; border-radius: 6px; transition: 0.2s; cursor: pointer; display: block; margin-bottom: 12px; }
        #confirmarEnvioModal .modal-btn-white:hover { background-color: #f8f9fa; transform: translateY(-2px); color: #2a8f7d; }
    </style>
</head>
<body>
    <?php include __DIR__ . '/menu-paineis.php'; ?>

    <div class="vaga-detalhe-container">
        <?php if ($mensagem_erro_pagina): ?>
            <div class="alert alert-danger text-center mt-4"><?php echo htmlspecialchars($mensagem_erro_pagina); ?></div>
            <div class="text-center mt-3"><a href="<?php echo htmlspecialchars($site_url); ?>/vagas.php" class="btn btn-primary">Ver Outras Vagas</a></div>
        <?php elseif ($vaga): ?>
            
            <?php if ($logoPathFinalParaExibicao): ?>
            <div class="logo-wrapper-detalhe text-center mb-3">
                <img src="<?php echo htmlspecialchars($logoPathFinalParaExibicao); ?>" alt="Logo" style="max-width: 150px; max-height: 100px; object-fit: contain;">
            </div>
            <?php endif; ?>

            <h1 class="vaga-titulo-detalhe"><?php echo htmlspecialchars($vaga['titulo_vaga']); ?></h1>
            <div class="tag-wrapper-detalhe">
                <span class="tag-vaga-select"><?php echo ($vaga['tipo_anuncio_real'] == 'pago') ? 'Vaga Select' : 'Vaga Gratuita'; ?></span>
            </div>
            
            <div class="titulos-2">Descrição da Vaga</div>
            <div class="texto-2"><p><?php echo nl2br(htmlspecialchars($vaga['descricao_vaga'] ?? 'N/D')); ?></p></div>
            
            <div class="titulos-2">Localização</div>
            <div class="texto-2"><p><?php echo htmlspecialchars($vaga['cidade_vaga'] ?? ($vaga['cidade'] ?? 'N/D')); ?></p></div>
            
            <div class="titulos-2">Remuneração</div>
            <div class="texto-2">
                <p><?php 
                    if (($vaga['salario_a_combinar'] ?? 0) == 1) echo "A combinar";
                    elseif (!empty($vaga['salario'])) echo "R$ " . number_format((float)$vaga['salario'], 2, ',', '.');
                    else echo "Não informado";
                ?></p>
            </div>

            <div class="area-candidatura">
                <div class="titulo-candidatura">Interessado(a) nesta Vaga?</div>
                <div class="subtitulo-candidatura"><?php echo htmlspecialchars($subtitulo_candidatura); ?></div>
                
                <div class="botoes-acao">
                    <?php if ($ja_candidatou): ?>
                        <button class="btn btn-cta-main btn-success disabled" style="cursor: default;"><i class="fas fa-check"></i> Candidatura Enviada</button>
                    <?php elseif ($limite_atingido): ?>
                        <div class="alert alert-warning mb-3"><i class="fas fa-lock"></i> Limite de 30 candidatos atingido.</div>
                        <button class="btn btn-secondary btn-cta-main disabled">Vaga Encerrada</button>
                    <?php else: ?>
                        <a href="#" class="btn btn-cta-main" onclick="<?php echo $js_onclick_candidatura; ?>">Candidate-se Agora</a>
                    <?php endif; ?>
                    <a href="https://videos.selflix.com.br/selflix" class="btn btn-cta-video" target="_blank"><i class="fas fa-video"></i> Crie seu Vídeo Currículo</a>
                </div>

                <div class="social-share">
                    <div class="social-share-title">Compartilhe esta vaga:</div>
                    <?php $pUrl = urlencode($og_url); ?>
                    <a href="https://www.linkedin.com/sharing/share-offsite/?url=<?php echo $pUrl; ?>" target="_blank" class="share-linkedin"><i class="fab fa-linkedin"></i></a>
                    <a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $pUrl; ?>" target="_blank" class="share-facebook"><i class="fab fa-facebook-f"></i></a>
                    <a href="https://api.whatsapp.com/send?text=Veja essa vaga: <?php echo $pUrl; ?>" target="_blank" class="share-whatsapp"><i class="fab fa-whatsapp"></i></a>
                </div>
            </div>
        <?php endif; ?>
    </div> 

    <div class="modal-overlay" id="loginModal">
        <div class="modal-content">
            <span class="close-btn" onclick="closeLoginModal()">&times;</span>
            <h4 class="modal-title">Para candidatar-se:</h4>
            <p class="modal-text">Faça login ou crie sua conta para continuar.</p>
            <div class="d-grid gap-2">
                <a href="login.php?redirect=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>" class="modal-btn">Fazer Login</a>
                <a href="cadastro_candidato.php" class="modal-btn btn-secondary">Cadastre-se Grátis</a>
            </div>
        </div>
    </div>

    <div class="modal-overlay" id="confirmarEnvioModal">
        <div class="modal-content">
            <span class="close-btn" onclick="closeConfirmarEnvioModal()">&times;</span>
            <h4 class="modal-title">Confirmar Candidatura?</h4>
            <h5 class="modal-text-vaga">Vaga: <?php echo htmlspecialchars($vaga['titulo_vaga'] ?? ''); ?></h5>
            <button class="modal-btn-white" onclick="confirmarCandidatura()">Confirmo</button>
            <button class="modal-btn-white" onclick="closeConfirmarEnvioModal()">Cancelar</button>
        </div>
    </div>

    <script>
        function openLoginModal() { document.getElementById("loginModal").style.display = 'flex'; }
        function closeLoginModal() { document.getElementById("loginModal").style.display = 'none'; }
        function openConfirmarEnvioModal() { document.getElementById("confirmarEnvioModal").style.display = 'flex'; }
        function closeConfirmarEnvioModal() { document.getElementById("confirmarEnvioModal").style.display = 'none'; }

        async function processarCandidatura() {
            const ok = <?php echo $curriculo_completo ? 'true' : 'false'; ?>;
            if(!ok) {
                alert("Seu perfil está incompleto! Adicione um currículo nas configurações.");
                return;
            }
            openConfirmarEnvioModal();
        }

        function confirmarCandidatura() {
            const form = document.createElement('form');
            form.method = 'POST';
            form.action = 'registrar_candidatura.php';
            const fields = {
                'id_vaga': '<?php echo $idVagaParaQuery; ?>',
                'tipo_anuncio_vaga': '<?php echo $vaga['tipo_anuncio_real'] ?? ""; ?>'
            };
            for (const key in fields) {
                const input = document.createElement('input');
                input.type = 'hidden'; input.name = key; input.value = fields[key];
                form.appendChild(input);
            }
            document.body.appendChild(form);
            form.submit();
        }
    </script>
</body>
</html>