null, 'ratings' => null, 'comments' => []]; // جلب معلومات السائق الأساسية $stmt = $con->prepare("SELECT id, first_name, last_name, created_at FROM driver WHERE id = ?"); $stmt->execute([$driverId]); $driverInfo = $stmt->fetch(PDO::FETCH_ASSOC); // فك تشفير البيانات الحساسة if ($driverInfo) { // التحقق من وجود ودوال فك التشفير قبل الاستخدام if (isset($encryptionHelper) && method_exists($encryptionHelper, 'decryptData')) { $decryptedFirstName = $encryptionHelper->decryptData($driverInfo['first_name']); $decryptedLastName = $encryptionHelper->decryptData($driverInfo['last_name']); $driverInfo['full_name'] = trim($decryptedFirstName . ' ' . $decryptedLastName); } else { $driverInfo['full_name'] = 'Decryption Failed'; } unset($driverInfo['first_name'], $driverInfo['last_name']); // إزالة الحقول المشفرة $profile['info'] = $driverInfo; } // جلب ملخص التقييمات والتعليقات $stmt = $con->prepare("SELECT AVG(rating) as avg_rating, COUNT(id) as total_ratings FROM ratingDriver WHERE driver_id = ?"); $stmt->execute([$driverId]); $profile['ratings'] = $stmt->fetch(PDO::FETCH_ASSOC); $stmt = $con->prepare("SELECT comment FROM ratingDriver WHERE driver_id = ? AND comment IS NOT NULL AND comment != '' ORDER BY created_at DESC LIMIT 5"); $stmt->execute([$driverId]); $profile['comments'] = $stmt->fetchAll(PDO::FETCH_COLUMN); return $profile; } /** * جلب بيانات ومعلومات تقييم الراكب */ function getPassengerFullProfile($con, $encryptionHelper, $passengerId) { $profile = ['info' => null, 'ratings' => null, 'comments' => []]; $stmt = $con->prepare("SELECT id, first_name, last_name, created_at FROM passengers WHERE id = ?"); $stmt->execute([$passengerId]); $passengerInfo = $stmt->fetch(PDO::FETCH_ASSOC); // فك تشفير البيانات الحساسة if ($passengerInfo) { if (isset($encryptionHelper) && method_exists($encryptionHelper, 'decryptData')) { $decryptedFirstName = $encryptionHelper->decryptData($passengerInfo['first_name']); $decryptedLastName = $encryptionHelper->decryptData($passengerInfo['last_name']); $passengerInfo['full_name'] = trim($decryptedFirstName . ' ' . $decryptedLastName); } else { $passengerInfo['full_name'] = 'Decryption Failed'; } unset($passengerInfo['first_name'], $passengerInfo['last_name']); $profile['info'] = $passengerInfo; } $stmt = $con->prepare("SELECT AVG(rating) as avg_rating, COUNT(id) as total_ratings FROM ratingPassenger WHERE passenger_id = ?"); $stmt->execute([$passengerId]); $profile['ratings'] = $stmt->fetch(PDO::FETCH_ASSOC); $stmt = $con->prepare("SELECT comment FROM ratingPassenger WHERE passenger_id = ? AND comment IS NOT NULL AND comment != '' ORDER BY created_at DESC LIMIT 5"); $stmt->execute([$passengerId]); $profile['comments'] = $stmt->fetchAll(PDO::FETCH_COLUMN); return $profile; } /** * جلب بيانات سلوك السائق في الرحلة المحددة */ function getDriverBehavior($con, $rideId, $driverId) { $stmt = $con->prepare("SELECT max_speed, avg_speed, hard_brakes, behavior_score FROM driver_behavior WHERE trip_id = ? AND driver_id = ?"); $stmt->execute([$rideId, $driverId]); return $stmt->fetch(PDO::FETCH_ASSOC) ?: null; }