<?php
header('Content-Type: application/json');
include 'verifica_login.php';
include 'conexao.php';

$conn = conectar_banco();
$id_pesquisa_empresa = (int)($_POST['id_pesquisa_empresa'] ?? 0);

if ($id_pesquisa_empresa <= 0) {
    echo json_encode(['success' => false, 'message' => 'ID de pesquisa inválido']);
    exit;
}

try {
    // Buscar dados completos da pesquisa e empresa incluindo status do questionário
    $stmt = $conn->prepare("
        SELECT 
            pe.id,
            pe.nota_total,
            pe.classificacao,
            pe.id_status_questionario_fk,
            e.NOME_FANTASIA,
            e.EMPRESA as RAZAO_SOCIAL,
            e.CNPJ,
            e.CNAE,
            e.FUNCIONARIOS,
            e.PORTE,
            e.BASE,
            e.CIDADE,
            e.UF,
            e.BAIRRO,
            e.SITE,
            qt.nome as nome_questionario,
            sq.nome_status as status_questionario
        FROM pesquisa_empresa pe
        LEFT JOIN empresas e ON pe.id_empresa_fk = e.ID_EMPRESA
        LEFT JOIN pesquisas p ON pe.id_pesquisa_fk = p.id
        LEFT JOIN questionario_template qt ON p.id_questionario_template_fk = qt.id
        LEFT JOIN statusdoquestionario sq ON pe.id_status_questionario_fk = sq.id_status
        WHERE pe.id = ?
    ");
    $stmt->bind_param('i', $id_pesquisa_empresa);
    $stmt->execute();
    $pesquisa = $stmt->get_result()->fetch_assoc();

    if (!$pesquisa) {
        echo json_encode(['success' => false, 'message' => 'Pesquisa não encontrada']);
        exit;
    }

    // Buscar perguntas e respostas
    $stmt_respostas = $conn->prepare("
        SELECT 
            qtp.pergunta,
            qtp.tipo_resposta,
            pr.resposta
        FROM pesquisa_respostas pr
        INNER JOIN questionario_template_perguntas qtp ON pr.id_pergunta_fk = qtp.id
        WHERE pr.id_pesquisa_empresa_fk = ?
        ORDER BY qtp.ordem
    ");
    $stmt_respostas->bind_param('i', $id_pesquisa_empresa);
    $stmt_respostas->execute();
    $respostas = $stmt_respostas->get_result();

    // Processar respostas
    $total_perguntas = 0;
    $respostas_completas = 0;
    $pontos_fortes = [];
    $pontos_atencao = [];
    $texto_respostas = "";

    while ($resp = $respostas->fetch_assoc()) {
        $total_perguntas++;
        $texto_respostas .= "• " . $resp['pergunta'] . "\n";
        $texto_respostas .= "  Resposta: " . $resp['resposta'] . "\n\n";
        
        if (!empty($resp['resposta']) && strlen(trim($resp['resposta'])) > 3) {
            $respostas_completas++;
            
            // Extrair pontos (se houver)
            if (strpos($resp['resposta'], '|') !== false) {
                $partes = explode('|', $resp['resposta']);
                $pontos = isset($partes[1]) ? (float)$partes[1] : 0;
                
                if ($pontos >= 8) {
                    $pontos_fortes[] = $resp['pergunta'];
                } elseif ($pontos <= 4) {
                    $pontos_atencao[] = $resp['pergunta'];
                }
            }
        }
    }

    // Análise de localização e atividade econômica
    $cidade = trim($pesquisa['CIDADE'] ?? '');
    $uf = trim($pesquisa['UF'] ?? '');
    $cnae = trim($pesquisa['CNAE'] ?? '');
    
    // Base de conhecimento de atividades econômicas por região
    $atividades_regiao = analisarAtividadeEconomicaRegiao($cidade, $uf, $cnae);

    // Gerar análise
    $nota = (float)($pesquisa['nota_total'] ?? 0);
    $classificacao = $pesquisa['classificacao'] ?? '-';
    $status_questionario = $pesquisa['status_questionario'] ?? 'Não definido';
    $id_status = $pesquisa['id_status_questionario_fk'] ?? null;
    
    $analise = "═══════════════════════════════════════════════════════\n";
    $analise .= "ANÁLISE ESTRATÉGICA DA PESQUISA\n";
    $analise .= "═══════════════════════════════════════════════════════\n\n";
    
    // PERFIL DA EMPRESA
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "PERFIL COMPLETO DA EMPRESA\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    $analise .= "Razão Social: " . ($pesquisa['RAZAO_SOCIAL'] ?? '-') . "\n";
    $analise .= "Nome Fantasia: " . ($pesquisa['NOME_FANTASIA'] ?? '-') . "\n";
    $analise .= "CNPJ: " . ($pesquisa['CNPJ'] ?? '-') . "\n";
    $analise .= "CNAE: " . $cnae . "\n";
    
    // Localização detalhada
    $analise .= "\nLOCALIZAÇÃO:\n";
    if (!empty($pesquisa['BAIRRO'])) {
        $analise .= "Bairro: " . $pesquisa['BAIRRO'] . "\n";
    }
    $analise .= "Cidade: " . $cidade . "\n";
    $analise .= "Estado: " . $uf . "\n";
    
    $analise .= "\nCARACTERÍSTICAS:\n";
    $analise .= "Porte: " . ($pesquisa['PORTE'] ?? '-') . "\n";
    $analise .= "Funcionários: " . ($pesquisa['FUNCIONARIOS'] ?? '-') . "\n";
    $analise .= "Base: " . ($pesquisa['BASE'] ?? '-') . "\n";
    
    if (!empty($pesquisa['SITE'])) {
        $analise .= "Site: " . $pesquisa['SITE'] . "\n";
    }
    
    $analise .= "\n";
    
    // Análise geográfica e econômica
    $analise .= "ANÁLISE REGIONAL E SETORIAL:\n";
    $analise .= $atividades_regiao;
    $analise .= "\n";
    
    // Análise do perfil por porte
    $porte = strtoupper($pesquisa['PORTE'] ?? '');
    $funcionarios = $pesquisa['FUNCIONARIOS'] ?? '';
    
    $analise .= "ANÁLISE DO PERFIL EMPRESARIAL:\n";
    if (stripos($porte, 'GRANDE') !== false || stripos($funcionarios, '500') !== false || stripos($funcionarios, '1000') !== false) {
        $analise .= "Empresa de GRANDE PORTE, com estrutura organizacional robusta e complexa.\n";
        $analise .= "• Possui departamentos especializados e hierarquia bem definida\n";
        $analise .= "• Processos decisórios estruturados com múltiplos stakeholders\n";
        $analise .= "• Alto potencial para implementação de soluções corporativas\n";
        $analise .= "• Necessidade de ROI bem fundamentado e cases comprovados\n";
        $analise .= "• Ciclo de vendas mais longo, porém tickets mais altos\n";
    } elseif (stripos($porte, 'MÉDIA') !== false || stripos($porte, 'MEDIO') !== false) {
        $analise .= "Empresa de MÉDIO PORTE, em fase de crescimento e profissionalização.\n";
        $analise .= "• Momento ideal para modernização de processos\n";
        $analise .= "• Busca por soluções escaláveis e flexíveis\n";
        $analise .= "• Decisores mais acessíveis, ciclo de vendas moderado\n";
        $analise .= "• Necessita demonstração clara de benefícios práticos\n";
        $analise .= "• Oportunidade de crescer junto com o cliente\n";
    } elseif (stripos($porte, 'PEQUEN') !== false || stripos($porte, 'MEI') !== false || stripos($porte, 'ME') !== false) {
        $analise .= "Empresa de PEQUENO PORTE ou em fase inicial de operação.\n";
        $analise .= "• Foco em soluções práticas e acessíveis\n";
        $analise .= "• Decisão centralizada, processo comercial ágil\n";
        $analise .= "• Necessita facilidade de implementação e uso\n";
        $analise .= "• Sensível a custo-benefício imediato\n";
        $analise .= "• Oportunidade de fidelização de longo prazo\n";
    } else {
        $analise .= "Porte não especificado ou em análise.\n";
        $analise .= "Recomenda-se levantamento mais detalhado do perfil.\n";
    }
    $analise .= "\n";
    
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "RESUMO EXECUTIVO\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    $analise .= "Questionário: " . $pesquisa['nome_questionario'] . "\n";
    $analise .= "Data da Análise: " . date('d/m/Y H:i') . "\n";
    $analise .= "Nota Total: " . number_format($nota, 2, ',', '.') . "\n";
    $analise .= "Classificação: " . $classificacao . "\n";
    $analise .= "Status do Questionário: " . $status_questionario . " (ID: " . ($id_status ?? 'N/A') . ")\n";
    $analise .= "Perguntas Respondidas: " . $respostas_completas . " de " . $total_perguntas . "\n";
    $completude = $total_perguntas > 0 ? round(($respostas_completas / $total_perguntas) * 100) : 0;
    $analise .= "Taxa de Completude: " . $completude . "%\n\n";
    
    // Análise detalhada do status do questionário baseado no nome do status
    $analise .= "ANÁLISE DO STATUS DO QUESTIONÁRIO:\n";
    $status_lower = strtolower($status_questionario);
    
    // Análise específica por tipo de status
    if (stripos($status_lower, 'conclu') !== false || stripos($status_lower, 'finaliz') !== false) {
        $analise .= "✓ Status: CONCLUÍDO / FINALIZADO\n";
        $analise .= "  ► A empresa demonstrou interesse genuíno e engajamento completo.\n";
        $analise .= "  ► Questionário totalmente preenchido indica maturidade do prospect.\n";
        $analise .= "  ► AÇÃO IMEDIATA: Elaborar proposta comercial personalizada.\n";
        $analise .= "  ► Agendar reunião de apresentação dos resultados em até 48h.\n";
        $analise .= "  ► Oportunidade QUENTE - priorizar no pipeline comercial.\n\n";
        
    } elseif (stripos($status_lower, 'andamento') !== false || stripos($status_lower, 'progress') !== false) {
        $analise .= "⚠ Status: EM ANDAMENTO / EM PROCESSO\n";
        $analise .= "  ► Questionário iniciado mas não concluído.\n";
        $analise .= "  ► Cliente demonstra interesse mas pode ter obstáculos.\n";
        $analise .= "  ► AÇÃO URGENTE: Contato proativo em até 24h.\n";
        $analise .= "  ► Oferecer suporte para conclusão (vídeo-chamada, assistência).\n";
        $analise .= "  ► Estabelecer prazo máximo de 3 dias úteis para finalização.\n";
        $analise .= "  ► Investigar possíveis barreiras ou dúvidas técnicas.\n\n";
        
    } elseif (stripos($status_lower, 'agend') !== false || stripos($status_lower, 'retorno') !== false) {
        $analise .= "📅 Status: RETORNO AGENDADO\n";
        $analise .= "  ► Cliente solicitou reagendamento ou follow-up.\n";
        $analise .= "  ► Indica interesse mas necessita de timing adequado.\n";
        $analise .= "  ► AÇÃO: Confirmar data/hora do retorno 24h antes.\n";
        $analise .= "  ► Preparar material complementar e proposta preliminar.\n";
        $analise .= "  ► Manter follow-up rigoroso sem ser invasivo.\n";
        $analise .= "  ► Registrar motivo do agendamento para contextualizar abordagem.\n\n";
        
    } elseif (stripos($status_lower, 'pendent') !== false || stripos($status_lower, 'aberto') !== false) {
        $analise .= "⏳ Status: PENDENTE / AGUARDANDO\n";
        $analise .= "  ► Questionário sem movimentação recente.\n";
        $analise .= "  ► RISCO DE PERDA - requer ação imediata.\n";
        $analise .= "  ► AÇÃO CRÍTICA: Contato telefônico urgente.\n";
        $analise .= "  ► Investigar barreiras: falta de tempo, dúvidas, perda de interesse.\n";
        $analise .= "  ► Oferecer facilidades: preenchimento assistido, simplificação.\n";
        $analise .= "  ► Se sem resposta em 5 dias, classificar como 'inativo'.\n\n";
        
    } elseif (stripos($status_lower, 'cancelad') !== false || stripos($status_lower, 'encerrad') !== false) {
        $analise .= "❌ Status: CANCELADO / ENCERRADO\n";
        $analise .= "  ► Oportunidade descontinuada ou descartada.\n";
        $analise .= "  ► ANÁLISE: Identificar motivo do cancelamento.\n";
        $analise .= "  ► Documentar lições aprendidas para melhoria de processo.\n";
        $analise .= "  ► Considerar follow-up em 3-6 meses para reativação.\n";
        $analise .= "  ► Manter no banco de dados para futuras oportunidades.\n\n";
        
    } elseif (stripos($status_lower, 'qualificad') !== false || stripos($status_lower, 'aprovad') !== false) {
        $analise .= "⭐ Status: QUALIFICADO / APROVADO\n";
        $analise .= "  ► Lead passou por processo de qualificação.\n";
        $analise .= "  ► Cliente com perfil adequado e potencial confirmado.\n";
        $analise .= "  ► AÇÃO: Avançar para etapa de proposta comercial.\n";
        $analise .= "  ► Priorizar recursos comerciais e técnicos.\n";
        $analise .= "  ► Elaborar apresentação executiva customizada.\n\n";
        
    } elseif (stripos($status_lower, 'negoci') !== false || stripos($status_lower, 'proposta') !== false) {
        $analise .= "💼 Status: EM NEGOCIAÇÃO / PROPOSTA ENVIADA\n";
        $analise .= "  ► Fase avançada do processo comercial.\n";
        $analise .= "  ► Cliente analisando proposta e condições.\n";
        $analise .= "  ► AÇÃO: Follow-up estruturado a cada 2-3 dias.\n";
        $analise .= "  ► Estar disponível para esclarecimentos e ajustes.\n";
        $analise .= "  ► Preparar plano de implementação preliminar.\n\n";
        
    } else {
        $analise .= "ℹ️ Status Atual: " . strtoupper($status_questionario) . "\n";
        $analise .= "  ► Status personalizado ou não mapeado.\n";
        $analise .= "  ► Avaliar contexto específico e histórico de interações.\n";
        $analise .= "  ► Definir próximos passos conforme análise individual.\n\n";
    }
    
    // Recomendação específica baseada no status e na nota
    $analise .= "RECOMENDAÇÃO ESTRATÉGICA (Status + Performance):\n";
    if ((stripos($status_lower, 'conclu') !== false || stripos($status_lower, 'finaliz') !== false) && $nota >= 60) {
        $analise .= "🎯 OPORTUNIDADE PREMIUM - PRIORIDADE MÁXIMA\n";
        $analise .= "   Cliente engajado + performance boa = potencial de fechamento alto.\n";
        $analise .= "   Investir recursos para conversão imediata.\n\n";
    } elseif (stripos($status_lower, 'pendent') !== false && $nota < 40) {
        $analise .= "⚠️ RISCO DE PERDA - NECESSITA INTERVENÇÃO URGENTE\n";
        $analise .= "   Cliente desengajado + baixa performance = risco de abandono.\n";
        $analise .= "   Considerar estratégia de recuperação ou descarte.\n\n";
    } elseif (stripos($status_lower, 'agend') !== false) {
        $analise .= "📌 NUTRIR RELACIONAMENTO - MANTER AQUECIDO\n";
        $analise .= "   Aguardar timing do cliente mas manter presença.\n";
        $analise .= "   Enviar conteúdo relevante periodicamente.\n\n";
    }
    
    // Continuar com o restante da análise...
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "AVALIAÇÃO GERAL\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    // ...existing code for general evaluation...
    
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "PONTOS FORTES IDENTIFICADOS\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    if (!empty($pontos_fortes)) {
        foreach ($pontos_fortes as $ponto) {
            $analise .= "✓ " . $ponto . "\n";
        }
        $analise .= "\nEstes aspectos demonstram excelência e devem ser valorizados.\n\n";
    } else {
        $analise .= "Não foram identificados pontos com pontuação de destaque.\n\n";
    }
    
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "PONTOS DE ATENÇÃO E OPORTUNIDADES\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    if (!empty($pontos_atencao)) {
        foreach ($pontos_atencao as $ponto) {
            $analise .= "⚠ " . $ponto . "\n";
        }
        $analise .= "\nÁreas críticas que representam OPORTUNIDADES DE VENDAS.\n\n";
    } else {
        $analise .= "Não foram identificados pontos críticos evidentes.\n\n";
    }
    
    $analise .= "───────────────────────────────────────────────────────\n";
    $analise .= "DETALHAMENTO DAS RESPOSTAS\n";
    $analise .= "───────────────────────────────────────────────────────\n\n";
    
    $analise .= $texto_respostas;
    
    $analise .= "═══════════════════════════════════════════════════════\n";
    $analise .= "Análise gerada automaticamente em " . date('d/m/Y \à\s H:i') . "\n";
    $analise .= "Sistema de Gestão de Pesquisas - ITL Tech\n";
    $analise .= "═══════════════════════════════════════════════════════\n";

    echo json_encode([
        'success' => true,
        'analysis' => $analise
    ]);

} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'Erro ao processar análise: ' . $e->getMessage()
    ]);
}

// Função para analisar atividade econômica da região
function analisarAtividadeEconomicaRegiao($cidade, $uf, $cnae) {
    $analise = "";
    
    // Base de conhecimento de atividades por região
    $regioes_economicas = [
        'SP' => [
            'principais' => 'Serviços, Indústria, Tecnologia, Agronegócio',
            'destaques' => 'Polo financeiro e tecnológico nacional'
        ],
        'RJ' => [
            'principais' => 'Petróleo e Gás, Turismo, Serviços, TI',
            'destaques' => 'Centro de negócios e turismo'
        ],
        'MG' => [
            'principais' => 'Mineração, Agropecuária, Indústria, Serviços',
            'destaques' => 'Forte presença industrial e mineradora'
        ],
        'RS' => [
            'principais' => 'Agronegócio, Indústria, Tecnologia',
            'destaques' => 'Polo tecnológico e agroindustrial'
        ],
        'PR' => [
            'principais' => 'Agronegócio, Indústria, Logística',
            'destaques' => 'Centro logístico e agroindustrial'
        ],
        'SC' => [
            'principais' => 'Indústria, Tecnologia, Turismo, Agronegócio',
            'destaques' => 'Forte setor industrial e tecnológico'
        ],
        'BA' => [
            'principais' => 'Petroquímica, Turismo, Agronegócio',
            'destaques' => 'Polo petroquímico e turístico'
        ],
        'DF' => [
            'principais' => 'Administração Pública, Serviços, TI',
            'destaques' => 'Centro político e administrativo'
        ]
    ];
    
    $info_regiao = $regioes_economicas[$uf] ?? [
        'principais' => 'Comércio, Serviços, Agronegócio',
        'destaques' => 'Economia regional diversificada'
    ];
    
    $analise .= "Região: " . $cidade . "/" . $uf . "\n";
    $analise .= "Atividades Econômicas Predominantes: " . $info_regiao['principais'] . "\n";
    $analise .= "Contexto Regional: " . $info_regiao['destaques'] . "\n";
    
    // Análise do CNAE
    if (!empty($cnae)) {
        $cnae_num = preg_replace('/[^0-9]/', '', $cnae);
        $setor_cnae = identificarSetorCNAE($cnae_num);
        $analise .= "Setor de Atuação (CNAE): " . $setor_cnae . "\n";
    }
    
    return $analise;
}

// Função para identificar setor pelo CNAE
function identificarSetorCNAE($cnae) {
    $cnae_int = (int)substr($cnae, 0, 2);
    
    if ($cnae_int >= 1 && $cnae_int <= 3) return "Agricultura, Pecuária e Serviços Relacionados";
    if ($cnae_int >= 5 && $cnae_int <= 9) return "Indústrias Extrativas";
    if ($cnae_int >= 10 && $cnae_int <= 33) return "Indústrias de Transformação";
    if ($cnae_int >= 35 && $cnae_int <= 35) return "Eletricidade e Gás";
    if ($cnae_int >= 36 && $cnae_int <= 39) return "Água, Esgoto e Gestão de Resíduos";
    if ($cnae_int >= 41 && $cnae_int <= 43) return "Construção Civil";
    if ($cnae_int >= 45 && $cnae_int <= 47) return "Comércio Varejista e Atacadista";
    if ($cnae_int >= 49 && $cnae_int <= 53) return "Transporte e Logística";
    if ($cnae_int >= 55 && $cnae_int <= 56) return "Alojamento e Alimentação";
    if ($cnae_int >= 58 && $cnae_int <= 63) return "Informação e Comunicação / TI";
    if ($cnae_int >= 64 && $cnae_int <= 66) return "Atividades Financeiras e Seguros";
    if ($cnae_int >= 68 && $cnae_int <= 68) return "Atividades Imobiliárias";
    if ($cnae_int >= 69 && $cnae_int <= 75) return "Atividades Profissionais e Técnicas";
    if ($cnae_int >= 77 && $cnae_int <= 82) return "Serviços Administrativos e Complementares";
    if ($cnae_int >= 84 && $cnae_int <= 84) return "Administração Pública";
    if ($cnae_int >= 85 && $cnae_int <= 85) return "Educação";
    if ($cnae_int >= 86 && $cnae_int <= 88) return "Saúde Humana e Serviços Sociais";
    if ($cnae_int >= 90 && $cnae_int <= 93) return "Artes, Cultura e Entretenimento";
    if ($cnae_int >= 94 && $cnae_int <= 96) return "Outras Atividades de Serviços";
    
    return "Setor não identificado";
}
