<?php
require_once 'conexao.php';
session_start();

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

// Validação do ID do cliente
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    header('Location: lista_clientes.php?erro=id_invalido');
    exit;
}

$clienteId = (int)$_GET['id'];
$funilId = isset($_GET['funil_id']) ? (int)$_GET['funil_id'] : null;
$tenant_id = $_SESSION['tenant_id'] ?? null;

// DEBUG: Log para verificar os valores
error_log("DEBUG - Cliente ID: $clienteId, Tenant ID: " . ($tenant_id ?? 'NULL'));

if (!$tenant_id) {
    error_log("ERRO - Tenant ID não definido para usuário: " . $_SESSION['usuario_id']);
    header('Location: lista_clientes.php?erro=tenant_nao_definido');
    exit;
}

// Consulta os dados do cliente
$sql = "SELECT * FROM clientes WHERE id = ? AND tenant_id = ?";
$stmt = $conn->prepare($sql);
if (!$stmt) {
    error_log("Erro ao preparar consulta de cliente: " . $conn->error);
    header('Location: lista_clientes.php?erro=erro_interno');
    exit;
}
$stmt->bind_param("is", $clienteId, $tenant_id);
$stmt->execute();
$resultado = $stmt->get_result();

// DEBUG: Verificar se encontrou o cliente
error_log("DEBUG - Número de clientes encontrados: " . $resultado->num_rows);

if ($resultado->num_rows === 0) {
    error_log("ERRO - Cliente não encontrado: ID $clienteId, Tenant $tenant_id");
    header('Location: lista_clientes.php?erro=cliente_nao_encontrado');
    exit;
}

$cliente = $resultado->fetch_assoc();
$stmt->close();

// DEBUG: Verificar dados do cliente
error_log("DEBUG - Dados do cliente: " . print_r($cliente, true));

// Função para obter nome do usuário
function getNomeUsuario($conn, $usuarioId, $tenant_id) {
    $sql = "SELECT nome FROM usuarios WHERE id = ? AND tenant_id = ?";
    $stmt = $conn->prepare($sql);
    if (!$stmt) {
        error_log("Erro ao preparar consulta de usuário: " . $conn->error);
        return "Usuário #" . $usuarioId;
    }
    $stmt->bind_param("is", $usuarioId, $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        return htmlspecialchars($row['nome']);
    }
    return "Usuário #" . $usuarioId;
}

// Consulta logs do cliente - versão simplificada para debug
$sqlLogs = "SELECT 'log' as tipo, cl.*, u.nome as nome_usuario 
           FROM cliente_logs cl 
           LEFT JOIN usuarios u ON cl.usuario_id = u.id 
           WHERE cl.cliente_id = ? AND cl.tenant_id = ? 
           ORDER BY cl.data_hora DESC 
           LIMIT 20";
           
$stmtLogs = $conn->prepare($sqlLogs);
if ($stmtLogs) {
    $stmtLogs->bind_param("is", $clienteId, $tenant_id);
    $stmtLogs->execute();
    $logs = $stmtLogs->get_result();
    error_log("DEBUG - Número de logs encontrados: " . $logs->num_rows);
    $stmtLogs->close();
} else {
    error_log("Erro ao preparar consulta de logs: " . $conn->error);
    $logs = false;
}

// Consulta produtos associados - versão simplificada
$sqlProdutos = "SELECT COUNT(*) as total_itens, 
                       SUM(quantidade) AS total_quantidade, 
                       SUM(valor * quantidade) AS total_valor 
                FROM cliente_produtos 
                WHERE cliente_id = ? AND tenant_id = ?";
$stmtProdutos = $conn->prepare($sqlProdutos);
if ($stmtProdutos) {
    $stmtProdutos->bind_param("is", $clienteId, $tenant_id);
    $stmtProdutos->execute();
    $produtoTotal = $stmtProdutos->get_result()->fetch_assoc();
    error_log("DEBUG - Dados produtos: " . print_r($produtoTotal, true));
    $stmtProdutos->close();
} else {
    error_log("Erro ao preparar consulta de produtos: " . $conn->error);
    $produtoTotal = ['total_itens' => 0, 'total_quantidade' => 0, 'total_valor' => 0];
}

// Buscar produtos do cliente com tenant_id
$sqlProdutosDetalhes = "SELECT cp.*, lp.nome as nome_original 
               FROM cliente_produtos cp
               LEFT JOIN lista_produtos lp ON cp.lista_produto_id = lp.id
               WHERE cp.cliente_id = ? AND cp.tenant_id = ?
               ORDER BY cp.data_cadastro DESC 
               LIMIT 10";
$stmtProdutosDetalhes = $conn->prepare($sqlProdutosDetalhes);
if ($stmtProdutosDetalhes) {
    $stmtProdutosDetalhes->bind_param("is", $clienteId, $tenant_id);
    $stmtProdutosDetalhes->execute();
    $resultadoProdutos = $stmtProdutosDetalhes->get_result();
    $produtos = $resultadoProdutos->fetch_all(MYSQLI_ASSOC);
    error_log("DEBUG - Número de produtos detalhados: " . count($produtos));
    $stmtProdutosDetalhes->close();
} else {
    error_log("Erro ao preparar consulta de produtos detalhados: " . $conn->error);
    $produtos = [];
}

// Calcular valor total de todos os produtos e quantidade total
$valorTotalProdutos = 0;
$quantidadeTotalProdutos = 0;
foreach ($produtos as $produto) {
    $valorTotalProdutos += ($produto['valor'] * $produto['quantidade']);
    $quantidadeTotalProdutos += $produto['quantidade'];
}

// Buscar atividades do cliente - versão simplificada
$sqlAtividades = "SELECT *, 
                 CASE 
                   WHEN concluida = 1 THEN 'concluida'
                   WHEN data_agendada < NOW() THEN 'atrasada'
                   ELSE 'pendente'
                 END AS status
                 FROM atividades 
                 WHERE cliente_id = ? AND tenant_id = ?
                 ORDER BY data_agendada ASC
                 LIMIT 10";

$stmtAtividades = $conn->prepare($sqlAtividades);
if ($stmtAtividades) {
    $stmtAtividades->bind_param("is", $clienteId, $tenant_id);
    $stmtAtividades->execute();
    $resultadoAtividades = $stmtAtividades->get_result();
    $atividades = $resultadoAtividades->fetch_all(MYSQLI_ASSOC);
    error_log("DEBUG - Número de atividades: " . count($atividades));
    $stmtAtividades->close();
} else {
    error_log("Erro ao preparar consulta de atividades: " . $conn->error);
    $atividades = [];
}

// Gera token CSRF se ainda não existir
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Visão Geral do Cliente - <?= htmlspecialchars($cliente['Nome_Cliente'] ?? 'Cliente') ?></title>
    <meta name="csrf-token" content="<?= htmlspecialchars($_SESSION['csrf_token'] ?? '') ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', Arial, sans-serif;
            background: #f5f7fa;
            color: #333;
            line-height: 1.6;
            padding: 20px;
        }

        .container {
            max-width: 1300px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 25px;
        }

        @media (max-width: 992px) {
            .container {
                grid-template-columns: 1fr;
            }
        }

        .card {
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.08);
            padding: 25px;
            margin-bottom: 25px;
        }

        .card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 2px solid #f0f0f0;
        }

        .card-title {
            font-size: 1.4em;
            color: #2c3e50;
            font-weight: 600;
        }

        .card-title i {
            margin-right: 10px;
            color: #3498db;
        }

        .info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 15px;
            margin-bottom: 20px;
        }

        .info-item {
            display: flex;
            flex-direction: column;
        }

        .info-label {
            font-size: 0.85em;
            color: #7f8c8d;
            margin-bottom: 5px;
            font-weight: 500;
        }

        .info-value {
            font-size: 1.1em;
            color: #2c3e50;
            font-weight: 600;
        }

        .status-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 0.8em;
            font-weight: 600;
            text-transform: uppercase;
        }

        .status-pendente { background: #fff3cd; color: #856404; }
        .status-concluida { background: #d4edda; color: #155724; }
        .status-atrasada { background: #f8d7da; color: #721c24; }

        .btn {
            padding: 10px 18px;
            border: none;
            border-radius: 6px;
            color: #fff;
            cursor: pointer;
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.3s ease;
            text-decoration: none;
            font-size: 0.9em;
        }

        .btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        }

        .btn-primary { background: #3498db; }
        .btn-success { background: #27ae60; }
        .btn-warning { background: #f39c12; }
        .btn-danger { background: #e74c3c; }
        .btn-secondary { background: #95a5a6; }

        .timeline {
            max-height: 600px;
            overflow-y: auto;
            padding-right: 10px;
        }

        .timeline-item {
            display: flex;
            margin-bottom: 20px;
            position: relative;
        }

        .timeline-item:last-child {
            margin-bottom: 0;
        }

        .timeline-marker {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: #3498db;
            margin-right: 15px;
            margin-top: 5px;
            flex-shrink: 0;
            position: relative;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 16px;
        }

        .timeline-content {
            flex: 1;
            background: #f8fafc;
            padding: 15px;
            border-radius: 8px;
            border-left: 3px solid #3498db;
        }

        .timeline-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
        }

        .timeline-user {
            font-weight: 600;
            color: #2c3e50;
            font-size: 0.95em;
        }

        .timeline-date {
            font-size: 0.8em;
            color: #7f8c8d;
        }

        .timeline-details {
            color: #555;
            font-size: 0.9em;
            line-height: 1.5;
        }

        .produto-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px;
            background: #f8f9fa;
            border-radius: 6px;
            margin-bottom: 10px;
        }

        .produto-info h4 {
            margin-bottom: 5px;
            color: #2c3e50;
        }

        .produto-meta {
            font-size: 0.85em;
            color: #7f8c8d;
        }

        .produto-valor {
            font-weight: 600;
            color: #27ae60;
            font-size: 1.1em;
        }

        .resumo-section {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin-bottom: 20px;
        }

        .resumo-card {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 20px;
            border-radius: 8px;
            text-align: center;
        }

        .resumo-card h3 {
            font-size: 2em;
            margin-bottom: 5px;
        }

        .resumo-card p {
            font-size: 0.9em;
            opacity: 0.9;
        }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: #95a5a6;
        }

        .empty-state i {
            font-size: 3em;
            margin-bottom: 15px;
            opacity: 0.5;
        }

        .action-buttons {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-top: 20px;
        }

        .debug-info {
            background: #fff3cd;
            border: 1px solid #ffeaa7;
            padding: 10px;
            border-radius: 5px;
            margin-bottom: 15px;
            font-size: 0.9em;
            color: #856404;
        }

        /* Scrollbar personalizada */
        .timeline::-webkit-scrollbar {
            width: 6px;
        }

        .timeline::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 10px;
        }

        .timeline::-webkit-scrollbar-thumb {
            background: #bdc3c7;
            border-radius: 10px;
        }

        .timeline::-webkit-scrollbar-thumb:hover {
            background: #95a5a6;
        }
    </style>
</head>
<body>
    <!-- DEBUG INFO - Apenas para desenvolvimento -->
    <?php if (strpos($_SERVER['HTTP_HOST'], 'localhost') !== false || strpos($_SERVER['HTTP_HOST'], 'test') !== false): ?>
    <div class="debug-info">
        <strong>DEBUG INFO:</strong> 
        Cliente ID: <?= $clienteId ?> | 
        Tenant ID: <?= $tenant_id ?> | 
        Cliente Encontrado: <?= isset($cliente['Nome_Cliente']) ? 'Sim' : 'Não' ?>
    </div>
    <?php endif; ?>

    <div class="container">
        <!-- Coluna 1: Informações do Cliente -->
        <div>
            <!-- Card de Informações Básicas -->
            <div class="card">
                <div class="card-header">
                    <h2 class="card-title"><i class="fas fa-user"></i> <?= htmlspecialchars($cliente['Nome_Cliente'] ?? 'Cliente Não Encontrado') ?></h2>
                </div>
                
                <?php if (isset($cliente['Nome_Cliente'])): ?>
                <div class="info-grid">
                    <div class="info-item">
                        <span class="info-label">Email</span>
                        <span class="info-value"><?= !empty($cliente['Email']) ? htmlspecialchars($cliente['Email']) : 'Não informado' ?></span>
                    </div>
                    
                    <div class="info-item">
                        <span class="info-label">Telefone</span>
                        <span class="info-value"><?= !empty($cliente['Telefone']) ? htmlspecialchars($cliente['Telefone']) : 'Não informado' ?></span>
                    </div>
                    
                  
                    
                    <div class="info-item">
                        <span class="info-label">Cidade/Estado</span>
                        <span class="info-value"><?= htmlspecialchars($cliente['Cidade'] ?? '') ?>/<?= htmlspecialchars($cliente['Estado'] ?? '') ?></span>
                    </div>
                </div>

                <?php if (!empty($cliente['observacoes'])): ?>
                <div class="info-item">
                    <span class="info-label">Observações</span>
                    <div style="background: #f8f9fa; padding: 15px; border-radius: 6px; margin-top: 5px;">
                        <?= nl2br(htmlspecialchars($cliente['observacoes'])) ?>
                    </div>
                </div>
                <?php endif; ?>
                <?php else: ?>
                <div class="empty-state">
                    <i class="fas fa-exclamation-triangle"></i>
                    <p>Cliente não encontrado ou sem permissão de acesso</p>
                </div>
                <?php endif; ?>

                
            </div>

            <!-- Card de Produtos -->
            <div class="card">
                <div class="card-header">
                    <h2 class="card-title"><i class="fas fa-box-open"></i> Produtos</h2>
                    <span class="info-value"><?= $produtoTotal['total_itens'] ?? 0 ?> itens</span>
                </div>

                <?php if (($produtoTotal['total_quantidade'] ?? 0) > 0): ?>
                <div class="resumo-section">
                    <div class="resumo-card">
                        <h3><?= $produtoTotal['total_quantidade'] ?? 0 ?></h3>
                        <p>Quantidade Total</p>
                    </div>
                    <div class="resumo-card" style="background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);">
                        <h3>R$ <?= number_format(($produtoTotal['total_valor'] ?? 0), 2, ',', '.') ?></h3>
                        <p>Valor Total</p>
                    </div>
                </div>

                <?php if (!empty($produtos)): ?>
                    <?php foreach ($produtos as $produto): ?>
                        <div class="produto-item">
                            <div class="produto-info">
                                <h4><?= htmlspecialchars($produto['nome_produto'] ?? $produto['nome_original'] ?? 'Produto sem nome') ?></h4>
                                <div class="produto-meta">
                                    Quantidade: <?= $produto['quantidade'] ?? 0 ?> | 
                                    Valor unitário: R$ <?= number_format(($produto['valor'] ?? 0), 2, ',', '.') ?>
                                </div>
                                <?php if (!empty($produto['observacoes'])): ?>
                                    <div class="produto-meta"><?= htmlspecialchars($produto['observacoes']) ?></div>
                                <?php endif; ?>
                            </div>
                            <div class="produto-valor">
                                R$ <?= number_format((($produto['valor'] ?? 0) * ($produto['quantidade'] ?? 0)), 2, ',', '.') ?>
                            </div>
                        </div>
                    <?php endforeach; ?>
                <?php endif; ?>
                <?php else: ?>
                    <div class="empty-state">
                        <i class="fas fa-box-open"></i>
                        <p>Nenhum produto cadastrado para este cliente</p>
                    </div>
                <?php endif; ?>
            </div>
        </div>

        <!-- Coluna 2: Atividades e Timeline -->
        <div>
            <!-- Card de Atividades -->
            <div class="card">
                <div class="card-header">
                    <h2 class="card-title"><i class="fas fa-tasks"></i> Atividades</h2>
                    <span class="info-value"><?= count($atividades) ?> atividades</span>
                </div>

                <?php if (!empty($atividades)): ?>
                    <?php 
                    $concluidas = array_filter($atividades, function($a) { return $a['concluida'] == 1; });
                    $pendentes = array_filter($atividades, function($a) { return $a['status'] == 'pendente'; });
                    $atrasadas = array_filter($atividades, function($a) { return $a['status'] == 'atrasada'; });
                    ?>
                    
                    <div class="resumo-section">
                        <div class="resumo-card" style="background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);">
                            <h3><?= count($concluidas) ?></h3>
                            <p>Concluídas</p>
                        </div>
                        <div class="resumo-card" style="background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);">
                            <h3><?= count($pendentes) ?></h3>
                            <p>Pendentes</p>
                        </div>
                        <div class="resumo-card" style="background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);">
                            <h3><?= count($atrasadas) ?></h3>
                            <p>Atrasadas</p>
                        </div>
                    </div>

                    <div style="max-height: 300px; overflow-y: auto;">
                        <?php foreach (array_slice($atividades, 0, 5) as $atividade): ?>
                            <div class="produto-item">
                                <div class="produto-info">
                                    <h4><?= htmlspecialchars($atividade['nome'] ?? $atividade['descricao'] ?? 'Atividade sem nome') ?></h4>
                                    <?php if (!empty($atividade['descricao'])): ?>
                                        <div class="produto-meta" style="margin-top: 5px;">
                                            <?= htmlspecialchars($atividade['descricao']) ?>
                                        </div>
                                    <?php endif; ?>
                                    <div class="produto-meta">
                                        <?= date('d/m/Y H:i', strtotime($atividade['data_agendada'])) ?> | 
                                        <span class="status-badge status-<?= $atividade['status'] ?>">
                                            <?= $atividade['status'] ?>
                                        </span>
                                        <?php if (!empty($atividade['criado_por_fluxo'])): ?>
                                            <span style="color: #7f8c8d; font-style: italic;">(Automática)</span>
                                        <?php endif; ?>
                                    </div>
                                </div>
                                <?php if (!($atividade['concluida'] ?? false)): ?>
                                    <button class="btn btn-success" style="padding: 5px 10px; font-size: 0.8em;">
                                        <i class="fas fa-check"></i>
                                    </button>
                                <?php else: ?>
                                    <span class="produto-meta">Concluída</span>
                                <?php endif; ?>
                            </div>
                        <?php endforeach; ?>
                    </div>

                    <?php if (count($atividades) > 5): ?>
                        <div style="text-align: center; margin-top: 15px;">
                            <a href="editar_cliente.php?id=<?= $clienteId ?>#atividades" class="btn btn-primary">
                                <i class="fas fa-list"></i> Ver Todas as Atividades
                            </a>
                        </div>
                    <?php endif; ?>
                <?php else: ?>
                    <div class="empty-state">
                        <i class="fas fa-tasks"></i>
                        <p>Nenhuma atividade agendada</p>
                        <a href="editar_cliente.php?id=<?= $clienteId ?>#atividades" class="btn btn-primary" style="margin-top: 15px;">
                            <i class="fas fa-plus"></i> Nova Atividade
                        </a>
                    </div>
                <?php endif; ?>
            </div>

           
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
        // Mensagens de sucesso e erro
        <?php if (!empty($_SESSION['sucesso'])): ?>
            Swal.fire({
                icon: 'success',
                title: 'Sucesso',
                text: '<?= addslashes($_SESSION['sucesso']) ?>'
            });
            <?php unset($_SESSION['sucesso']); ?>
        <?php endif; ?>
        
        <?php if (!empty($_SESSION['erro'])): ?>
            Swal.fire({
                icon: 'error',
                title: 'Erro',
                text: '<?= addslashes($_SESSION['erro']) ?>'
            });
            <?php unset($_SESSION['erro']); ?>
        <?php endif; ?>
    </script>
</body>
</html>