<?php
require_once 'config.php';

echo "<h2>حل مشكلة الأجهزة المكررة في السيرفر المشترك</h2>";
echo "<style>
    body { font-family: Arial, sans-serif; direction: rtl; }
    .success { color: green; }
    .warning { color: orange; }
    .error { color: red; }
    .info { color: blue; }
    pre { background: #f5f5f5; padding: 10px; border-radius: 5px; }
</style>";

echo "<pre>";

try {
    // بدء المعاملة
    $conn->beginTransaction();
    
    echo "🔍 البحث عن الأجهزة المكررة...\n";
    
    // العثور على الأجهزة المكررة
    $duplicates_stmt = $conn->query("
        SELECT device_name, COUNT(*) as count, 
               GROUP_CONCAT(device_id ORDER BY last_seen DESC SEPARATOR '|') as device_ids,
               GROUP_CONCAT(id ORDER BY last_seen DESC SEPARATOR '|') as ids
        FROM devices 
        GROUP BY device_name 
        HAVING count > 1 
        ORDER BY device_name
    ");
    
    $duplicates = $duplicates_stmt->fetchAll(PDO::FETCH_ASSOC);
    $total_duplicates = count($duplicates);
    
    if ($total_duplicates == 0) {
        echo "✅ لا توجد أجهزة مكررة للإصلاح\n";
    } else {
        echo "⚠️ تم العثور على $total_duplicates جهاز مكرر\n\n";
        
        $devices_merged = 0;
        $devices_removed = 0;
        
        foreach ($duplicates as $duplicate) {
            $device_name = $duplicate['device_name'];
            $device_ids = explode('|', $duplicate['device_ids']);
            $ids = explode('|', $duplicate['ids']);
            
            echo "📱 معالجة الجهاز: $device_name\n";
            echo "   عدد النسخ المكررة: " . $duplicate['count'] . "\n";
            
            // الاحتفاظ بأول جهاز (الأحدث حسب last_seen)
            $keep_device_id = $device_ids[0];
            $keep_id = $ids[0];
            
            echo "   الاحتفاظ بالجهاز: $keep_device_id\n";
            
            // حذف النسخ المكررة الأخرى
            for ($i = 1; $i < count($ids); $i++) {
                $remove_id = $ids[$i];
                $remove_device_id = $device_ids[$i];
                
                echo "   حذف النسخة المكررة: $remove_device_id\n";
                
                // حذف من جدول devices
                $delete_stmt = $conn->prepare("DELETE FROM devices WHERE id = ?");
                $delete_stmt->execute([$remove_id]);
                
                // تحديث جدول device_group_members إذا كان موجوداً
                try {
                    $update_groups_stmt = $conn->prepare("
                        UPDATE device_group_members 
                        SET device_id = ? 
                        WHERE device_id = ?
                    ");
                    $update_groups_stmt->execute([$keep_device_id, $remove_device_id]);
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود
                }
                
                $devices_removed++;
            }
            
            $devices_merged++;
            echo "   ✅ تم دمج الجهاز بنجاح\n\n";
        }
        
        // تأكيد المعاملة
        $conn->commit();
        
        echo "🎉 تم الانتهاء من الإصلاح:\n";
        echo "   - أجهزة تم دمجها: $devices_merged\n";
        echo "   - نسخ مكررة تم حذفها: $devices_removed\n";
        
        // إحصائيات نهائية
        echo "\n📊 الإحصائيات النهائية:\n";
        $final_stats = $conn->query("
            SELECT 
                COUNT(*) as total_devices,
                COUNT(DISTINCT device_name) as unique_names
            FROM devices
        ")->fetch(PDO::FETCH_ASSOC);
        
        echo "   - إجمالي الأجهزة: " . $final_stats['total_devices'] . "\n";
        echo "   - أسماء فريدة: " . $final_stats['unique_names'] . "\n";
        
        if ($final_stats['total_devices'] == $final_stats['unique_names']) {
            echo "   ✅ لا توجد أجهزة مكررة\n";
        }
    }
    
} catch (PDOException $e) {
    // التراجع عن المعاملة في حالة الخطأ
    $conn->rollBack();
    echo "❌ خطأ: " . $e->getMessage() . "\n";
    echo "تم التراجع عن جميع التغييرات\n";
}

echo "</pre>";

echo "<h3>نصائح للسيرفر المشترك:</h3>";
echo "<ul>";
echo "<li>تأكد من أن كل جهاز يولد معرف فريد صحيح</li>";
echo "<li>تجنب نسخ التطبيق من جهاز لآخر</li>";
echo "<li>استخدم معرف الجهاز الأصلي (IMEI أو Android ID)</li>";
echo "<li>قم بتشغيل هذا الإصلاح دورياً للحفاظ على نظافة البيانات</li>";
echo "</ul>";

echo "<p><a href='dashboard.php'>العودة إلى لوحة التحكم</a></p>";
?>