'Unauthorized access. Admin role required.']); exit; } // filterRequest() تقرأ من POST أو JSON body فقط ولا تلمس $_GET // (core/helpers.php). شاشة مراجعة الوثائق تنادي هذه النقطة بـ // ?id=... في الـ query string، فكانت تُرجع "driver_id is required" // دائماً رغم إرسال المعرّف. نقبل الشكلين، ونقبل driver_id أيضاً // لأن رسالة الخطأ نفسها تسمّيه هكذا. $driverId = filterRequest("id") ?: filterRequest("driver_id") ?: (isset($_GET['id']) ? trim((string) $_GET['id']) : null) ?: (isset($_GET['driver_id']) ? trim((string) $_GET['driver_id']) : null); if (empty($driverId)) { jsonError("driver_id is required."); exit; } try { // تفاصيل السائق $sql = "SELECT * FROM driver WHERE id = :id LIMIT 1"; $stmt = $con->prepare($sql); $stmt->execute([':id' => $driverId]); $driver = $stmt->fetch(PDO::FETCH_ASSOC); if (!$driver) { jsonError("Driver not found."); exit; } // فك التشفير للحقول الحساسة foreach ($driver as $k => $v) { if (in_array($k, ['phone', 'email', 'first_name', 'last_name', 'national_number', 'address','gender','site', 'birthdate', 'name_arabic'])) { $driver[$k] = $encryptionHelper->decryptData($v); } } // الوثائق $sql2 = "SELECT doc_type, image_name, link FROM driver_documents WHERE driverID = :id"; $stmt2 = $con->prepare($sql2); $stmt2->execute([':id' => $driverId]); $docs = $stmt2->fetchAll(PDO::FETCH_ASSOC); printSuccess([ "driver" => $driver, "documents" => $docs ]); } catch (PDOException $e) { error_log("[driver_details] " . $e->getMessage()); jsonError("Error fetching details"); }