<?php
session_start();
require 'config.php';
require_once __DIR__ . '/firebase_service.php';

// التأكد من تسجيل الدخول
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

// معالجة الطلبات AJAX
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    header('Content-Type: application/json; charset=UTF-8');
    
    $action = $_POST['action'];
    $response = ['success' => false, 'message' => ''];
    
    try {
        switch ($action) {
            case 'add_device':
                $deviceId = trim($_POST['device_id'] ?? '');
                $deviceName = trim($_POST['device_name'] ?? '');
                
                if (empty($deviceId)) {
                    $response['message'] = 'معرف الجهاز مطلوب';
                    echo json_encode($response, JSON_UNESCAPED_UNICODE);
                    exit;
                }
                
                if (empty($deviceName)) {
                    $deviceName = $deviceId; // استخدام device_id كاسم افتراضي
                }
                
                // التحقق من وجود الجهاز في Firebase
                $firebaseDevices = FirebaseService::getAllDevices(false);
                $firebaseDeviceIds = array_column($firebaseDevices, 'device_id');
                
                if (!in_array($deviceId, $firebaseDeviceIds)) {
                    // محاولة جلب الاسم من Firebase
                    $firebaseName = FirebaseService::getDeviceName($deviceId);
                    if ($firebaseName && $firebaseName !== 'Unknown Device' && $firebaseName !== $deviceId) {
                        $deviceName = $firebaseName;
                    }
                }
                
                // إضافة الجهاز إلى MySQL
                $stmt = $conn->prepare("
                    INSERT INTO devices (device_id, device_name, status) 
                    VALUES (?, ?, 'active')
                    ON DUPLICATE KEY UPDATE 
                        device_name = VALUES(device_name),
                        status = 'active',
                        updated_at = CURRENT_TIMESTAMP
                ");
                $stmt->execute([$deviceId, $deviceName]);
                
                // مسح الكاش
                unset($_SESSION['device_data_cache']);
                $_SESSION['device_data_needs_refresh'] = true;
                
                $response['success'] = true;
                $response['message'] = '✅ تم إضافة الجهاز بنجاح';
                break;
                
            case 'delete_device':
                $deviceId = trim($_POST['device_id'] ?? '');
                
                if (empty($deviceId)) {
                    $response['message'] = 'معرف الجهاز مطلوب';
                    echo json_encode($response, JSON_UNESCAPED_UNICODE);
                    exit;
                }
                
                $deletedCounts = [];
                $errors = [];
                
                // ✅ 1. حذف جميع المواقع من جدول locations في MySQL
                try {
                    $stmt = $conn->prepare("DELETE FROM locations WHERE device_id = ?");
                    $stmt->execute([$deviceId]);
                    $deletedCounts['locations'] = $stmt->rowCount();
                    error_log("✅ [manage_devices] تم حذف {$deletedCounts['locations']} موقع من جدول locations للجهاز: {$deviceId}");
                } catch (PDOException $e) {
                    $errors[] = "خطأ في حذف المواقع: " . $e->getMessage();
                    error_log("❌ [manage_devices] خطأ في حذف المواقع: " . $e->getMessage());
                }
                
                // ✅ 2. حذف الجهاز من جميع المجموعات (device_group_members)
                try {
                    $stmt = $conn->prepare("DELETE FROM device_group_members WHERE device_id = ?");
                    $stmt->execute([$deviceId]);
                    $deletedCounts['group_members'] = $stmt->rowCount();
                    error_log("✅ [manage_devices] تم حذف {$deletedCounts['group_members']} سجل من device_group_members للجهاز: {$deviceId}");
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود
                    error_log("ℹ️ [manage_devices] جدول device_group_members غير موجود أو حدث خطأ: " . $e->getMessage());
                }
                
                // ✅ 3. حذف التنبيهات المرتبطة بالجهاز (alerts)
                try {
                    $stmt = $conn->prepare("DELETE FROM alerts WHERE device_id = ?");
                    $stmt->execute([$deviceId]);
                    $deletedCounts['alerts'] = $stmt->rowCount();
                    error_log("✅ [manage_devices] تم حذف {$deletedCounts['alerts']} تنبيه من جدول alerts للجهاز: {$deviceId}");
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود
                    error_log("ℹ️ [manage_devices] جدول alerts غير موجود أو حدث خطأ: " . $e->getMessage());
                }
                
                // ✅ 4. حذف حالة الحركة (device_motion_state)
                try {
                    $stmt = $conn->prepare("DELETE FROM device_motion_state WHERE device_id = ?");
                    $stmt->execute([$deviceId]);
                    $deletedCounts['motion_state'] = $stmt->rowCount();
                    error_log("✅ [manage_devices] تم حذف حالة الحركة للجهاز: {$deviceId}");
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود
                    error_log("ℹ️ [manage_devices] جدول device_motion_state غير موجود أو حدث خطأ: " . $e->getMessage());
                }
                
                // ✅ 5. حذف الجهاز من جدول devices الرئيسي
                try {
                    $stmt = $conn->prepare("DELETE FROM devices WHERE device_id = ?");
                    $stmt->execute([$deviceId]);
                    $deletedCounts['devices'] = $stmt->rowCount();
                    error_log("✅ [manage_devices] تم حذف الجهاز من جدول devices: {$deviceId}");
                } catch (PDOException $e) {
                    $errors[] = "خطأ في حذف الجهاز من جدول devices: " . $e->getMessage();
                    error_log("❌ [manage_devices] خطأ في حذف الجهاز من جدول devices: " . $e->getMessage());
                }
                
                // ✅ 6. حذف جميع بيانات الجهاز من Firebase (جميع المواقع)
                $firebaseDeleted = false;
                if (defined('USE_FIREBASE') && USE_FIREBASE) {
                    try {
                        $firebaseDeleted = FirebaseService::deleteDevice($deviceId);
                        if ($firebaseDeleted) {
                            error_log("✅ [manage_devices] تم حذف الجهاز من Firebase بنجاح: {$deviceId}");
                        } else {
                            error_log("⚠️ [manage_devices] فشل حذف الجهاز من Firebase: {$deviceId}");
                        }
                    } catch (Exception $e) {
                        $errors[] = "خطأ في حذف الجهاز من Firebase: " . $e->getMessage();
                        error_log("❌ [manage_devices] خطأ في حذف الجهاز من Firebase: " . $e->getMessage());
                    }
                } else {
                    error_log("ℹ️ [manage_devices] Firebase غير مفعّل، تم تخطي حذف البيانات من Firebase");
                }
                
                // ✅ 7. الاحتفاظ بجهات الاتصال (device_contacts) - لا يتم حذفها
                error_log("ℹ️ [manage_devices] تم الاحتفاظ بجهات الاتصال للجهاز: {$deviceId}");
                
                // مسح الكاش
                unset($_SESSION['device_data_cache']);
                $_SESSION['device_data_needs_refresh'] = true;
                
                // بناء رسالة النجاح
                $messageParts = [];
                if (isset($deletedCounts['devices']) && $deletedCounts['devices'] > 0) {
                    $messageParts[] = "تم حذف الجهاز من MySQL";
                }
                if (isset($deletedCounts['locations']) && $deletedCounts['locations'] > 0) {
                    $messageParts[] = "تم حذف {$deletedCounts['locations']} موقع";
                }
                if (isset($deletedCounts['group_members']) && $deletedCounts['group_members'] > 0) {
                    $messageParts[] = "تم حذف {$deletedCounts['group_members']} عضوية في المجموعات";
                }
                if (isset($deletedCounts['alerts']) && $deletedCounts['alerts'] > 0) {
                    $messageParts[] = "تم حذف {$deletedCounts['alerts']} تنبيه";
                }
                if ($firebaseDeleted) {
                    $messageParts[] = "تم حذف جميع البيانات من Firebase";
                }
                if (empty($messageParts)) {
                    $messageParts[] = "تمت العملية";
                }
                
                $response['success'] = true;
                $response['message'] = '✅ ' . implode('، ', $messageParts) . ' (تم الاحتفاظ بجهات الاتصال)';
                
                if (!empty($errors)) {
                    $response['warnings'] = $errors;
                    error_log("⚠️ [manage_devices] تحذيرات أثناء حذف الجهاز {$deviceId}: " . implode('; ', $errors));
                }
                
                break;
                
            case 'update_device':
                $deviceId = trim($_POST['device_id'] ?? '');
                $deviceName = trim($_POST['device_name'] ?? '');
                $formLink = trim($_POST['form_link'] ?? '');
                $reportLink = trim($_POST['report_link'] ?? '');
                $updateFirebase = isset($_POST['update_firebase']) && $_POST['update_firebase'] === 'true';
                
                if (empty($deviceId) || empty($deviceName)) {
                    $response['message'] = 'معرف الجهاز والاسم مطلوبان';
                    echo json_encode($response, JSON_UNESCAPED_UNICODE);
                    exit;
                }
                
                // ✅ 1. تحديث في MySQL - جدول devices (بما في ذلك form_link و report_link)
                try {
                    // التحقق من وجود الأعمدة أولاً
                    $checkColumns = $conn->query("SHOW COLUMNS FROM devices LIKE 'form_link'");
                    $hasFormLink = $checkColumns->rowCount() > 0;
                    
                    $checkColumns = $conn->query("SHOW COLUMNS FROM devices LIKE 'report_link'");
                    $hasReportLink = $checkColumns->rowCount() > 0;
                    
                    if ($hasFormLink && $hasReportLink) {
                        $stmt = $conn->prepare("
                            UPDATE devices 
                            SET device_name = ?, form_link = ?, report_link = ?, updated_at = CURRENT_TIMESTAMP 
                            WHERE device_id = ?
                        ");
                        $stmt->execute([$deviceName, $formLink ?: null, $reportLink ?: null, $deviceId]);
                    } else {
                        // إذا لم تكن الأعمدة موجودة، نضيفها أولاً
                        if (!$hasFormLink) {
                            $conn->exec("ALTER TABLE devices ADD COLUMN form_link VARCHAR(500) DEFAULT NULL AFTER device_name");
                        }
                        if (!$hasReportLink) {
                            $conn->exec("ALTER TABLE devices ADD COLUMN report_link VARCHAR(500) DEFAULT NULL AFTER form_link");
                        }
                        $stmt = $conn->prepare("
                            UPDATE devices 
                            SET device_name = ?, form_link = ?, report_link = ?, updated_at = CURRENT_TIMESTAMP 
                            WHERE device_id = ?
                        ");
                        $stmt->execute([$deviceName, $formLink ?: null, $reportLink ?: null, $deviceId]);
                    }
                } catch (PDOException $e) {
                    // إذا فشل التحديث مع form_link و report_link، نحدث device_name فقط
                    $stmt = $conn->prepare("
                        UPDATE devices 
                        SET device_name = ?, updated_at = CURRENT_TIMESTAMP 
                        WHERE device_id = ?
                    ");
                    $stmt->execute([$deviceName, $deviceId]);
                }
                
                // ✅ 2. تحديث في MySQL - جدول locations (إذا كان يحتوي على device_name)
                try {
                    $stmtLocations = $conn->prepare("
                        UPDATE locations 
                        SET device_name = ?, updated_at = CURRENT_TIMESTAMP 
                        WHERE device_id = ?
                    ");
                    $stmtLocations->execute([$deviceName, $deviceId]);
                    $locationsUpdated = $stmtLocations->rowCount();
                    if ($locationsUpdated > 0) {
                        error_log("✅ [manage_devices.php] تم تحديث اسم الجهاز في {$locationsUpdated} موقع في جدول locations");
                    }
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود أو لا يحتوي على device_name
                    error_log("ℹ️ [manage_devices.php] جدول locations لا يحتوي على device_name أو غير موجود");
                }
                
                // ✅ 3. تحديث في MySQL - جدول device_contacts (نسخ احتياطي لجهات الاتصال)
                try {
                    $stmtContacts = $conn->prepare("
                        UPDATE device_contacts 
                        SET device_name = ? 
                        WHERE device_id = ?
                    ");
                    $stmtContacts->execute([$deviceName, $deviceId]);
                    $contactsUpdated = $stmtContacts->rowCount();
                    if ($contactsUpdated > 0) {
                        error_log("✅ [manage_devices.php] تم تحديث اسم الجهاز في {$contactsUpdated} سجل في جدول device_contacts");
                    }
                } catch (PDOException $e) {
                    // تجاهل الخطأ إذا كان الجدول غير موجود
                    error_log("ℹ️ [manage_devices.php] جدول device_contacts غير موجود أو حدث خطأ: " . $e->getMessage());
                }
                
                // ✅ 4. تحديث في Firebase إذا طلب المستخدم
                $firebaseUpdated = false;
                if ($updateFirebase) {
                    try {
                        $firebaseUpdated = FirebaseService::updateDeviceName($deviceId, $deviceName);
                        if ($firebaseUpdated) {
                            error_log("✅ [manage_devices.php] تم تحديث اسم الجهاز في Firebase: {$deviceId} -> {$deviceName}");
                        } else {
                            error_log("⚠️ [manage_devices.php] فشل تحديث اسم الجهاز في Firebase: {$deviceId}");
                        }
                    } catch (Exception $e) {
                        error_log("❌ [manage_devices.php] خطأ في تحديث Firebase: " . $e->getMessage());
                    }
                }
                
                // ✅ 5. مسح الكاش في جميع الجلسات (Dashboard)
                // إنشاء ملف flag لتحديث الكاش في Dashboard
                $flagFile = __DIR__ . '/cache_flags/device_name_updated_' . $deviceId . '.flag';
                $flagDir = dirname($flagFile);
                if (!is_dir($flagDir)) {
                    @mkdir($flagDir, 0755, true);
                }
                @file_put_contents($flagFile, time());
                
                // مسح الكاش في الجلسة الحالية
                unset($_SESSION['device_data_cache']);
                $_SESSION['device_data_needs_refresh'] = true;
                
                $response['success'] = true;
                $updateDetails = [];
                $updateDetails[] = 'MySQL (devices)';
                if (isset($locationsUpdated) && $locationsUpdated > 0) {
                    $updateDetails[] = "MySQL (locations: {$locationsUpdated})";
                }
                if (isset($contactsUpdated) && $contactsUpdated > 0) {
                    $updateDetails[] = "MySQL (device_contacts: {$contactsUpdated})";
                }
                if ($updateFirebase && $firebaseUpdated) {
                    $updateDetails[] = 'Firebase';
                }
                
                if ($updateFirebase) {
                    if ($firebaseUpdated) {
                        $response['message'] = '✅ تم تحديث الجهاز بنجاح في: ' . implode(', ', $updateDetails);
                    } else {
                        $response['message'] = '✅ تم تحديث الجهاز في: ' . implode(', ', $updateDetails) . ' (فشل Firebase)';
                    }
                } else {
                    $response['message'] = '✅ تم تحديث الجهاز في: ' . implode(', ', $updateDetails);
                }
                break;
                
            case 'sync_from_firebase':
                // جلب الأجهزة من Firebase
                $firebaseDevices = FirebaseService::getAllDevices(false);
                $firebaseDeviceIds = array_column($firebaseDevices, 'device_id');
                
                // جلب الأجهزة الموجودة في MySQL
                $stmt = $conn->query("SELECT device_id FROM devices");
                $existingDeviceIds = [];
                while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                    $existingDeviceIds[] = $row['device_id'];
                }
                
                // تحديد الأجهزة الجديدة
                $newDeviceIds = array_diff($firebaseDeviceIds, $existingDeviceIds);
                $added = 0;
                
                foreach ($newDeviceIds as $deviceId) {
                    // محاولة جلب الاسم من Firebase
                    $deviceName = FirebaseService::getDeviceName($deviceId);
                    if (!$deviceName || $deviceName === 'Unknown Device' || $deviceName === $deviceId) {
                        $deviceName = FirebaseService::getDeviceNameFromAnyLocation($deviceId, 3);
                    }
                    
                    if (!$deviceName || $deviceName === 'Unknown Device' || $deviceName === $deviceId) {
                        $deviceName = $deviceId; // استخدام device_id كاسم افتراضي
                    }
                    
                    try {
                        $insertStmt = $conn->prepare("
                            INSERT INTO devices (device_id, device_name, status) 
                            VALUES (?, ?, 'active')
                            ON DUPLICATE KEY UPDATE 
                                device_name = VALUES(device_name),
                                status = 'active'
                        ");
                        $insertStmt->execute([$deviceId, $deviceName]);
                        $added++;
                    } catch (PDOException $e) {
                        // تجاهل الأخطاء
                    }
                }
                
                // مسح الكاش
                unset($_SESSION['device_data_cache']);
                $_SESSION['device_data_needs_refresh'] = true;
                
                $response['success'] = true;
                $response['message'] = "✅ تمت مزامنة {$added} جهاز جديد من Firebase";
                break;
                
            default:
                $response['message'] = 'إجراء غير معروف';
        }
    } catch (Exception $e) {
        $response['message'] = 'خطأ: ' . $e->getMessage();
    }
    
    echo json_encode($response, JSON_UNESCAPED_UNICODE);
    exit;
}

// جلب قائمة الأجهزة من MySQL (بما في ذلك form_link و report_link)
try {
    // التحقق من وجود الأعمدة أولاً
    $checkColumns = $conn->query("SHOW COLUMNS FROM devices LIKE 'form_link'");
    $hasFormLink = $checkColumns->rowCount() > 0;
    
    $checkColumns = $conn->query("SHOW COLUMNS FROM devices LIKE 'report_link'");
    $hasReportLink = $checkColumns->rowCount() > 0;
    
    if ($hasFormLink && $hasReportLink) {
        $stmt = $conn->query("
            SELECT device_id, device_name, form_link, report_link, status, created_at, updated_at, last_seen
            FROM devices 
            ORDER BY device_name ASC
        ");
    } else {
        // إذا لم تكن الأعمدة موجودة، نستخدم SELECT بدونها
        $stmt = $conn->query("
            SELECT device_id, device_name, status, created_at, updated_at, last_seen
            FROM devices 
            ORDER BY device_name ASC
        ");
    }
    $devices = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // إضافة form_link و report_link كقيم null إذا لم تكن موجودة
    if (!$hasFormLink || !$hasReportLink) {
        foreach ($devices as &$device) {
            if (!isset($device['form_link'])) $device['form_link'] = null;
            if (!isset($device['report_link'])) $device['report_link'] = null;
        }
    }
} catch (PDOException $e) {
    // في حالة الخطأ، نستخدم SELECT بسيط
    $stmt = $conn->query("
        SELECT device_id, device_name, status, created_at, updated_at, last_seen
        FROM devices 
        ORDER BY device_name ASC
    ");
    $devices = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($devices as &$device) {
        $device['form_link'] = null;
        $device['report_link'] = null;
    }
}

// جلب الأجهزة من Firebase للمقارنة
$firebaseDevices = [];
try {
    $firebaseDevices = FirebaseService::getAllDevices(false);
    $firebaseDeviceIds = array_column($firebaseDevices, 'device_id');
} catch (Exception $e) {
    $firebaseDeviceIds = [];
}

?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>إدارة الأجهزة - Almanara GPS</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 20px;
            direction: rtl;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: white;
            border-radius: 15px;
            box-shadow: 0 10px 40px rgba(0,0,0,0.2);
            overflow: hidden;
        }
        
        .header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            text-align: center;
        }
        
        .header h1 {
            font-size: 28px;
            margin-bottom: 10px;
        }
        
        .header p {
            opacity: 0.9;
            font-size: 14px;
        }
        
        .actions-bar {
            padding: 20px 30px;
            background: #f8f9fa;
            border-bottom: 1px solid #e0e0e0;
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
            align-items: center;
        }
        
        .btn {
            padding: 12px 24px;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            font-size: 14px;
            font-weight: 600;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        
        .btn-primary {
            background: #667eea;
            color: white;
        }
        
        .btn-primary:hover {
            background: #5568d3;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
        }
        
        .btn-success {
            background: #28a745;
            color: white;
        }
        
        .btn-success:hover {
            background: #218838;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(40, 167, 69, 0.4);
        }
        
        .btn-danger {
            background: #dc3545;
            color: white;
        }
        
        .btn-danger:hover {
            background: #c82333;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
        }
        
        .btn-secondary {
            background: #6c757d;
            color: white;
        }
        
        .btn-secondary:hover {
            background: #5a6268;
        }
        
        .content {
            padding: 30px;
        }
        
        .devices-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        
        .devices-table th {
            background: #f8f9fa;
            padding: 15px;
            text-align: right;
            font-weight: 600;
            color: #495057;
            border-bottom: 2px solid #dee2e6;
        }
        
        .devices-table td {
            padding: 15px;
            border-bottom: 1px solid #e9ecef;
        }
        
        .devices-table tr:hover {
            background: #f8f9fa;
        }
        
        .device-name {
            font-weight: 600;
            color: #212529;
        }
        
        .device-id {
            font-family: 'Courier New', monospace;
            font-size: 12px;
            color: #6c757d;
        }
        
        .status-badge {
            display: inline-block;
            padding: 5px 12px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
        }
        
        .status-active {
            background: #d4edda;
            color: #155724;
        }
        
        .status-inactive {
            background: #f8d7da;
            color: #721c24;
        }
        
        .firebase-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 11px;
            background: #e3f2fd;
            color: #1976d2;
            margin-right: 5px;
        }
        
        .action-buttons {
            display: flex;
            gap: 8px;
        }
        
        .btn-sm {
            padding: 6px 12px;
            font-size: 12px;
        }
        
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.5);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }
        
        .modal.active {
            display: flex;
        }
        
        .modal-content {
            background: white;
            padding: 30px;
            border-radius: 15px;
            max-width: 500px;
            width: 90%;
            box-shadow: 0 10px 40px rgba(0,0,0,0.3);
        }
        
        .modal-header {
            font-size: 20px;
            font-weight: 600;
            margin-bottom: 20px;
            color: #212529;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: #495057;
        }
        
        .form-group input {
            width: 100%;
            padding: 12px;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            font-size: 14px;
            transition: border-color 0.3s;
        }
        
        .form-group input:focus {
            outline: none;
            border-color: #667eea;
        }
        
        .modal-actions {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
            margin-top: 25px;
        }
        
        .alert {
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 20px;
            display: none;
        }
        
        .alert-success {
            background: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        
        .alert-danger {
            background: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        
        .stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-bottom: 30px;
        }
        
        .stat-card {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 20px;
            border-radius: 10px;
            text-align: center;
        }
        
        .stat-card h3 {
            font-size: 32px;
            margin-bottom: 5px;
        }
        
        .stat-card p {
            opacity: 0.9;
            font-size: 14px;
        }
        
        .back-link {
            display: inline-block;
            margin-bottom: 20px;
            color: #667eea;
            text-decoration: none;
            font-weight: 600;
        }
        
        .back-link:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>📱 إدارة الأجهزة</h1>
            <p>إضافة، تعديل، وحذف الأجهزة يدوياً</p>
        </div>
        
        <div class="actions-bar">
            <button class="btn btn-primary" onclick="openAddModal()">
                ➕ إضافة جهاز جديد
            </button>
            <button class="btn btn-success" onclick="syncFromFirebase()">
                🔄 مزامنة من Firebase
            </button>
            <a href="dashboard.php" class="btn btn-secondary">
                ← العودة للوحة التحكم
            </a>
        </div>
        
        <div class="content">
            <div id="alert" class="alert"></div>
            
            <div class="stats">
                <div class="stat-card">
                    <h3><?= count($devices) ?></h3>
                    <p>إجمالي الأجهزة في MySQL</p>
                </div>
                <div class="stat-card">
                    <h3><?= count($firebaseDeviceIds) ?></h3>
                    <p>إجمالي الأجهزة في Firebase</p>
                </div>
                <div class="stat-card">
                    <h3><?= count(array_filter($devices, fn($d) => $d['status'] === 'active')) ?></h3>
                    <p>الأجهزة النشطة</p>
                </div>
            </div>
            
            <table class="devices-table">
                <thead>
                    <tr>
                        <th>اسم الجهاز</th>
                        <th>معرف الجهاز</th>
                        <th>الحالة</th>
                        <th>في Firebase</th>
                        <th>آخر تحديث</th>
                        <th>الإجراءات</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (empty($devices)): ?>
                        <tr>
                            <td colspan="6" style="text-align: center; padding: 40px; color: #6c757d;">
                                لا توجد أجهزة في قاعدة البيانات
                            </td>
                        </tr>
                    <?php else: ?>
                        <?php foreach ($devices as $device): ?>
                            <tr>
                                <td>
                                    <div class="device-name"><?= htmlspecialchars($device['device_name']) ?></div>
                                </td>
                                <td>
                                    <div class="device-id"><?= htmlspecialchars($device['device_id']) ?></div>
                                </td>
                                <td>
                                    <span class="status-badge status-<?= $device['status'] ?>">
                                        <?= $device['status'] === 'active' ? 'نشط' : 'غير نشط' ?>
                                    </span>
                                </td>
                                <td>
                                    <?php if (in_array($device['device_id'], $firebaseDeviceIds)): ?>
                                        <span class="firebase-badge">✓ موجود</span>
                                    <?php else: ?>
                                        <span style="color: #dc3545;">✗ غير موجود</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?= $device['updated_at'] ? date('Y-m-d H:i:s', strtotime($device['updated_at'])) : '-' ?>
                                </td>
                                <td>
                                    <div class="action-buttons">
                                        <button class="btn btn-primary btn-sm" onclick="openEditModal('<?= htmlspecialchars($device['device_id']) ?>', '<?= htmlspecialchars($device['device_name']) ?>', '<?= htmlspecialchars($device['form_link'] ?? '') ?>', '<?= htmlspecialchars($device['report_link'] ?? '') ?>')">
                                            ✏️ تعديل
                                        </button>
                                        <button class="btn btn-danger btn-sm" onclick="deleteDevice('<?= htmlspecialchars($device['device_id']) ?>', '<?= htmlspecialchars($device['device_name']) ?>')">
                                            🗑️ حذف
                                        </button>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
    
    <!-- Modal إضافة جهاز -->
    <div id="addModal" class="modal">
        <div class="modal-content">
            <div class="modal-header">➕ إضافة جهاز جديد</div>
            <form id="addForm">
                <div class="form-group">
                    <label>معرف الجهاز (Device ID) *</label>
                    <input type="text" name="device_id" required placeholder="أدخل معرف الجهاز">
                </div>
                <div class="form-group">
                    <label>اسم الجهاز</label>
                    <input type="text" name="device_name" placeholder="سيتم استخدام معرف الجهاز إذا تركت فارغاً">
                </div>
                <div class="modal-actions">
                    <button type="button" class="btn btn-secondary" onclick="closeModal('addModal')">إلغاء</button>
                    <button type="submit" class="btn btn-primary">إضافة</button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Modal تعديل جهاز -->
    <div id="editModal" class="modal">
        <div class="modal-content">
            <div class="modal-header">✏️ تعديل جهاز</div>
            <form id="editForm">
                <input type="hidden" name="device_id" id="edit_device_id">
                <div class="form-group">
                    <label>اسم الجهاز *</label>
                    <input type="text" name="device_name" id="edit_device_name" required>
                </div>
                <div class="form-group">
                    <label>رابط النموذج (Form Link)</label>
                    <input type="url" name="form_link" id="edit_form_link" placeholder="https://example.com/form">
                    <small style="display: block; margin-top: 5px; color: #6c757d;">
                        سيتم إرسال هذا الرابط إلى التطبيق تلقائياً
                    </small>
                </div>
                <div class="form-group">
                    <label>رابط التقرير (Report Link)</label>
                    <input type="url" name="report_link" id="edit_report_link" placeholder="https://example.com/reports">
                    <small style="display: block; margin-top: 5px; color: #6c757d;">
                        سيتم إرسال هذا الرابط إلى التطبيق تلقائياً
                    </small>
                </div>
                <div class="form-group">
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer;">
                        <input type="checkbox" name="update_firebase" id="edit_update_firebase" checked style="width: auto; cursor: pointer;">
                        <span>🔄 تحديث الاسم في Firebase أيضاً (سيطبق على Dashboard والتطبيق)</span>
                    </label>
                    <small style="display: block; margin-top: 5px; color: #6c757d; margin-right: 25px;">
                        عند تفعيل هذا الخيار، سيتم تحديث اسم الجهاز في Firebase أيضاً، مما يعني أن التغيير سيظهر في Dashboard والتطبيق فوراً
                    </small>
                </div>
                <div class="modal-actions">
                    <button type="button" class="btn btn-secondary" onclick="closeModal('editModal')">إلغاء</button>
                    <button type="submit" class="btn btn-primary">تحديث</button>
                </div>
            </form>
        </div>
    </div>
    
    <script>
        function showAlert(message, type = 'success') {
            const alert = document.getElementById('alert');
            alert.className = `alert alert-${type}`;
            alert.textContent = message;
            alert.style.display = 'block';
            setTimeout(() => {
                alert.style.display = 'none';
            }, 5000);
        }
        
        function openAddModal() {
            document.getElementById('addModal').classList.add('active');
            document.getElementById('addForm').reset();
        }
        
        function closeModal(modalId) {
            document.getElementById(modalId).classList.remove('active');
        }
        
        function openEditModal(deviceId, deviceName, formLink = '', reportLink = '') {
            document.getElementById('edit_device_id').value = deviceId;
            document.getElementById('edit_device_name').value = deviceName;
            document.getElementById('edit_form_link').value = formLink || '';
            document.getElementById('edit_report_link').value = reportLink || '';
            document.getElementById('editModal').classList.add('active');
        }
        
        document.getElementById('addForm').addEventListener('submit', async (e) => {
            e.preventDefault();
            const formData = new FormData(e.target);
            formData.append('action', 'add_device');
            
            try {
                const response = await fetch('manage_devices.php', {
                    method: 'POST',
                    body: formData
                });
                
                const result = await response.json();
                if (result.success) {
                    showAlert(result.message, 'success');
                    closeModal('addModal');
                    setTimeout(() => location.reload(), 1000);
                } else {
                    showAlert(result.message, 'danger');
                }
            } catch (error) {
                showAlert('حدث خطأ أثناء إضافة الجهاز', 'danger');
            }
        });
        
        document.getElementById('editForm').addEventListener('submit', async (e) => {
            e.preventDefault();
            const formData = new FormData(e.target);
            formData.append('action', 'update_device');
            
            // إضافة قيمة checkbox
            const updateFirebase = document.getElementById('edit_update_firebase').checked;
            formData.append('update_firebase', updateFirebase ? 'true' : 'false');
            
            try {
                const response = await fetch('manage_devices.php', {
                    method: 'POST',
                    body: formData
                });
                
                const result = await response.json();
                if (result.success) {
                    showAlert(result.message, 'success');
                    closeModal('editModal');
                    setTimeout(() => location.reload(), 1000);
                } else {
                    showAlert(result.message, 'danger');
                }
            } catch (error) {
                showAlert('حدث خطأ أثناء تحديث الجهاز', 'danger');
            }
        });
        
        function deleteDevice(deviceId, deviceName) {
            if (!confirm(`هل أنت متأكد من حذف الجهاز "${deviceName}"؟\n\nهذا الإجراء لا يمكن التراجع عنه.`)) {
                return;
            }
            
            const formData = new FormData();
            formData.append('action', 'delete_device');
            formData.append('device_id', deviceId);
            
            fetch('manage_devices.php', {
                method: 'POST',
                body: formData
            })
            .then(response => response.json())
            .then(result => {
                if (result.success) {
                    showAlert(result.message, 'success');
                    setTimeout(() => location.reload(), 1000);
                } else {
                    showAlert(result.message, 'danger');
                }
            })
            .catch(error => {
                showAlert('حدث خطأ أثناء حذف الجهاز', 'danger');
            });
        }
        
        function syncFromFirebase() {
            if (!confirm('هل تريد مزامنة الأجهزة من Firebase؟\n\nسيتم إضافة الأجهزة الجديدة فقط.')) {
                return;
            }
            
            const formData = new FormData();
            formData.append('action', 'sync_from_firebase');
            
            fetch('manage_devices.php', {
                method: 'POST',
                body: formData
            })
            .then(response => response.json())
            .then(result => {
                if (result.success) {
                    showAlert(result.message, 'success');
                    setTimeout(() => location.reload(), 2000);
                } else {
                    showAlert(result.message, 'danger');
                }
            })
            .catch(error => {
                showAlert('حدث خطأ أثناء المزامنة', 'danger');
            });
        }
        
        // إغلاق Modal عند النقر خارجها
        document.querySelectorAll('.modal').forEach(modal => {
            modal.addEventListener('click', (e) => {
                if (e.target === modal) {
                    modal.classList.remove('active');
                }
            });
        });
    </script>
</body>
</html>

