<?php
// diagnostico_sistema.php - VERSÃO CORRIGIDA
session_start();
require_once 'conexao.php';

error_log("=== DIAGNÓSTICO DO SISTEMA ===");

// Verificar sessão
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    die("❌ Usuário não logado");
}

$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id) {
    die("❌ Tenant ID não encontrado");
}

echo "<h3>🔍 Diagnóstico do Sistema - Tenant ID: $tenant_id</h3>";

// 1. Clientes
$sql = "SELECT COUNT(*) as total FROM clientes WHERE tenant_id = ? AND deletado_em IS NULL";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$clientes = $stmt->get_result()->fetch_assoc();
$stmt->close();
echo "<p><strong>Clientes:</strong> {$clientes['total']}</p>";

// 2. Fluxos automatizados
$sql = "SELECT COUNT(*) as total, SUM(ativo = 1) as ativos FROM fluxos_automatizados WHERE tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$fluxos = $stmt->get_result()->fetch_assoc();
$stmt->close();
echo "<p><strong>Fluxos:</strong> {$fluxos['total']} ({$fluxos['ativos']} ativos)</p>";

// 3. Tipos de atividades
$sql = "SELECT COUNT(*) as total FROM lista_atividades WHERE tenant_id = ? AND ativo = 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$atividades = $stmt->get_result()->fetch_assoc();
$stmt->close();
echo "<p><strong>Tipos de atividades:</strong> {$atividades['total']}</p>";

// 4. Formulários
$sql = "SELECT COUNT(*) as total FROM formularios WHERE tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$formularios = $stmt->get_result()->fetch_assoc();
$stmt->close();
echo "<p><strong>Formulários:</strong> {$formularios['total']}</p>";

// 5. Funis e Etapas
$sql = "SELECT COUNT(DISTINCT f.id) as funis, COUNT(ef.id) as etapas 
        FROM funis f 
        LEFT JOIN etapas_funis ef ON f.id = ef.funil_id 
        WHERE f.tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$funis = $stmt->get_result()->fetch_assoc();
$stmt->close();
echo "<p><strong>Funils:</strong> {$funis['funis']}, <strong>Etapas:</strong> {$funis['etapas']}</p>";

// 6. Listar alguns clientes
echo "<h4>📋 Clientes disponíveis (primeiros 5):</h4>";
$sql = "SELECT id, Nome_Cliente, etapa_funil_id FROM clientes WHERE tenant_id = ? AND deletado_em IS NULL LIMIT 5";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$result = $stmt->get_result();
while ($cliente = $result->fetch_assoc()) {
    echo "<p>ID: {$cliente['id']} - {$cliente['Nome_Cliente']} (Etapa: {$cliente['etapa_funil_id']})</p>";
}
$stmt->close();

// 7. Listar fluxos com detalhes
echo "<h4>🔄 Fluxos configurados:</h4>";
$sql = "SELECT id, nome, ativo, condicoes, acoes FROM fluxos_automatizados WHERE tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$result = $stmt->get_result();
while ($fluxo = $result->fetch_assoc()) {
    $status = $fluxo['ativo'] ? '✅ Ativo' : '❌ Inativo';
    echo "<p><strong>ID: {$fluxo['id']} - {$fluxo['nome']} - $status</strong></p>";
    
    // Mostrar condições
    $condicoes = json_decode($fluxo['condicoes'], true);
    if ($condicoes) {
        echo "<small>Condições: ";
        foreach ($condicoes as $cond) {
            echo "{$cond['tipo']} (Etapa: " . ($cond['etapa_funil_id'] ?? 'N/A') . ", Questionário: " . ($cond['questionario_id'] ?? 'N/A') . ") ";
        }
        echo "</small><br>";
    }
    
    // Mostrar ações
    $acoes = json_decode($fluxo['acoes'], true);
    if ($acoes) {
        echo "<small>Ações: ";
        foreach ($acoes as $acao) {
            echo "Tipo: {$acao['tipo_atividade_id']}, Tempo: {$acao['tempo_execucao']} {$acao['unidade_tempo']} | ";
        }
        echo "</small>";
    }
    echo "<hr>";
}
$stmt->close();

echo "<p><strong>🎯 Próximo passo:</strong> Execute o teste corrigido.</p>";
?>