<?php
/**
 * Selflix Vagas - Gestão de Candidatos
 * Versão: Filtros Avançados + Vídeo Currículo (link_selflix)
 */

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

require_once dirname(__DIR__) . '/conexao.php';
require_once dirname(__DIR__) . '/env.php';

if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Empresas') {
    header("Location: ../login.php"); exit();
}

$empresa_id = $_SESSION['id'];

try {
    // Consulta SQL corrigida para buscar link_selflix diretamente da tabela candidatos (cand)
    $sql = "SELECT 
                c.id AS candidatura_id, 
                c.vaga_id, 
                c.data_candidatura, 
                c.tipo_anuncio,
                cand.id AS candidato_id,
                cand.nome AS nome_candidato, 
                cand.cidade AS cidade_candidato, 
                cand.estado AS estado_candidato,
                cand.celular AS celular_candidato,
                cand.link_selflix, 
                COALESCE(ap.titulo_vaga, ag.titulo_vaga, 'Vaga sem Título') AS titulo_vaga,
                age.id AS agendamento_id,
                age.status AS status_entrevista, 
                age.data_hora_entrevista,
                age.motivo_reagendamento,
                (SELECT caminho_arquivo FROM CandidatoCurriculos WHERE candidato_id = cand.id ORDER BY data_upload DESC LIMIT 1) AS curriculo_path
            FROM candidaturas c
            INNER JOIN Candidatos cand ON c.candidato_id = cand.id
            LEFT JOIN anuncio_pago ap ON (c.vaga_id = ap.id AND (c.tipo_anuncio IN ('pago', 'paga')))
            LEFT JOIN anuncio_gratuito ag ON (c.vaga_id = ag.id AND (c.tipo_anuncio IN ('gratuito', 'gratuita')))
            LEFT JOIN Agendamentos age ON (c.vaga_id = age.vaga_id AND c.candidato_id = age.candidato_id)
            WHERE 
                ( (c.tipo_anuncio IN ('pago', 'paga') AND ap.empresa_id = :emp_id) 
                  OR 
                  (c.tipo_anuncio IN ('gratuito', 'gratuita') AND ag.id_empresa = :emp_id2) )
            ORDER BY c.data_candidatura DESC";

    $stmt = $pdo->prepare($sql);
    $stmt->execute([':emp_id' => $empresa_id, ':emp_id2' => $empresa_id]);
    $detalhesCandidaturas = $stmt->fetchAll(PDO::FETCH_ASSOC);

} catch (PDOException $e) {
    die("Erro no Banco de Dados: " . $e->getMessage());
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gestão de Candidatos | 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; }
        
        .filter-section { background: #fdfdfd; border-bottom: 1px solid #eee; padding: 20px; }
        .form-select-sm, .form-control-sm { border-radius: 8px; border: 1px solid #ddd; }
        
        @media (min-width: 769px) {
            table th:first-child, table td:first-child { padding-left: 20px !important; }
        }

        .btn-group-actions { border: 1px solid #dee2e6; border-radius: 10px; overflow: hidden; display: inline-flex; background-color: #f8f9fa; }
        .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: transparent; text-decoration: none; }
        .btn-group-actions .btn:last-child { border-right: none; }
        .btn-group-actions .btn.disabled { opacity: 0.5; cursor: not-allowed; color: #999 !important; pointer-events: none; }

        .tag-tipo { font-size: 0.65rem; font-weight: 800; text-transform: uppercase; padding: 4px 10px; border-radius: 50px; background: #eee; color: #777; }
        
        .icon-wa { color: #25d366; } 
        .icon-cv { color: #e74c3c; } 
        .icon-camera { color: #6c5ce7; } /* Cor roxa para o vídeo currículo */
        .icon-calendar { color: var(--selflix-teal); }
        .icon-check { color: #2ecc71; } 
        .icon-x { color: #e74c3c; } 
        .icon-user-cancel { color: #e74c3c; }

        @media (max-width: 768px) {
            .wrapper { padding: 15px !important; }
            .main-card { background: transparent; box-shadow: none; border: none; }
            .filter-section { border-radius: 15px; margin-bottom: 15px; border: 1px solid #eee; }
            thead { display: none; }
            table, tbody, tr, td { display: block; width: 100%; }
            tr { background: #fff !important; margin-bottom: 20px; border-radius: 15px; padding: 20px; box-shadow: 0 4px 15px rgba(0,0,0,0.06); border: 1px solid #eee; }
            td { border: none !important; padding: 8px 0 !important; }
            td:not(.td-acoes)::before { content: attr(data-label); display: block; font-size: 0.65rem; font-weight: 800; color: #999; text-transform: uppercase; margin-bottom: 2px; }
            .btn-group-actions { display: flex; flex-direction: column; width: 100%; }
            .btn-group-actions .btn { border-right: none; border-bottom: 1px solid #eee; justify-content: flex-start; padding: 14px; }
        }
    </style>
</head>
<body>

    <?php include_once dirname(__DIR__) . '/menu.php'; ?>

    <div class="container wrapper">
        <div class="card main-card">
            <div class="card-header p-4 border-bottom d-flex justify-content-between align-items-center bg-white">
                <h3 class="mb-0" style="color: var(--selflix-teal); font-weight: 700;">
                    <i class="fas fa-users-rectangle me-2"></i> Candidatos
                </h3>
                <a href="../painel-de-gestao-empresa.php" class="btn btn-outline-secondary btn-sm rounded-pill px-4">Painel</a>
            </div>

            <div class="filter-section">
                <div class="row g-3">
                    <div class="col-md-4">
                        <label class="small fw-bold text-muted mb-1">Pesquisar</label>
                        <div class="input-group input-group-sm">
                            <span class="input-group-text bg-white"><i class="fas fa-search text-muted"></i></span>
                            <input type="text" id="filterText" class="form-control" placeholder="Nome, cidade ou vaga...">
                        </div>
                    </div>
                    <div class="col-md-3">
                        <label class="small fw-bold text-muted mb-1">Status da Entrevista</label>
                        <select id="filterStatus" class="form-select form-select-sm">
                            <option value="">Todos os Status</option>
                            <option value="Inscrito">Somente Inscritos (Sem agenda)</option>
                            <option value="Agendado">Agendados / Pendentes</option>
                            <option value="Reagendamento">Solicitou Reagendamento</option>
                            <option value="Cancelado">Candidaturas Canceladas</option>
                        </select>
                    </div>
                    <div class="col-md-3">
                        <label class="small fw-bold text-muted mb-1">Tipo de Anúncio</label>
                        <select id="filterTipo" class="form-select form-select-sm">
                            <option value="">Todos os Tipos</option>
                            <option value="pago">Anúncio Pago</option>
                            <option value="gratuito">Anúncio Gratuito</option>
                        </select>
                    </div>
                    <div class="col-md-2 d-flex align-items-end">
                        <div class="small text-muted mb-2 w-100 text-end">
                            <span id="counter"><?= count($detalhesCandidaturas) ?></span> encontrados
                        </div>
                    </div>
                </div>
            </div>

            <div class="table-responsive">
                <table class="table align-middle mb-0" id="candidateTable">
                    <thead class="table-light">
                        <tr>
                            <th>Candidato</th>
                            <th>Vaga</th>
                            <th>Situação</th>
                            <th>Ações</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($detalhesCandidaturas as $item): 
                            $num_limpo = preg_replace('/\D/', '', $item['celular_candidato'] ?? '');
                            $has_cv = !empty($item['curriculo_path']);
                            $has_video = !empty($item['link_selflix']); // Regra do Vídeo Currículo
                            $status = $item['status_entrevista'] ?? '';
                            $ja_agendado = !empty($item['data_hora_entrevista']);
                            $solicitou_reagendamento = !empty($item['motivo_reagendamento']);
                            $is_cancelado = (strtolower($status) == 'cancelado' || strtolower($status) == 'cancelada');
                            
                            $data_status = $is_cancelado ? 'Cancelado' : ($solicitou_reagendamento ? 'Reagendamento' : ($ja_agendado ? 'Agendado' : 'Inscrito'));
                            $data_tipo = (strpos(strtolower($item['tipo_anuncio']), 'pago') !== false) ? 'pago' : 'gratuito';
                        ?>
                            <tr data-status="<?= $data_status ?>" data-tipo="<?= $data_tipo ?>">
                                <td data-label="Candidato">
                                    <div class="fw-bold text-dark"><?= htmlspecialchars($item['nome_candidato']) ?></div>
                                    <div class="text-muted small"><?= htmlspecialchars($item['cidade_candidato']) ?>/<?= $item['estado_candidato'] ?></div>
                                </td>
                                
                                <td data-label="Vaga">
                                    <div class="small fw-bold mb-1 text-dark"><?= htmlspecialchars($item['titulo_vaga']) ?></div>
                                    <span class="tag-tipo"><?= $item['tipo_anuncio'] ?></span>
                                </td>
                                
                                <td data-label="Situação">
                                    <?php if ($ja_agendado): ?>
                                        <div class="fw-bold small mb-1 <?= ($status == 'Pendente' || $solicitou_reagendamento) ? 'text-warning' : ($is_cancelado ? 'text-danger' : 'text-primary') ?>">
                                            <?= $solicitou_reagendamento ? 'REAGENDAMENTO SOLICITADO' : strtoupper($status) ?>
                                        </div>
                                        <div class="small text-muted"><i class="far fa-calendar-alt me-1"></i> <?= date('d/m/Y H:i', strtotime($item['data_hora_entrevista'])) ?></div>
                                    <?php else: ?>
                                        <span class="text-muted small">Inscrito em: <?= date('d/m/Y', strtotime($item['data_candidatura'])) ?></span>
                                    <?php endif; ?>
                                </td>
                                
                                <td class="td-acoes">
                                    <div class="btn-group-actions">
                                        <?php if (!$is_cancelado): ?>
                                            
                                            <!-- AGENDAR -->
                                            <?php if ($solicitou_reagendamento || $status === 'Pendente'): ?>
                                                <button type="button" class="btn btn-decisao" data-id="<?= $item['agendamento_id'] ?>" data-acao="confirmar"><i class="fas fa-check-circle icon-check"></i> Aceitar</button>
                                                <button type="button" class="btn btn-decisao" data-id="<?= $item['agendamento_id'] ?>" data-acao="recusar"><i class="fas fa-times-circle icon-x"></i> Recusar</button>
                                            <?php elseif (!$ja_agendado): ?>
                                                <button type="button" class="btn btn-agendar" data-id-cand="<?= $item['candidato_id'] ?>" data-id-vaga="<?= $item['vaga_id'] ?>" data-tipo-vaga="<?= $item['tipo_anuncio'] ?>" data-nome="<?= htmlspecialchars($item['nome_candidato']) ?>"><i class="fas fa-calendar-alt icon-calendar"></i> Agendar</button>
                                            <?php endif; ?>

                                            <!-- WHATSAPP -->
                                            <?php if($num_limpo): ?>
                                                <a href="https://wa.me/55<?= $num_limpo ?>" target="_blank" class="btn"><i class="fab fa-whatsapp icon-wa"></i> WhatsApp</a>
                                            <?php endif; ?>

                                            <!-- CV -->
                                            <?php if($has_cv): ?>
                                                <a href="../<?= $item['curriculo_path'] ?>" target="_blank" class="btn"><i class="fas fa-file-pdf icon-cv"></i> CV</a>
                                            <?php endif; ?>

                                            <!-- VÍDEO CURRÍCULO (link_selflix) -->
                                            <?php if($has_video): ?>
                                                <a href="<?= htmlspecialchars($item['link_selflix']) ?>" target="_blank" class="btn" title="Ver Vídeo Currículo">
                                                    <i class="fas fa-camera icon-camera"></i> Vídeo
                                                </a>
                                            <?php else: ?>
                                                <button type="button" class="btn disabled" title="Sem vídeo currículo">
                                                    <i class="fas fa-camera text-muted"></i> Vídeo
                                                </button>
                                            <?php endif; ?>

                                            <!-- CANCELAR -->
                                            <button type="button" class="btn btn-cancelar-candidatura" data-id="<?= $item['candidatura_id'] ?>" data-nome="<?= htmlspecialchars($item['nome_candidato']) ?>"><i class="fas fa-user-times icon-user-cancel"></i> Cancelar</button>
                                        
                                        <?php else: ?>
                                            <span class="btn disabled text-danger fw-bold"><i class="fas fa-ban"></i> Cancelada</span>
                                        <?php endif; ?>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    <!-- Modal Agendar (Mesma estrutura original) -->
    <div class="modal fade" id="modalAgendar" tabindex="-1">
        <div class="modal-dialog modal-dialog-centered">
            <div class="modal-content" style="border-radius: 15px;">
                <div class="modal-header border-0">
                    <h5 class="modal-title fw-bold" style="color:var(--selflix-teal)">Agendar Entrevista</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
                </div>
                <form id="formAgendamento">
                    <div class="modal-body">
                        <input type="hidden" name="candidato_id" id="ag_candidato_id">
                        <input type="hidden" name="vaga_id" id="ag_vaga_id">
                        <input type="hidden" name="tipo_anuncio" id="ag_tipo_vaga">
                        <p class="small text-muted">Candidato: <b id="nome_exibicao" class="text-dark"></b></p>
                        <div class="mb-3">
                            <label class="form-label small fw-bold">Data e Hora Sugerida</label>
                            <input type="datetime-local" name="data_hora" class="form-control" required>
                        </div>
                        <div class="mb-3">
                            <label class="form-label small fw-bold">Link ou Observações</label>
                            <textarea name="mensagem" class="form-control" rows="3" placeholder="Ex: Link do Meet ou Local físico"></textarea>
                        </div>
                    </div>
                    <div class="modal-footer border-0">
                        <button type="submit" class="btn btn-primary w-100" style="background:var(--selflix-teal); border:none; padding: 12px; font-weight: 600;">Confirmar Agendamento</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() {
            function aplicarFiltros() {
                var txt = $("#filterText").val().toLowerCase();
                var status = $("#filterStatus").val();
                var tipo = $("#filterTipo").val();
                var visiveis = 0;

                $("#candidateTable tbody tr").each(function() {
                    var row = $(this);
                    var showByTxt = row.text().toLowerCase().indexOf(txt) > -1;
                    var showByStatus = status === "" || row.attr("data-status") === status;
                    var showByTipo = tipo === "" || row.attr("data-tipo") === tipo;

                    if (showByTxt && showByStatus && showByTipo) {
                        row.show();
                        visiveis++;
                    } else {
                        row.hide();
                    }
                });
                $("#counter").text(visiveis);
            }

            $("#filterText").on("keyup", aplicarFiltros);
            $("#filterStatus, #filterTipo").on("change", aplicarFiltros);

            const modalAgendar = new bootstrap.Modal('#modalAgendar');
            $('.btn-agendar').on('click', function() {
                const btn = $(this);
                $('#ag_candidato_id').val(btn.data('id-cand'));
                $('#ag_vaga_id').val(btn.data('id-vaga'));
                $('#ag_tipo_vaga').val(btn.data('tipo-vaga'));
                $('#nome_exibicao').text(btn.data('nome'));
                modalAgendar.show();
            });

            $('#formAgendamento').submit(function(e) {
                e.preventDefault();
                $.post('../agenda/agendar_entrevista.php', $(this).serialize(), function(res) {
                    if(res.success) { Swal.fire('Sucesso!', res.message, 'success').then(() => location.reload()); }
                    else { Swal.fire('Erro', res.message, 'error'); }
                }, 'json');
            });

            $(document).on('click', '.btn-cancelar-candidatura', function() {
                const cand_id = $(this).data('id');
                const nome = $(this).data('nome');
                Swal.fire({
                    title: 'Cancelar Candidatura?',
                    text: `Deseja remover ${nome} desta vaga?`,
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#e74c3c',
                    confirmButtonText: 'Sim, cancelar'
                }).then((result) => {
                    if (result.isConfirmed) {
                        $.post('cancelar_candidatura.php', { id: cand_id }, function(res) {
                            if(res.success) { location.reload(); }
                        }, 'json');
                    }
                });
            });

            $(document).on('click', '.btn-decisao', function() {
                const id = $(this).data('id');
                const acao = $(this).data('acao');
                $.post('../agenda/decisao_empresa.php', { agendamento_id: id, acao: acao }, function(res) {
                    if(res.success) { location.reload(); }
                }, 'json');
            });
        });
    </script>
</body>
</html>