<?php
require 'config.php';

header('Content-Type: application/json; charset=UTF-8');
header("Access-Control-Allow-Origin: *");

// ✅ تحسين: إعدادات PHP للأداء
ini_set('max_execution_time', 10); // ✅ timeout قصير للاستعلامات السريعة
set_time_limit(10);

$device_id = $_GET['device_id'] ?? null;
if (!$device_id) {
    echo json_encode(["status" => "error", "message" => "❌ يرجى تحديد device_id"]);
    exit();
}

try {
    // ✅ استخدام Firebase إذا كان مفعلاً
    if (defined('USE_FIREBASE') && USE_FIREBASE) {
        $data = FirebaseService::getLastLocation($device_id);
        
        if ($data) {
            // ✅ تحسين: التأكد من أن البيانات صالحة
            if (isset($data['latitude']) && isset($data['longitude']) && 
                is_numeric($data['latitude']) && is_numeric($data['longitude'])) {
                echo json_encode(["status" => "success", "data" => $data], JSON_UNESCAPED_UNICODE);
            } else {
                echo json_encode(["status" => "error", "message" => "❌ بيانات الموقع غير صالحة"], JSON_UNESCAPED_UNICODE);
            }
        } else {
            echo json_encode(["status" => "error", "message" => "❌ لا توجد بيانات متاحة"], JSON_UNESCAPED_UNICODE);
        }
    } else {
        // ✅ استخدام MySQL (الطريقة القديمة)
        $query = "
            SELECT 
                device_id,
                device_name,
                latitude,
                longitude,
                timestamp,
                battery,
                speed,
                accuracy,
                altitude,
                heading
            FROM locations
            WHERE device_id = :device_id
            ORDER BY timestamp DESC
            LIMIT 1
        ";

        $stmt = $conn->prepare($query);
        $stmt->execute([':device_id' => $device_id]);
        $data = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($data) {
            // ✅ تحسين: التأكد من أن البيانات صالحة
            if (isset($data['latitude']) && isset($data['longitude']) && 
                is_numeric($data['latitude']) && is_numeric($data['longitude'])) {
                echo json_encode(["status" => "success", "data" => $data], JSON_UNESCAPED_UNICODE);
            } else {
                echo json_encode(["status" => "error", "message" => "❌ بيانات الموقع غير صالحة"], JSON_UNESCAPED_UNICODE);
            }
        } else {
            echo json_encode(["status" => "error", "message" => "❌ لا توجد بيانات متاحة"], JSON_UNESCAPED_UNICODE);
        }
    }
} catch (Exception $e) {
    error_log("خطأ في get_latest_location.php: " . $e->getMessage());
    echo json_encode(["status" => "error", "message" => "❌ حدث خطأ: " . $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
?>
