<?php
/**
 * Selflix Vagas - Listagem de Candidaturas (SaaS Ready)
 * Refatorado para garantir compatibilidade com ENUM e variações de tipo_anuncio.
 */
if (session_status() == PHP_SESSION_NONE) { 
    session_start(); 
}

// Inclusão de dependências com caminhos absolutos baseados no diretório atual
require_once __DIR__ . '/../conexao.php';
require_once __DIR__ . '/../env.php';

// Verificação rigorosa de acesso
if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Candidatos') {
    header("Location: ../login.php"); 
    exit();
}

$candidato_id = (int)$_SESSION['id'];

try {
    /**
     * QUERY OTIMIZADA:
     * 1. Utilizamos LOWER() e LIKE para capturar 'pago', 'paga', 'PAGO' de forma unificada.
     * 2. COALESCE garante que o título da vaga nunca retorne vazio se o anúncio existir.
     */
    $sql = "SELECT 
                c.id AS candidatura_id, 
                c.vaga_id, 
                c.data_candidatura,
                c.tipo_anuncio,
                COALESCE(ap.titulo_vaga, ag.titulo_vaga, 'Vaga não identificada') AS titulo_vaga,
                age.id AS agendamento_id, 
                age.data_hora_entrevista, 
                age.status AS status_entrevista,
                age.mensagem AS msg_convite, 
                COALESCE(age.motivo_reagendamento, '') AS msg_reagendar,
                COALESCE(age.justificativa_cancelamento, '') AS msg_cancelar
            FROM candidaturas c
            LEFT JOIN anuncio_pago ap ON (c.vaga_id = ap.id AND LOWER(c.tipo_anuncio) LIKE 'pag%')
            LEFT JOIN anuncio_gratuito ag ON (c.vaga_id = ag.id AND LOWER(c.tipo_anuncio) LIKE 'grat%')
            LEFT JOIN Agendamentos age ON (c.vaga_id = age.vaga_id AND c.candidato_id = age.candidato_id)
            WHERE c.candidato_id = :id_cand
            ORDER BY c.data_candidatura DESC";

    $stmt = $pdo->prepare($sql);
    $stmt->execute([':id_cand' => $candidato_id]);
    $minhasCandidaturas = $stmt->fetchAll(PDO::FETCH_ASSOC);

} catch (PDOException $e) { 
    error_log("Erro Crítico Selflix (Listagem): " . $e->getMessage());
    die("Desculpe, ocorreu um erro ao carregar suas candidaturas. Tente novamente em alguns minutos."); 
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Minhas Candidaturas | Selflix</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.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <style>
        :root { --selflix-teal: #12929e; }
        body { background-color: #f8f9fa; font-family: 'Segoe UI', sans-serif; color: #333; }
        .wrapper { padding: 30px 0; }
        .main-card { border-radius: 15px; border: none; box-shadow: 0 5px 20px rgba(0,0,0,0.05); background: #fff; overflow: hidden; }
        
        .btn-header-selflix { 
            color: #6c757d !important; 
            border: 1px solid #ced4da !important; 
            background-color: #fff !important; 
            text-decoration: none; 
            font-size: 0.85rem;
        }
        .btn-header-selflix:hover { color: var(--selflix-teal) !important; border-color: var(--selflix-teal) !important; }
        
        .card-header-selflix { padding: 25px; border-bottom: 1px solid #dee2e6; display: flex; justify-content: space-between; align-items: center; background-color: #fff; }
        
        .btn-group-actions { border: 1px solid #dee2e6; border-radius: 10px; overflow: hidden; display: inline-flex; background-color: #fff; }
        .btn-group-actions .btn { 
            border: none; 
            border-right: 1px solid #dee2e6; 
            padding: 10px 14px; 
            font-size: 0.85rem; 
            font-weight: 600; 
            display: flex; 
            align-items: center; 
            gap: 6px; 
            color: #444; 
            background: #fff !important; 
        }
        .btn-group-actions .btn:last-child { border-right: none; }

        .badge-custom { padding: 6px 12px; border-radius: 50px; font-weight: 700; font-size: 0.65rem; text-transform: uppercase; }
        .bg-presenca { background-color: var(--selflix-teal); color: #fff; }
        
        @media (max-width: 768px) {
            .card-header-selflix { flex-direction: column; gap: 15px; text-align: center; }
            thead { display: none; }
            table, tbody, tr, td { display: block; width: 100%; }
            tr { margin-bottom: 20px; border: 1px solid #eee; border-radius: 15px; padding: 15px; background: #fff; box-shadow: 0 4px 10px rgba(0,0,0,0.03); }
            td { text-align: left; padding: 10px 0; border: none; }
            td::before { content: attr(data-label); display: block; font-size: 0.65rem; font-weight: 800; color: #999; text-transform: uppercase; margin-bottom: 4px; }
            .btn-group-actions { width: 100%; flex-direction: column; }
            .btn-group-actions .btn { border-right: none; border-bottom: 1px solid #eee; width: 100%; justify-content: flex-start; }
        }
    </style>
</head>
<body>

    <?php include_once __DIR__ . '/../menu-paineis.php'; ?>

    <div class="container wrapper">
        <div class="card main-card">
            <div class="card-header-selflix">
                <h3 class="mb-0"><i class="fas fa-briefcase me-2" style="color:var(--selflix-teal)"></i> Minhas Candidaturas</h3>
                <div class="d-flex gap-2">
                    <a href="https://selflix.com.br/selflix-video-curriculo/" target="_blank" class="btn btn-header-selflix rounded-pill px-4">Vídeo Currículo</a>
                    <a href="../painel-de-gestao-candidato.php" class="btn btn-header-selflix rounded-pill px-4">Painel</a>
                </div>
            </div>

            <div class="table-responsive">
                <table class="table align-middle mb-0">
                    <thead class="table-light"> 
                        <tr>
                            <th class="ps-4">Vaga</th>
                            <th>Inscrição</th>
                            <th>Status / Entrevista</th>
                            <th class="text-center">Ações</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php if (empty($minhasCandidaturas)): ?>
                            <tr>
                                <td colspan="4" class="text-center py-5">
                                    <div class="py-4">
                                        <i class="fas fa-search mb-3 opacity-25" style="font-size: 3rem;"></i>
                                        <p class="text-muted">Você ainda não possui candidaturas registradas.</p>
                                        <a href="../vagas.php" class="btn btn-sm btn-primary rounded-pill" style="background:var(--selflix-teal); border:none;">Explorar Vagas</a>
                                    </div>
                                </td>
                            </tr>
                        <?php else: ?>
                            <?php foreach ($minhasCandidaturas as $item): 
                                $status = trim($item['status_entrevista'] ?? '');
                                $ag_id = $item['agendamento_id'];
                                $temMsg = (!empty($item['msg_convite']) || !empty($item['msg_reagendar']) || !empty($item['msg_cancelar']));
                            ?>
                                <tr>
                                    <td data-label="Vaga" class="ps-4">
                                        <div class="fw-bold text-dark"><?= htmlspecialchars($item['titulo_vaga']) ?></div>
                                        <small class="text-muted text-uppercase" style="font-size: 0.7rem;"><?= htmlspecialchars($item['tipo_anuncio']) ?></small>
                                    </td>
                                    <td data-label="Inscrição">
                                        <div class="text-muted small"><?= date('d/m/Y', strtotime($item['data_candidatura'])) ?></div>
                                    </td>
                                    <td data-label="Status / Entrevista">
                                        <?php if ($ag_id): ?>
                                            <div class="fw-bold small mb-1"><?= date('d/m/Y H:i', strtotime($item['data_hora_entrevista'])) ?></div>
                                            <span class="badge-custom <?= (in_array($status, ['Aceito', 'Confirmado'])) ? 'bg-presenca' : (($status === 'Cancelado') ? 'bg-danger text-white' : 'bg-light border text-muted') ?>">
                                                <?= htmlspecialchars($status) ?>
                                            </span>
                                        <?php else: ?>
                                            <span class="text-muted small fst-italic">Em Triagem</span>
                                        <?php endif; ?>
                                    </td>
                                    <td data-label="Ações" class="text-md-center">
                                        <div class="btn-group-actions">
                                            <?php if ($temMsg): ?>
                                                <button type="button" class="btn" onclick="verMensagens('<?= addslashes($item['msg_convite']) ?>', '<?= addslashes($item['msg_reagendar']) ?>', '<?= addslashes($item['msg_cancelar']) ?>')">
                                                    <i class="far fa-comment-dots text-info"></i> Mensagem
                                                </button>
                                            <?php endif; ?>

                                            <?php if ($ag_id && $status !== 'Cancelado'): ?>
                                                <?php if (!in_array($status, ['Aceito', 'Confirmado'])): ?>
                                                    <button type="button" class="btn btn-trigger" data-id="<?= $ag_id ?>" data-tipo="confirmar" data-vaga="<?= htmlspecialchars($item['titulo_vaga']) ?>">
                                                        <i class="fas fa-check text-success"></i> Confirmar
                                                    </button>
                                                <?php endif; ?>
                                                <button type="button" class="btn btn-trigger" data-id="<?= $ag_id ?>" data-tipo="reagendar" data-vaga="<?= htmlspecialchars($item['titulo_vaga']) ?>">
                                                    <i class="fas fa-clock text-warning"></i> Reagendar
                                                </button>
                                            <?php endif; ?>
                                        </div>
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    <!-- Modal Unificado de Ações -->
    <div class="modal fade" id="modalAcao" tabindex="-1">
        <div class="modal-dialog modal-dialog-centered">
            <div class="modal-content border-0" style="border-radius:15px;">
                <div class="modal-header">
                    <h5 class="modal-title fw-bold" id="modalTitle">Ação</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
                </div>
                <form id="formAcaoAgendamento">
                    <div class="modal-body">
                        <input type="hidden" name="agendamento_id" id="modal_id">
                        <p id="modalVagaTexto" class="fw-bold mb-3 small text-muted"></p>
                        
                        <div id="msgConfirmar" class="alert alert-success d-none">Deseja confirmar sua presença nesta entrevista?</div>
                        
                        <div id="campoData" class="mb-3 d-none">
                            <label class="form-label fw-bold small">Sugerir Nova Data/Hora:</label>
                            <input type="datetime-local" name="data_hora" class="form-control" id="input_data">
                        </div>
                        
                        <div id="campoMotivo" class="mb-3 d-none">
                            <label class="form-label fw-bold small" id="labelMotivo">Justificativa:</label>
                            <textarea class="form-control" name="mensagem" id="txt_msg" rows="3" placeholder="Escreva aqui..."></textarea>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-primary w-100 py-3" id="btnSubmitModal" style="background:var(--selflix-teal); border:none; border-radius:10px; font-weight:bold;">Enviar Resposta</button>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
    <script>
    $(document).ready(function() {
        const modalAcao = new bootstrap.Modal('#modalAcao');
        
        $('.btn-trigger').click(function() {
            const btn = $(this);
            const tipo = btn.data('tipo');
            $('#modal_id').val(btn.data('id'));
            $('#modalVagaTexto').text('Vaga: ' + btn.data('vaga'));
            $('#campoData, #msgConfirmar, #campoMotivo').addClass('d-none');
            
            if(tipo === 'confirmar') {
                $('#modalTitle').text('Confirmar Presença');
                $('#msgConfirmar').removeClass('d-none');
                $('#formAcaoAgendamento').attr('action', '../agenda/processar_resposta_entrevista.php');
            } else if(tipo === 'reagendar') {
                $('#modalTitle').text('Solicitar Reagendamento');
                $('#campoData, #campoMotivo').removeClass('d-none');
                $('#formAcaoAgendamento').attr('action', '../agenda/propor_reagendamento.php');
            }
            modalAcao.show();
        });

        $('#formAcaoAgendamento').submit(function(e) {
            e.preventDefault();
            const btnSubmit = $('#btnSubmitModal');
            const originalText = btnSubmit.text();
            
            btnSubmit.prop('disabled', true).html('<i class="fas fa-spinner fa-spin"></i> Processando...');

            $.ajax({
                url: $(this).attr('action'),
                type: 'POST',
                data: $(this).serialize(),
                dataType: 'json',
                success: function(res) {
                    if(res.success) {
                        Swal.fire('Sucesso!', res.message, 'success').then(() => { location.reload(); });
                    } else {
                        Swal.fire('Erro', res.message, 'error');
                        btnSubmit.prop('disabled', false).text(originalText);
                    }
                },
                error: function() {
                    Swal.fire('Erro', 'Falha na comunicação com o servidor.', 'error');
                    btnSubmit.prop('disabled', false).text(originalText);
                }
            });
        });
    });

    function verMensagens(conv, reag, canc) {
        let h = "";
        if(conv) h += `<div class='text-start mb-3'><span class='badge bg-info mb-2'>Convite do Recrutador</span><div class='p-3 bg-light rounded small border'>${conv}</div></div>`;
        if(reag) h += `<div class='text-start mb-3'><span class='badge bg-warning text-dark mb-2'>Seu Reagendamento</span><div class='p-3 bg-light rounded small border'>${reag}</div></div>`;
        if(canc) h += `<div class='text-start mb-3'><span class='badge bg-danger mb-2'>Cancelamento</span><div class='p-3 bg-light rounded small border'>${canc}</div></div>`;
        Swal.fire({ title: 'Histórico de Mensagens', html: h, confirmButtonColor: '#12929e', width: '600px' });
    }
    </script>
</body>
</html>