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

// Verificar login
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    die("Acesso negado.");
}

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

echo "<h2>🔄 Migração de Fluxos para Incluir E-mails</h2>";

// Buscar todos os fluxos
$sql = "SELECT * FROM fluxos_automatizados WHERE tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$result = $stmt->get_result();

$fluxos_migrados = 0;

while ($fluxo = $result->fetch_assoc()) {
    echo "<h3>📋 Processando fluxo: {$fluxo['nome']} (ID: {$fluxo['id']})</h3>";
    
    $acoes = json_decode($fluxo['acoes'], true);
    $tem_acao_email = false;
    
    // Verificar se já tem ação de e-mail
    foreach ($acoes as $acao) {
        if (isset($acao['tipo']) && $acao['tipo'] === 'enviar_email') {
            $tem_acao_email = true;
            break;
        }
    }
    
    if (!$tem_acao_email) {
        echo "<p style='color: orange;'>⚠️  Fluxo não tem ação de e-mail. Adicionando...</p>";
        
        // Adicionar ação de e-mail baseada no tipo de fluxo
        $nova_acao_email = criarAcaoEmailPorTipo($fluxo);
        
        if ($nova_acao_email) {
            // Adicionar a nova ação ao array de ações
            $acoes[] = $nova_acao_email;
            
            // Atualizar o fluxo
            $sql_update = "UPDATE fluxos_automatizados SET acoes = ? WHERE id = ?";
            $stmt_update = $conn->prepare($sql_update);
            $acoes_json = json_encode($acoes);
            $stmt_update->bind_param("si", $acoes_json, $fluxo['id']);
            
            if ($stmt_update->execute()) {
                echo "<p style='color: green;'>✅ Ação de e-mail adicionada com sucesso!</p>";
                $fluxos_migrados++;
            } else {
                echo "<p style='color: red;'>❌ Erro ao atualizar fluxo: " . $stmt_update->error . "</p>";
            }
            $stmt_update->close();
        }
    } else {
        echo "<p style='color: green;'>✅ Fluxo já tem ação de e-mail</p>";
    }
    
    echo "<hr>";
}

$stmt->close();

echo "<h2>🎯 RESUMO DA MIGRAÇÃO</h2>";
echo "<p><strong>Fluxos migrados:</strong> $fluxos_migrados</p>";
echo "<p><strong>Próximo passo:</strong> Testar criando um novo cliente</p>";

// Função para criar ação de e-mail baseada no tipo de fluxo
function criarAcaoEmailPorTipo($fluxo) {
    $condicoes = json_decode($fluxo['condicoes'], true);
    $primeira_condicao = $condicoes[0] ?? [];
    $tipo_condicao = $primeira_condicao['tipo'] ?? '';
    
    switch ($tipo_condicao) {
        case 'cadastro_manual':
            return [
                'tipo' => 'enviar_email',
                'assunto' => 'Bem-vindo ao nosso sistema, {cliente_nome}!',
                'mensagem' => "Olá {cliente_nome},\n\nSeja muito bem-vindo(a) ao nosso sistema!\n\nEstamos muito felizes em tê-lo(a) conosco.\n\nA qualquer momento, não hesite em entrar em contato conosco.\n\nAtenciosamente,\nEquipe de Suporte"
            ];
            
        case 'cadastro_importacao':
            return [
                'tipo' => 'enviar_email',
                'assunto' => 'Cadastro realizado com sucesso - {cliente_nome}',
                'mensagem' => "Prezado(a) {cliente_nome},\n\nSeu cadastro foi realizado com sucesso em nosso sistema.\n\nEm breve nossa equipe entrará em contato para dar continuidade ao processo.\n\nAtenciosamente,\nNossa Equipe"
            ];
            
        case 'etapa_funil':
            return [
                'tipo' => 'enviar_email', 
                'assunto' => 'Atualização no seu processo - {cliente_nome}',
                'mensagem' => "Olá {cliente_nome},\n\nSeu processo avançou para uma nova etapa!\n\nIsto significa que estamos progredindo em nossa jornada juntos.\n\nEm caso de dúvidas, estamos à disposição.\n\nAtenciosamente,\nNossa Equipe"
            ];
            
        case 'agendamento':
            return [
                'tipo' => 'enviar_email',
                'assunto' => 'Confirmação de Agendamento - {cliente_nome}',
                'mensagem' => "Caro(a) {cliente_nome},\n\nSeu agendamento foi confirmado com sucesso!\n\nEstamos ansiosos para nosso encontro.\n\nQualquer alteração, por favor, nos avise com antecedência.\n\nAtenciosamente,\nEquipe de Agendamento"
            ];
            
        case 'qualificado_qualquer':
            return [
                'tipo' => 'enviar_email',
                'assunto' => 'Parabéns pela qualificação, {cliente_nome}!',
                'mensagem' => "Parabéns, {cliente_nome}!\n\nVocê foi qualificado(a) em nosso processo!\n\nEste é um marco importante em nossa jornada.\n\nNossa equipe entrará em contato em breve com os próximos passos.\n\nAtenciosamente,\nEquipe de Qualificação"
            ];
            
        default:
            return [
                'tipo' => 'enviar_email',
                'assunto' => 'Comunicação importante - {cliente_nome}',
                'mensagem' => "Olá {cliente_nome},\n\nTemos uma comunicação importante para você.\n\nAgradecemos seu contato e interesse em nossos serviços.\n\nEm breve retornaremos com mais informações.\n\nAtenciosamente,\nNossa Equipe"
            ];
    }
}
?>