<?php
require_once '../config/database.php';

// تم إلغاء تسجيل الدخول - الوصول مفتوح للجميع
// session_start();

$database = new Database();
$db = $database->getConnection();

$query_result = null;
$error_message = null;
$success_message = null;
$execution_time = 0;
$affected_rows = 0;

// معالجة الاستعلام
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['sql_query'])) {
    $sql_query = trim($_POST['sql_query']);
    
    if (!empty($sql_query)) {
        $start_time = microtime(true);
        
        try {
            $stmt = $db->prepare($sql_query);
            $stmt->execute();
            
            $execution_time = round((microtime(true) - $start_time) * 1000, 2);
            
            // تحديد نوع الاستعلام
            $query_type = strtoupper(substr(trim($sql_query), 0, 6));
            
            if ($query_type === 'SELECT' || $query_type === 'SHOW' || $query_type === 'DESCRI') {
                // استعلام قراءة
                $query_result = $stmt->fetchAll(PDO::FETCH_ASSOC);
                $affected_rows = count($query_result);
                $success_message = "تم تنفيذ الاستعلام بنجاح! عدد الصفوف: {$affected_rows}";
            } else {
                // استعلام كتابة (INSERT, UPDATE, DELETE, etc.)
                $affected_rows = $stmt->rowCount();
                $success_message = "تم تنفيذ الاستعلام بنجاح! عدد الصفوف المتأثرة: {$affected_rows}";
            }
            
        } catch (PDOException $e) {
            $error_message = "خطأ في تنفيذ الاستعلام: " . $e->getMessage();
        }
    } else {
        $error_message = "الرجاء إدخال استعلام SQL";
    }
}

// استعلامات جاهزة مفيدة
$quick_queries = [
    'عرض جميع الجداول' => 'SHOW TABLES',
    'عرض جميع المنتجات' => 'SELECT * FROM products LIMIT 10',
    'عرض جميع الطلبات' => 'SELECT * FROM orders LIMIT 10',
    'عرض جميع المستخدمين' => 'SELECT * FROM users LIMIT 10',
    'إحصائيات المنتجات' => 'SELECT COUNT(*) as total_products, SUM(stock) as total_stock FROM products',
    'إحصائيات الطلبات' => 'SELECT status, COUNT(*) as count, SUM(total_amount) as total FROM orders GROUP BY status',
    'المنتجات الأكثر مبيعاً' => 'SELECT p.name, COUNT(oi.id) as sales FROM products p LEFT JOIN order_items oi ON p.id = oi.product_id GROUP BY p.id ORDER BY sales DESC LIMIT 10',
    'العملاء الأكثر شراءً' => 'SELECT customer_name, COUNT(*) as orders, SUM(total_amount) as total FROM orders GROUP BY customer_name ORDER BY total DESC LIMIT 10',
];

// أمثلة لإنشاء جداول
$create_table_examples = [
    'جدول بسيط' => "CREATE TABLE example_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
    'جدول عملاء' => "CREATE TABLE customers_new (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE,
    phone VARCHAR(20),
    address TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)",
    'جدول إعدادات' => "CREATE TABLE site_settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    setting_key VARCHAR(100) UNIQUE NOT NULL,
    setting_value TEXT,
    setting_type VARCHAR(50) DEFAULT 'text',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
];
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>استعلامات SQL المباشرة - Roz Skin</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <link rel="stylesheet" href="assets/css/admin-layout.css">
    <style>
        body { 
            font-family: 'Tajawal', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
        }
        
        .sql-editor {
            font-family: 'Courier New', monospace;
            background: #1e293b;
            color: #e2e8f0;
            border: 2px solid #334155;
            border-radius: 8px;
            padding: 16px;
            min-height: 200px;
            font-size: 14px;
            line-height: 1.6;
            resize: vertical;
        }
        
        .sql-editor:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }
        
        .result-table {
            width: 100%;
            border-collapse: collapse;
            background: white;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }
        
        .result-table th {
            background: #1e293b;
            color: white;
            padding: 12px;
            text-align: right;
            font-weight: 600;
            border-bottom: 2px solid #334155;
        }
        
        .result-table td {
            padding: 10px 12px;
            border-bottom: 1px solid #e2e8f0;
            color: #1e293b;
        }
        
        .result-table tr:hover {
            background: #f8fafc;
        }
        
        .result-table tr:last-child td {
            border-bottom: none;
        }
        
        .quick-query-btn {
            background: white;
            border: 2px solid #e2e8f0;
            padding: 8px 16px;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s;
            font-size: 13px;
            color: #475569;
        }
        
        .quick-query-btn:hover {
            border-color: #3b82f6;
            color: #3b82f6;
            transform: translateY(-2px);
            box-shadow: 0 4px 6px rgba(59, 130, 246, 0.1);
        }
        
        .warning-box {
            background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
            border: 2px solid #f59e0b;
            border-radius: 12px;
            padding: 16px;
            margin-bottom: 24px;
        }
        
        .glass-card {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            border-radius: 16px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        }
        
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .animate-slide-in {
            animation: slideIn 0.4s ease-out;
        }
    </style>
</head>
<body>
    <?php include 'includes/sidebar.php'; ?>
    
    <div class="main-content">
        <!-- Top Bar -->
        <div class="top-bar">
            <div class="top-bar-left">
                <button class="mobile-menu-btn" onclick="openSidebar()">
                    <i class="fas fa-bars"></i>
                </button>
                <div>
                    <h1 class="page-title">🛠️ استعلامات SQL المباشرة</h1>
                    <p class="text-sm text-gray-500">تنفيذ استعلامات قاعدة البيانات مباشرة</p>
                </div>
            </div>
            
            <div class="top-bar-right">
                <a href="dashboard.php" class="bg-white px-4 py-2 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors">
                    <i class="fas fa-arrow-right ml-2"></i>
                    العودة للوحة التحكم
                </a>
            </div>
        </div>

        <div class="content-container">
            <!-- Warning Box -->
            <div class="warning-box animate-slide-in">
                <div class="flex items-start space-x-3 space-x-reverse">
                    <div class="flex-shrink-0">
                        <i class="fas fa-exclamation-triangle text-amber-600 text-2xl"></i>
                    </div>
                    <div>
                        <h3 class="font-bold text-amber-900 mb-1">⚠️ تحذير هام!</h3>
                        <p class="text-amber-800 text-sm">
                            هذه الأداة للمطورين فقط. استخدام استعلامات خاطئة قد يؤدي إلى حذف أو تعديل البيانات بشكل دائم.
                            <strong>كن حذراً جداً</strong> عند استخدام استعلامات DELETE أو UPDATE أو DROP.
                        </p>
                    </div>
                </div>
            </div>

            <!-- Quick Queries -->
            <div class="glass-card p-6 mb-6 animate-slide-in" style="animation-delay: 0.1s;">
                <h3 class="text-lg font-bold text-gray-900 mb-4">
                    <i class="fas fa-bolt text-yellow-500 ml-2"></i>
                    استعلامات سريعة
                </h3>
                <div class="flex flex-wrap gap-2 mb-4">
                    <?php foreach ($quick_queries as $label => $query): ?>
                        <button type="button" class="quick-query-btn" onclick="setQuery('<?php echo htmlspecialchars(addslashes($query)); ?>')">
                            <i class="fas fa-code ml-1"></i>
                            <?php echo $label; ?>
                        </button>
                    <?php endforeach; ?>
                </div>
                
                <div class="border-t border-gray-200 pt-4 mt-4">
                    <h4 class="text-md font-semibold text-gray-800 mb-3">
                        <i class="fas fa-table text-green-600 ml-2"></i>
                        أمثلة إنشاء جداول جديدة
                    </h4>
                    <div class="flex flex-wrap gap-2">
                        <?php foreach ($create_table_examples as $label => $query): ?>
                            <button type="button" class="quick-query-btn bg-green-50 border-green-200 text-green-700 hover:border-green-500 hover:text-green-800" onclick="setQuery('<?php echo htmlspecialchars(addslashes($query)); ?>')">
                                <i class="fas fa-plus-circle ml-1"></i>
                                <?php echo $label; ?>
                            </button>
                        <?php endforeach; ?>
                    </div>
                </div>
            </div>

            <!-- SQL Editor -->
            <div class="glass-card p-6 mb-6 animate-slide-in" style="animation-delay: 0.2s;">
                <form method="POST" action="">
                    <div class="mb-4">
                        <label class="block text-gray-900 font-semibold mb-2">
                            <i class="fas fa-terminal ml-2"></i>
                            اكتب استعلام SQL
                        </label>
                        <textarea 
                            name="sql_query" 
                            id="sqlQuery"
                            class="sql-editor w-full" 
                            placeholder="مثال: SELECT * FROM products WHERE stock > 0 LIMIT 10"
                            required
                        ><?php echo isset($_POST['sql_query']) ? htmlspecialchars($_POST['sql_query']) : ''; ?></textarea>
                    </div>
                    
                    <div class="flex items-center justify-between">
                        <button type="submit" class="bg-gradient-to-r from-blue-600 to-purple-600 text-white px-6 py-3 rounded-lg font-semibold hover:from-blue-700 hover:to-purple-700 transition-all transform hover:scale-105 shadow-lg">
                            <i class="fas fa-play ml-2"></i>
                            تنفيذ الاستعلام
                        </button>
                        
                        <button type="button" onclick="clearQuery()" class="bg-gray-200 text-gray-700 px-6 py-3 rounded-lg font-semibold hover:bg-gray-300 transition-colors">
                            <i class="fas fa-eraser ml-2"></i>
                            مسح
                        </button>
                    </div>
                </form>
            </div>

            <!-- Success Message -->
            <?php if ($success_message): ?>
                <div class="glass-card p-6 mb-6 bg-green-50 border-2 border-green-500 animate-slide-in">
                    <div class="flex items-center space-x-3 space-x-reverse">
                        <i class="fas fa-check-circle text-green-600 text-2xl"></i>
                        <div>
                            <h4 class="font-bold text-green-900"><?php echo $success_message; ?></h4>
                            <p class="text-sm text-green-700">وقت التنفيذ: <?php echo $execution_time; ?> ميلي ثانية</p>
                        </div>
                    </div>
                </div>
            <?php endif; ?>

            <!-- Error Message -->
            <?php if ($error_message): ?>
                <div class="glass-card p-6 mb-6 bg-red-50 border-2 border-red-500 animate-slide-in">
                    <div class="flex items-center space-x-3 space-x-reverse">
                        <i class="fas fa-times-circle text-red-600 text-2xl"></i>
                        <div>
                            <h4 class="font-bold text-red-900">خطأ في التنفيذ</h4>
                            <p class="text-sm text-red-700 font-mono"><?php echo htmlspecialchars($error_message); ?></p>
                        </div>
                    </div>
                </div>
            <?php endif; ?>

            <!-- Query Results -->
            <?php if ($query_result !== null && is_array($query_result)): ?>
                <div class="glass-card p-6 animate-slide-in">
                    <div class="flex items-center justify-between mb-4">
                        <h3 class="text-lg font-bold text-gray-900">
                            <i class="fas fa-table text-blue-600 ml-2"></i>
                            نتائج الاستعلام
                        </h3>
                        <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm font-semibold">
                            <?php echo count($query_result); ?> صف
                        </span>
                    </div>
                    
                    <?php if (count($query_result) > 0): ?>
                        <div class="overflow-x-auto">
                            <table class="result-table">
                                <thead>
                                    <tr>
                                        <?php foreach (array_keys($query_result[0]) as $column): ?>
                                            <th><?php echo htmlspecialchars($column); ?></th>
                                        <?php endforeach; ?>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($query_result as $row): ?>
                                        <tr>
                                            <?php foreach ($row as $value): ?>
                                                <td><?php echo htmlspecialchars($value ?? 'NULL'); ?></td>
                                            <?php endforeach; ?>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    <?php else: ?>
                        <div class="text-center py-8 text-gray-500">
                            <i class="fas fa-inbox text-4xl mb-3 opacity-50"></i>
                            <p>لا توجد نتائج</p>
                        </div>
                    <?php endif; ?>
                </div>
            <?php endif; ?>

            <!-- Help Section -->
            <div class="glass-card p-6 mt-6 animate-slide-in" style="animation-delay: 0.3s;">
                <h3 class="text-lg font-bold text-gray-900 mb-4">
                    <i class="fas fa-question-circle text-purple-600 ml-2"></i>
                    أمثلة مفيدة
                </h3>
                <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
                    <div class="bg-gray-50 p-4 rounded-lg">
                        <h4 class="font-semibold text-gray-900 mb-2">📊 استعلامات القراءة</h4>
                        <code class="text-xs text-gray-700 block mb-1">SELECT * FROM products</code>
                        <code class="text-xs text-gray-700 block mb-1">SHOW TABLES</code>
                        <code class="text-xs text-gray-700 block">DESCRIBE products</code>
                    </div>
                    
                    <div class="bg-gray-50 p-4 rounded-lg">
                        <h4 class="font-semibold text-gray-900 mb-2">✏️ استعلامات التعديل</h4>
                        <code class="text-xs text-gray-700 block mb-1">UPDATE products SET stock = 100 WHERE id = 1</code>
                        <code class="text-xs text-gray-700 block mb-1">DELETE FROM orders WHERE status = 'cancelled'</code>
                        <code class="text-xs text-gray-700 block">INSERT INTO categories (name) VALUES ('جديد')</code>
                    </div>
                    
                    <div class="bg-green-50 p-4 rounded-lg border-2 border-green-200">
                        <h4 class="font-semibold text-green-900 mb-2">🆕 إنشاء وحذف جداول</h4>
                        <code class="text-xs text-green-700 block mb-1">CREATE TABLE table_name (...)</code>
                        <code class="text-xs text-green-700 block mb-1">DROP TABLE table_name</code>
                        <code class="text-xs text-green-700 block mb-1">ALTER TABLE table_name ADD column_name VARCHAR(255)</code>
                        <code class="text-xs text-green-700 block">TRUNCATE TABLE table_name</code>
                    </div>
                </div>
                
                <div class="mt-4 bg-blue-50 p-4 rounded-lg border border-blue-200">
                    <h4 class="font-semibold text-blue-900 mb-2">
                        <i class="fas fa-lightbulb text-blue-600 ml-1"></i>
                        نصائح مهمة
                    </h4>
                    <ul class="text-sm text-blue-800 space-y-1">
                        <li>✅ استخدم <code class="bg-blue-100 px-1 rounded">SHOW TABLES</code> لعرض جميع الجداول الموجودة</li>
                        <li>✅ استخدم <code class="bg-blue-100 px-1 rounded">DESCRIBE table_name</code> لعرض تفاصيل جدول معين</li>
                        <li>✅ يمكنك إنشاء جداول جديدة باستخدام <code class="bg-blue-100 px-1 rounded">CREATE TABLE</code></li>
                        <li>⚠️ احذر من استخدام <code class="bg-red-100 px-1 rounded">DROP TABLE</code> - يحذف الجدول نهائياً!</li>
                        <li>⚠️ استخدم <code class="bg-yellow-100 px-1 rounded">WHERE</code> دائماً مع UPDATE و DELETE</li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
    
    <script>
        function openSidebar() {
            document.getElementById('sidebar').classList.add('active');
            document.getElementById('sidebarOverlay').classList.add('active');
            document.body.style.overflow = 'hidden';
        }
        
        function setQuery(query) {
            document.getElementById('sqlQuery').value = query;
            document.getElementById('sqlQuery').focus();
        }
        
        function clearQuery() {
            document.getElementById('sqlQuery').value = '';
            document.getElementById('sqlQuery').focus();
        }
        
        // Keyboard shortcuts
        document.addEventListener('keydown', (e) => {
            // Ctrl/Cmd + Enter to execute
            if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
                e.preventDefault();
                document.querySelector('form').submit();
            }
            
            // Ctrl/Cmd + K to clear
            if ((e.ctrlKey || e.metaKey) && e.key === 'k') {
                e.preventDefault();
                clearQuery();
            }
        });
        
        // Auto-resize textarea
        const textarea = document.getElementById('sqlQuery');
        textarea.addEventListener('input', function() {
            this.style.height = 'auto';
            this.style.height = Math.max(200, this.scrollHeight) + 'px';
        });
    </script>
</body>
</html>
