<?php
// تأكد من أن ملف connect.php يقوم بتهيئة اتصالين:
// $con          -> يتصل بقاعدة البيانات الأساسية (driver, CarRegistration)
// $con_tracking -> يتصل بقاعدة بيانات التتبع (car_locations)
require_once __DIR__ . '/../../connect.php';

try {
    $driver_id = filterRequest("driver_id");

    if ($driver_id === false || empty($driver_id)) {
        jsonError("Invalid driver_id provided");
        exit;
    }

    // =================================================================
    // الخطوة 1: جلب آخر موقع للسائق من قاعدة بيانات التتبع
    // =================================================================
    // هذا الاستعلام يعمل على قاعدة بيانات التتبع السريعة
    // (ملاحظة: تم التغيير إلى ORDER BY updated_at لجلب آخر تحديث)
    $sql_location = "SELECT
                        id, 
                        driver_id, 
                        latitude, 
                        longitude, 
                        heading, 
                        speed, 
                        status, 
                        created_at, 
                        updated_at
                    FROM
                        car_locations
                    WHERE
                        driver_id = ?
                    ORDER BY
                        updated_at DESC
                    LIMIT 1";

    $stmt_location = $con_tracking->prepare($sql_location);
    $stmt_location->execute([$driver_id]);
    $location_data = $stmt_location->fetch(PDO::FETCH_ASSOC);

    // إذا لم نجد أي موقع، لا داعي لإكمال البحث
    if (empty($location_data)) {
        jsonError("No car locations found");
        exit;
    }

    // =================================================================
    // الخطوة 2: جلب البيانات الثابتة للسائق من القاعدة الأساسية
    // =================================================================
    // هذا الاستعلام يعمل على قاعدة البيانات الأساسية الهادئة
    // (ملاحظة: تم إصلاح الخطأ في جملة JOIN)
    $sql_driver_info = "SELECT
                            d.gender,
                            cr.model
                        FROM
                            driver d
                        LEFT JOIN CarRegistration cr ON d.id = cr.driverID
                        WHERE
                            d.id = ?";
    
    $stmt_driver_info = $con->prepare($sql_driver_info);
    $stmt_driver_info->execute([$driver_id]);
    $driver_info = $stmt_driver_info->fetch(PDO::FETCH_ASSOC);

    // =================================================================
    // الخطوة 3: دمج النتائج (Application-Side Join)
    // =================================================================
    
    // دمج بيانات الموقع مع بيانات السائق
    if (empty($driver_info)) {
        $driver_info = []; // اجعله مصفوفة فارغة لتجنب خطأ في الدمج
    }

    $final_result = array_merge($location_data, $driver_info);
    
    // السكربت الأصلي كان يستخدم fetchAll، لذا كان يرجع مصفوفة بداخلها عنصر واحد
    // [ [ ... بيانات ... ] ]
    // سنحافظ على نفس البنية لإرجاع البيانات
    jsonSuccess([$final_result]);


} catch (PDOException $e) {
    jsonError("Database error: " . $e->getMessage());
} catch (Throwable $e) {
    jsonError("Internal error: " . $e->getMessage());
}
?>