= NOW() - INTERVAL 1 DAY AND cr.make NOT LIKE '%دراج%' AND cr.model NOT LIKE '%دراج%' ) SELECT d.id AS driver_id, d.phone, d.gender, d.name_arabic AS name_arabic, d.name_english, d.address, ll.latitude, ll.longitude, FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(CONCAT(d.birthdate, '-01-01'), '%Y-%m-%d')) / 365.25) AS age, c.car_plate, c.make, c.model, c.year, c.color, c.fuel, c.displacement, c.color_hex, dt.token, COALESCE(avg_rating.rating, 5) AS rating, COALESCE(ride_count.count, 0) AS ride_count FROM driver d JOIN CarRegistration c ON c.driverID = d.id JOIN LatestLocations ll ON ll.driver_id = d.id AND ll.row_num = 1 LEFT JOIN driverToken dt ON dt.captain_id = d.id LEFT JOIN ( SELECT driver_id, AVG(rating) AS rating FROM ratingDriver GROUP BY driver_id ) avg_rating ON avg_rating.driver_id = d.id LEFT JOIN ( SELECT driver_id, COUNT(*) AS count FROM ride WHERE status = 'Finished' GROUP BY driver_id ) ride_count ON ride_count.driver_id = d.id WHERE c.year BETWEEN ? AND ? ORDER BY rating DESC, c.year DESC, ride_count DESC LIMIT 10"; $stmt = $con->prepare($sql); $stmt->execute([ $swLat, $neLat, $swLon, $neLon, $yearMin, $yearMax, $yearMin, $yearMax ]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // فك التشفير عن الحقول الحساسة foreach ($rows as &$row) { $row['phone'] = $encryptionHelper->decryptData($row['phone']); $row['gender'] = $encryptionHelper->decryptData($row['gender']); $row['name_arabic'] = $encryptionHelper->decryptData($row['name_arabic']); $row['name_english'] = $encryptionHelper->decryptData($row['name_english']); $row['address'] = $encryptionHelper->decryptData($row['address']); $row['car_plate'] = $encryptionHelper->decryptData($row['car_plate']); $row['token'] = $encryptionHelper->decryptData($row['token']); } if (count($rows) > 0) { jsonSuccess($rows); } else { jsonError("No drivers found in the specified area"); } } catch (PDOException $e) { error_log("[selectDriverAndCarForMishwariTrip.php] " . $e->getMessage()); jsonError("An internal error occurred. Please try again later."); } catch (Exception $e) { error_log("[selectDriverAndCarForMishwariTrip.php] " . $e->getMessage()); jsonError("An internal error occurred. Please try again later."); }