<?php
require 'config.php';

// استلام المعاملات من الـ GET
$device_id = isset($_GET['device_id']) ? $_GET['device_id'] : null;
$date = isset($_GET['date']) ? $_GET['date'] : null;
$time_from = isset($_GET['time_from']) ? $_GET['time_from'] : null;
$time_to = isset($_GET['time_to']) ? $_GET['time_to'] : null;

header("Content-Type: application/json; charset=UTF-8");

try {
    // ✅ استخدام Firebase إذا كان مفعلاً
    if (defined('USE_FIREBASE') && USE_FIREBASE) {
        $locations = [];
        
        if ($device_id && $date) {
            // جلب المواقع لجهاز معين في تاريخ محدد
            $locations = FirebaseService::getLocationsByDate($device_id, $date);
            
            // تصفية حسب الوقت إذا تم تحديده
            if ($time_from || $time_to) {
                $filtered = [];
                foreach ($locations as $location) {
                    if (!isset($location['timestamp'])) {
                        continue;
                    }
                    
                    $locationTime = date('H:i:s', strtotime($location['timestamp']));
                    
                    if ($time_from && $locationTime < $time_from) {
                        continue;
                    }
                    if ($time_to && $locationTime > $time_to) {
                        continue;
                    }
                    
                    $filtered[] = $location;
                }
                $locations = $filtered;
            }
        } elseif ($device_id && $time_from && $time_to) {
            // جلب المواقع في نطاق زمني
            $startTime = ($date ? $date . ' ' : date('Y-m-d ') . ' ') . $time_from;
            $endTime = ($date ? $date . ' ' : date('Y-m-d ') . ' ') . $time_to;
            $locations = FirebaseService::getLocationsByTimeRange($device_id, $startTime, $endTime);
        }
        
        // إضافة formatted_time لكل موقع
        foreach ($locations as &$location) {
            if (isset($location['timestamp'])) {
                $location['formatted_time'] = date('Y-m-d h:i:s A', strtotime($location['timestamp']));
            }
        }
        
        echo json_encode($locations, JSON_UNESCAPED_UNICODE);
    } else {
        // ✅ استخدام MySQL (الطريقة القديمة)
        $query = "
            SELECT
                *,
                DATE_FORMAT(`timestamp`, '%Y-%m-%d %h:%i:%s %p') AS formatted_time
            FROM
                locations
            WHERE
                1
        ";

        $params = [];

        // تصفية حسب الجهاز
        if ($device_id) {
            $query .= " AND device_id = :device_id";
            $params[':device_id'] = $device_id;
        }

        // تصفية حسب التاريخ (يوم معين)
        if ($date) {
            $query .= " AND DATE(timestamp) = :date";
            $params[':date'] = $date;
        }

        // تصفية حسب الوقت من-إلى
        if ($time_from) {
            $query .= " AND TIME(timestamp) >= :time_from";
            $params[':time_from'] = $time_from;
        }
        if ($time_to) {
            $query .= " AND TIME(timestamp) <= :time_to";
            $params[':time_to'] = $time_to;
        }

        $query .= " ORDER BY timestamp ASC";

        $stmt = $conn->prepare($query);
        $stmt->execute($params);
        $locations = $stmt->fetchAll(PDO::FETCH_ASSOC);

        echo json_encode($locations, JSON_UNESCAPED_UNICODE);
    }
} catch (Exception $e) {
    error_log("خطأ في get_locations.php: " . $e->getMessage());
    echo json_encode(["status" => "error", "message" => "❌ حدث خطأ: " . $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
?>
