<?php
/**
 * Script SIMPLIFICADO para executar a migration de mensagens
 * Este script NÃO usa Models, apenas SQL direto
 * Acesse: http://localhost/SouMulherAgenda/migration_mensagens_simples.php
 */

// Configuração do banco
$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'soumulheragenda';

?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Migration - Sistema de Mensagens</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            max-width: 900px;
            margin: 50px auto;
            padding: 20px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
        }
        .container {
            background: white;
            padding: 40px;
            border-radius: 15px;
            box-shadow: 0 10px 40px rgba(0,0,0,0.2);
        }
        h1 {
            color: #667eea;
            border-bottom: 3px solid #667eea;
            padding-bottom: 15px;
            margin-bottom: 30px;
        }
        .status-box {
            background: #f8f9fa;
            padding: 20px;
            border-radius: 8px;
            border-left: 4px solid #667eea;
            margin: 20px 0;
            font-family: 'Courier New', monospace;
            font-size: 14px;
            line-height: 1.8;
        }
        .success {
            color: #28a745;
            font-weight: bold;
        }
        .error {
            color: #dc3545;
            font-weight: bold;
        }
        .info {
            color: #17a2b8;
        }
        .warning {
            color: #ffc107;
        }
        .btn {
            display: inline-block;
            padding: 12px 30px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            text-decoration: none;
            border-radius: 8px;
            margin: 10px 5px;
            transition: all 0.3s ease;
        }
        .btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
        }
        .btn-success {
            background: linear-gradient(135deg, #56ab2f 0%, #a8e063 100%);
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
        }
        th, td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        th {
            background: #667eea;
            color: white;
        }
        tr:hover {
            background: #f5f5f5;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>🔧 Migration - Sistema de Mensagens</h1>

        <?php
        // Conectar ao MySQL sem usar CodeIgniter
        $conn = new mysqli($host, $user, $pass, $database);

        if ($conn->connect_error) {
            echo '<div class="status-box"><span class="error">❌ Erro de conexão: ' . $conn->connect_error . '</span></div>';
            exit;
        }

        echo '<div class="status-box">';
        echo '<span class="success">✓ Conectado ao banco de dados</span><br>';
        echo 'Banco: <strong>' . $database . '</strong><br>';
        echo '</div>';

        // Verificar estrutura ANTES
        echo '<h2>📊 Status ANTES da Migration</h2>';
        echo '<div class="status-box">';

        $result = $conn->query("DESCRIBE mensagens");
        $colunas_antes = [];

        echo '<strong>Colunas existentes:</strong><br>';
        while ($row = $result->fetch_assoc()) {
            $colunas_antes[] = $row['Field'];
            echo '  - ' . $row['Field'] . ' (' . $row['Type'] . ')<br>';
        }

        $tem_user_id = in_array('user_id', $colunas_antes);
        $tem_lida = in_array('lida', $colunas_antes);
        $tem_created = in_array('created_at', $colunas_antes);
        $tem_updated = in_array('updated_at', $colunas_antes);

        echo '<br><strong>Verificação:</strong><br>';
        echo ($tem_user_id ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' user_id<br>';
        echo ($tem_lida ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' lida<br>';
        echo ($tem_created ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' created_at<br>';
        echo ($tem_updated ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' updated_at<br>';
        echo '</div>';

        // EXECUTAR MIGRATION
        echo '<h2>🚀 Executando Migration...</h2>';
        echo '<div class="status-box">';

        $erros = 0;
        $sucessos = 0;

        // 1. Adicionar user_id
        if (!$tem_user_id) {
            $sql = "ALTER TABLE mensagens ADD user_id INT(11) NOT NULL DEFAULT 0 AFTER id";
            if ($conn->query($sql) === TRUE) {
                echo '<span class="success">✓ Coluna user_id adicionada</span><br>';
                $sucessos++;
            } else {
                echo '<span class="error">✗ Erro ao adicionar user_id: ' . $conn->error . '</span><br>';
                $erros++;
            }
        } else {
            echo '<span class="info">→ Coluna user_id já existe</span><br>';
        }

        // 2. Adicionar lida
        if (!$tem_lida) {
            $sql = "ALTER TABLE mensagens ADD lida TINYINT(1) NOT NULL DEFAULT 0 AFTER tag";
            if ($conn->query($sql) === TRUE) {
                echo '<span class="success">✓ Coluna lida adicionada</span><br>';
                $sucessos++;
            } else {
                echo '<span class="error">✗ Erro ao adicionar lida: ' . $conn->error . '</span><br>';
                $erros++;
            }
        } else {
            echo '<span class="info">→ Coluna lida já existe</span><br>';
        }

        // 3. Adicionar created_at
        if (!$tem_created) {
            $sql = "ALTER TABLE mensagens ADD created_at DATETIME NULL DEFAULT NULL";
            if ($conn->query($sql) === TRUE) {
                echo '<span class="success">✓ Coluna created_at adicionada</span><br>';
                $sucessos++;
            } else {
                echo '<span class="error">✗ Erro ao adicionar created_at: ' . $conn->error . '</span><br>';
                $erros++;
            }
        } else {
            echo '<span class="info">→ Coluna created_at já existe</span><br>';
        }

        // 4. Adicionar updated_at
        if (!$tem_updated) {
            $sql = "ALTER TABLE mensagens ADD updated_at DATETIME NULL DEFAULT NULL";
            if ($conn->query($sql) === TRUE) {
                echo '<span class="success">✓ Coluna updated_at adicionada</span><br>';
                $sucessos++;
            } else {
                echo '<span class="error">✗ Erro ao adicionar updated_at: ' . $conn->error . '</span><br>';
                $erros++;
            }
        } else {
            echo '<span class="info">→ Coluna updated_at já existe</span><br>';
        }

        echo '<br>';

        // 5. Criar índices
        $indices = [
            'idx_user_id' => 'ALTER TABLE mensagens ADD INDEX idx_user_id (user_id)',
            'idx_user_lida' => 'ALTER TABLE mensagens ADD INDEX idx_user_lida (user_id, lida)',
            'idx_created_at' => 'ALTER TABLE mensagens ADD INDEX idx_created_at (created_at)'
        ];

        foreach ($indices as $nome => $sql) {
            // Verificar se índice já existe
            $check = $conn->query("SHOW INDEX FROM mensagens WHERE Key_name = '$nome'");
            if ($check->num_rows > 0) {
                echo '<span class="info">→ Índice ' . $nome . ' já existe</span><br>';
            } else {
                if ($conn->query($sql) === TRUE) {
                    echo '<span class="success">✓ Índice ' . $nome . ' criado</span><br>';
                    $sucessos++;
                } else {
                    echo '<span class="error">✗ Erro ao criar índice ' . $nome . ': ' . $conn->error . '</span><br>';
                    $erros++;
                }
            }
        }

        echo '</div>';

        // Verificar estrutura DEPOIS
        echo '<h2>📊 Status DEPOIS da Migration</h2>';
        echo '<div class="status-box">';

        $result = $conn->query("DESCRIBE mensagens");

        echo '<table>';
        echo '<tr><th>Coluna</th><th>Tipo</th><th>Null</th><th>Default</th></tr>';

        $colunas_depois = [];
        while ($row = $result->fetch_assoc()) {
            $colunas_depois[] = $row['Field'];
            echo '<tr>';
            echo '<td><strong>' . $row['Field'] . '</strong></td>';
            echo '<td>' . $row['Type'] . '</td>';
            echo '<td>' . $row['Null'] . '</td>';
            echo '<td>' . ($row['Default'] ?? 'NULL') . '</td>';
            echo '</tr>';
        }
        echo '</table>';

        $tem_user_id_final = in_array('user_id', $colunas_depois);
        $tem_lida_final = in_array('lida', $colunas_depois);
        $tem_created_final = in_array('created_at', $colunas_depois);
        $tem_updated_final = in_array('updated_at', $colunas_depois);

        echo '<br><strong>Verificação Final:</strong><br>';
        echo ($tem_user_id_final ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' user_id<br>';
        echo ($tem_lida_final ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' lida<br>';
        echo ($tem_created_final ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' created_at<br>';
        echo ($tem_updated_final ? '<span class="success">✓</span>' : '<span class="error">✗</span>') . ' updated_at<br>';

        echo '</div>';

        // Resultado final
        if ($tem_user_id_final && $tem_lida_final && $tem_created_final && $tem_updated_final) {
            echo '<div class="status-box">';
            echo '<span class="success">🎉 MIGRATION EXECUTADA COM SUCESSO!</span><br><br>';
            echo '<strong>Próximos passos:</strong><br>';
            echo '1. Leia o arquivo: <strong>ATIVAR_MENSAGENS_DINAMICAS.md</strong><br>';
            echo '2. Ative o badge e dropdown dinâmicos no menu<br>';
            echo '3. Insira mensagens de teste (veja abaixo)<br>';
            echo '4. Acesse a página de mensagens<br>';
            echo '</div>';

            echo '<h2>📝 Mensagens de Teste</h2>';
            echo '<div class="status-box">';
            echo 'Execute este SQL no phpMyAdmin:<br><br>';
            echo '<pre style="background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 5px; overflow-x: auto;">';
            echo "INSERT INTO mensagens (user_id, titulo_acao, mensagem, tag, lida, created_at)\n";
            echo "VALUES\n";
            echo "(32, 'Bem-vindo!', 'Sistema de mensagens ativado com sucesso!', 'success', 0, NOW()),\n";
            echo "(32, 'Nova funcionalidade', 'Agora você pode receber avisos importantes aqui.', 'info', 0, NOW()),\n";
            echo "(32, 'Atenção', 'Faça backup dos seus dados regularmente.', 'warning', 0, NOW());";
            echo '</pre>';
            echo '<small><strong>Nota:</strong> O user_id 32 é o seu usuário atual do sistema.</small>';
            echo '</div>';
        } else {
            echo '<div class="status-box">';
            echo '<span class="error">⚠ Algumas colunas ainda estão faltando!</span><br>';
            echo 'Por favor, verifique os erros acima.';
            echo '</div>';
        }

        $conn->close();
        ?>

        <div style="text-align: center; margin-top: 30px;">
            <a href="http://localhost/SouMulherAgenda/dashboard" class="btn">🏠 Dashboard</a>
            <?php if ($tem_user_id_final && $tem_lida_final): ?>
            <a href="http://localhost/SouMulherAgenda/mensagens" class="btn btn-success">📧 Ver Mensagens</a>
            <?php endif; ?>
        </div>
    </div>
</body>
</html>
