<?php
session_start();

// CSRF token
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Verificar se o usuário está logado
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header('Location: login.php');
    exit;
}

// Verificar tenant_id
$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id) {
    die("Tenant não identificado.");
}

// Exibir mensagem de sucesso se existir
if (isset($_SESSION['mensagem'])) {
    echo '<div class="mensagem-sucesso">'
       . htmlspecialchars($_SESSION['mensagem'])
       . '</div>';
    unset($_SESSION['mensagem']);

    echo '<script>
            setTimeout(function() {
                document.querySelector(".mensagem-sucesso").style.display = "none";
            }, 3000);
          </script>';
}

require_once 'conexao.php';

// Obter o funil ativo
$funil_id = $_GET['funil'] ?? null;

if (!$funil_id) {
    // Tenta obter o funil padrão
    $sql = "SELECT id FROM funis WHERE tenant_id = ? AND padrao = TRUE LIMIT 1";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $funil = $result->fetch_assoc();
    $funil_id = $funil['id'] ?? null;

    // Se não encontrar padrão, pega o primeiro ativo
    if (!$funil_id) {
        $sql = "SELECT id FROM funis WHERE tenant_id = ? AND ativo = TRUE LIMIT 1";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("i", $tenant_id);
        $stmt->execute();
        $result = $stmt->get_result();
        $funil = $result->fetch_assoc();
        $funil_id = $funil['id'] ?? null;
    }

    if (!$funil_id) {
        die("Nenhum funil ativo ou padrão encontrado. <a href='funis.php'>Crie um funil primeiro</a>.");
    }
}

// Obter etapas do funil ATUAL
$etapas = [];
$sql = "SELECT * FROM etapas_funis WHERE funil_id = ? ORDER BY ordem ASC";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $funil_id);
$stmt->execute();
$result = $stmt->get_result();
while ($etapa = $result->fetch_assoc()) {
    $etapas[$etapa['id']] = $etapa;
}

// Consulta MODIFICADA para incluir atividades dos clientes
$sql = "SELECT c.*, 
               a.id as atividade_id, 
               a.nome as atividade_nome,
               a.descricao as atividade_descricao,
               a.data_agendada,
               a.concluida,
               a.data_conclusao,
               a.notificar,
               a.data_notificacao
        FROM clientes c 
        LEFT JOIN atividades a ON a.cliente_id = c.id
        LEFT JOIN etapas_funis e ON c.etapa_funil_id = e.id 
        WHERE c.tenant_id = ? AND e.funil_id = ?
        ORDER BY e.ordem ASC, c.Nome_Cliente ASC";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $tenant_id, $funil_id);
$stmt->execute();
$resultado = $stmt->get_result();

if ($resultado === false) {
    die("Erro na consulta: " . $conn->error);
}

// Organizar clientes por etapa do funil ATUAL
$clientes_por_etapa = [];
foreach ($etapas as $id => $etapa) {
    $clientes_por_etapa[$id] = [];
}

// Array temporário para agrupar atividades por cliente
$clientes_com_atividades = [];
while ($row = $resultado->fetch_assoc()) {
    $cliente_id = $row['id'];
    // Se é a primeira vez que vemos este cliente
    if (!isset($clientes_com_atividades[$cliente_id])) {
        $clientes_com_atividades[$cliente_id] = $row;
        $clientes_com_atividades[$cliente_id]['atividades'] = [];
    }
    // Se há atividade associada, adiciona ao array de atividades do cliente
    if ($row['atividade_id']) {
        $clientes_com_atividades[$cliente_id]['atividades'][] = [
            'id' => $row['atividade_id'],
            'nome' => $row['atividade_nome'],
            'descricao' => $row['atividade_descricao'],
            'data_agendada' => $row['data_agendada'],
            'concluida' => $row['concluida'],
            'data_conclusao' => $row['data_conclusao'],
            'notificar' => $row['notificar'],
            'data_notificacao' => $row['data_notificacao']
        ];
    }
}

// Distribuir clientes pelas etapas
foreach ($clientes_com_atividades as $cliente) {
    $etapa_id = $cliente['etapa_funil_id'];
    if (isset($clientes_por_etapa[$etapa_id])) {
        $clientes_por_etapa[$etapa_id][] = $cliente;
    } else {
        // Se a etapa não existir no funil atual, coloca na primeira etapa
        $primeira_etapa_id = array_key_first($etapas);
        $clientes_por_etapa[$primeira_etapa_id][] = $cliente;
    }
}

// Obter nome do funil ativo
$sql_funil = "SELECT nome FROM funis WHERE id = ?";
$stmt_funil = $conn->prepare($sql_funil);
$stmt_funil->bind_param("i", $funil_id);
$stmt_funil->execute();
$result_funil = $stmt_funil->get_result();
$funil_info = $result_funil->fetch_assoc();

// Obter lista de funis para o dropdown
$sql_funis = "SELECT id, nome FROM funis WHERE tenant_id = ? AND ativo = TRUE ORDER BY nome ASC";
$stmt_funis = $conn->prepare($sql_funis);
$stmt_funis->bind_param("i", $tenant_id);
$stmt_funis->execute();
$result_funis = $stmt_funis->get_result();
$funis_disponiveis = [];
while ($funil = $result_funis->fetch_assoc()) {
    $funis_disponiveis[] = $funil;
}

// Fechar conexão
$stmt->close();
$stmt_funil->close();
$stmt_funis->close();
$conn->close();
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>SON - Sistema de Organização de Negócios</title>
    <meta name="csrf-token" content="<?php echo $_SESSION['csrf_token']; ?>" />
    <link rel="stylesheet" href="estilo-global.css" />
</head>
<body>
<div class="header-fixed" style="display:flex; align-items:center; padding:10px; background:#fff; box-shadow: 0 2px 5px rgba(0,0,0,0.1);">
    <img src="tvitec.png" alt="Logo TVITEC" style="height:40px;" />
    <div style="flex-grow: 1; text-align: center;">
        <h2 style="margin: 0;">Sistema de Organização de Negócios</h2>
    </div>
    <button onclick="openWhatsappModal()" style="margin-left: 15px; background: #25D366; color: white; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 5px;">
        <img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="WhatsApp" style="height: 20px;" />
        WhatsApp
    </button>
    <div class="user-info" style="display:flex; align-items:center; gap:10px;">
        <?php if (!empty($_SESSION['foto_perfil'])): ?>
            <img src="<?php echo htmlspecialchars($_SESSION['foto_perfil']); ?>" class="user-photo" alt="Foto do usuário" style="width:40px; height:40px; border-radius:50%;" />
        <?php else: ?>
            <div class="user-initial" style="width:40px; height:40px; border-radius:50%; background:#ccc; display:flex; align-items:center; justify-content:center; font-weight:bold; font-size:1.2em;">
                <?php echo strtoupper(substr($_SESSION['nome_usuario'] ?? 'U', 0, 1)); ?>
            </div>
        <?php endif; ?>
        <div style="text-align:left;">
            <div style="font-weight: bold; color: #333; font-size: 1.1em;">
                <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
            </div>
            <div style="font-size: 0.9em; color: #555;">
                <?php echo htmlspecialchars($_SESSION['email_usuario'] ?? ''); ?>
            </div>
        </div>
    </div>
    <!-- Menu Hamburger -->
    <div class="menu-container">
        <button class="hamburger-btn" onclick="toggleMenu()">☰</button>
        <div class="dropdown-menu" id="dropdownMenu">
            <a href="index.php" class="menu-btn-primary">← Início</a>
            <?php if ($_SESSION['permissao'] === 'usuario' || $_SESSION['permissao'] === 'vendedor' || $_SESSION['permissao'] === 'admin'): ?>
                <div class="menu-item">
                    <a href="javascript:void(0);" class="menu-btn-primary" onclick="toggleSubmenu('clientesSubmenu')">👥 Clientes</a>
                    <div id="clientesSubmenu" class="submenu">
                        <a href="cadastrar_cliente.php" class="menu-btn-success">➕ Novo Cliente</a>
                        <a href="lista_clientes.php" class="menu-btn-primary">📋 Listar Clientes</a>
                    </div>
                </div>
            <?php endif; ?>
            <div class="menu-item">
                <a href="javascript:void(0);" class="menu-btn-primary" onclick="toggleSubmenu('produtosSubmenu')">📦 Produtos</a>
                <div id="produtosSubmenu" class="submenu">
                    <a href="lista_produtos.php" class="menu-btn-primary">📋 Lista de Produtos</a>
                    <a href="cadastrar_produto.php" class="menu-btn-primary">➕ Novo Produto</a>
                </div>
            </div>
            <div class="menu-item">
                <a href="javascript:void(0);" class="menu-btn-primary" onclick="toggleSubmenu('atividadesSubmenu')">📝 Atividades</a>
                <div id="atividadesSubmenu" class="submenu">
                    <a href="lista_atividades.php" class="menu-btn-primary">📋 Listar Atividades</a>
                    <a href="cadastrar_atividade.php" class="menu-btn-primary">✍️ Cadastrar Tipo de Atividade</a>
                    <a href="consulta_atividades.php" class="menu-btn-primary">🔍 Consulta atividades</a>
                </div>
            </div>
            <div class="menu-item">
                <a href="javascript:void(0);" class="menu-btn-primary" onclick="toggleSubmenu('emailSubmenu')">📧 E-mail & Configurações</a>
                <div id="emailSubmenu" class="submenu">
                    <a href="email_app.php" class="menu-btn-primary">⚙️ Configurar E-mail</a>
                    <a href="email.php" class="menu-btn-primary">📨 Enviar E-mail</a>
                </div>
            </div>
            <?php if ($_SESSION['permissao'] === 'admin'): ?>
                <div class="menu-item">
                    <a href="javascript:void(0);" class="menu-btn-primary" onclick="toggleSubmenu('adminSubmenu')">👤 Administração</a>
                    <div id="adminSubmenu" class="submenu">
                        <a href="cadastrar_usuario.php" class="menu-btn-primary">➕ Cadastrar Usuário</a>
                        <a href="gerenciar_usuarios.php" class="menu-btn-primary">👥 Gerenciar Usuários</a>
                    </div>
                </div>
            <?php endif; ?>
            <a href="calendario.php" class="menu-btn-primary">📅 Calendário</a>
            <a href="dashboard_clientes.php" class="menu-btn-primary">📊 Dashboard</a>
            <a href="funis.php" class="menu-btn-primary">🔽 Gerenciar Funis</a>
            <a href="chat.php" class="menu-btn-success">💬 Chat</a>
            <a href="#" onclick="abrirModalAlterarSenha()" class="menu-btn-primary">🔒 Alterar Senha</a>
            <!-- Botão Alterar Foto dentro do menu -->
            <form method="POST" enctype="multipart/form-data" style="margin: 10px 0; padding: 0 10px;">
                <label for="fotoPerfilInput" style="cursor: pointer; color: #007bff; font-size: 1em; user-select:none; display: inline-flex; align-items: center; gap: 5px;">
                    <i class="fas fa-camera" aria-hidden="true"></i> 📷  Alterar Foto
                </label>
                <input type="file" id="fotoPerfilInput" name="foto_perfil" accept="image/*" style="display: none;" onchange="this.form.submit()" />
            </form>
            <a href="logout.php" class="menu-btn-danger">🚪 Sair</a>
            <h6 class="version-info">Tvitecnologia SON v1.0</h6>
        </div>
    </div>
</div>

<div style="margin: 80px 20px 20px;">
    <label for="funilSelecionado" style="font-weight: bold;">Selecione o Funil:</label>
    <select id="funilSelecionado" onchange="mudarFunil()">
        <?php foreach ($funis_disponiveis as $funil): ?>
            <option value="<?php echo $funil['id']; ?>" <?php if ($funil['id'] == $funil_id) echo 'selected'; ?>>
                <?php echo htmlspecialchars($funil['nome']); ?>
            </option>
        <?php endforeach; ?>
    </select>
</div>

<div class="kanban-container">
    <?php foreach ($etapas as $etapa_id => $etapa): ?>
        <div class="kanban-column">
            <h3><?php echo htmlspecialchars($etapa['nome']); ?></h3>
            <?php
            if (!empty($clientes_por_etapa[$etapa_id])) {
                foreach ($clientes_por_etapa[$etapa_id] as $cliente) {
                    ?>
                    <div class="kanban-card" draggable="true" data-cliente-id="<?php echo $cliente['id']; ?>">
                        <h4><?php echo htmlspecialchars($cliente['Nome_Cliente']); ?></h4>
                        <p><strong>Telefone:</strong> <?php echo htmlspecialchars($cliente['Telefone_1']); ?></p>
                        <p><strong>Email:</strong> <?php echo htmlspecialchars($cliente['Email']); ?></p>
                        <div>
                            <strong>Atividades:</strong>
                            <ul>
                            <?php if (!empty($cliente['atividades'])): ?>
                                <?php foreach ($cliente['atividades'] as $atividade): ?>
                                    <li>
                                        <strong><?php echo htmlspecialchars($atividade['nome']); ?></strong> - 
                                        <?php echo htmlspecialchars($atividade['descricao']); ?> - 
                                        <?php echo htmlspecialchars($atividade['data_agendada']); ?> - 
                                        <?php echo $atividade['concluida'] ? "Concluída" : "Pendente"; ?>
                                    </li>
                                <?php endforeach; ?>
                            <?php else: ?>
                                <li>Sem atividades</li>
                            <?php endif; ?>
                            </ul>
                        </div>
                    </div>
                    <?php
                }
            } else {
                echo "<p>Sem clientes nesta etapa.</p>";
            }
            ?>
        </div>
    <?php endforeach; ?>
</div>

<script>
function toggleMenu() {
    const menu = document.getElementById('dropdownMenu');
    if (menu.style.display === 'block') {
        menu.style.display = 'none';
    } else {
        menu.style.display = 'block';
    }
}

function toggleSubmenu(id) {
    const submenu = document.getElementById(id);
    if (submenu.style.display === 'block') {
        submenu.style.display = 'none';
    } else {
        submenu.style.display = 'block';
    }
}

function mudarFunil() {
    const funilId = document.getElementById('funilSelecionado').value;
    window.location.href = `index.php?funil=${funilId}`;
}

function abrirModalAlterarSenha() {
    alert('Funcionalidade de alteração de senha será implementada aqui.');
}

function openWhatsappModal() {
    alert('Abrir modal do WhatsApp (implementação pendente)');
}
</script>

<style>
/* Estilos simplificados para kanban */
.kanban-container {
    display: flex;
    gap: 15px;
    padding: 10px 20px;
    overflow-x: auto;
}
.kanban-column {
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 6px;
    width: 250px;
    padding: 10px;
    flex-shrink: 0;
}
.kanban-column h3 {
    margin-top: 0;
    border-bottom: 1px solid #ccc;
    padding-bottom: 6px;
}
.kanban-card {
    background: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-bottom: 10px;
    padding: 8px;
    cursor: grab;
}
.mensagem-sucesso {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    padding: 10px 15px;
    margin: 10px 20px;
    border-radius: 5px;
}
.menu-container {
    position: relative;
}
.hamburger-btn {
    background: none;
    border: none;
    font-size: 1.6em;
    cursor: pointer;
}
.dropdown-menu {
    display: none;
    position: absolute;
    right: 0;
    top: 40px;
    background: white;
    border: 1px solid #ddd;
    padding: 10px;
    z-index: 1000;
    width: 220px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.dropdown-menu a {
    display: block;
    margin: 5px 0;
    color: #007bff;
    text-decoration: none;
}
.submenu {
    display: none;
    padding-left: 10px;
    margin-top: 5px;
    border-left: 2px solid #ccc;
}
.menu-btn-primary {
    background: #007bff;
    color: white;
    padding: 6px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: block;
}
.menu-btn-success {
    background: #28a745;
    color: white;
    padding: 6px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: block;
}
.menu-btn-danger {
    background: #dc3545;
    color: white;
    padding: 6px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: block;
}
.version-info {
    font-size: 0.75em;
    color: #888;
    margin-top: 15px;
    text-align: center;
}
</style>
</body>
</html>
