prepare($sql); $stmt->execute([':driverId' => $driverId]); if ($stmt->rowCount() > 0) { $row = $stmt->fetch(PDO::FETCH_ASSOC); // فك التشفير للحقول المطلوبة $fieldsToDecrypt = [ 'phone','email','gender','national_number','first_name','last_name', 'name_arabic','address','site','vin','car_plate','owner' ]; foreach ($fieldsToDecrypt as $field) { if (isset($row[$field]) && $row[$field] !== '') { try { $row[$field] = $encryptionHelper->decryptData($row[$field]); } catch (Exception $e) { $row[$field] = "Decryption Failed"; } } } // ✅ جلب روابط المستندات من driver_documents $docsSql = "SELECT doc_type, link, image_name FROM driver_documents WHERE driverID = :driverId2 ORDER BY doc_type"; $docsStmt = $con->prepare($docsSql); $docsStmt->execute([':driverId2' => $driverId]); $documents = $docsStmt->fetchAll(PDO::FETCH_ASSOC); $row['documents'] = $documents ?: []; // ✅ فك JSON لـ ai_data و user_input if (!empty($row['ai_data'])) { $decoded = json_decode($row['ai_data'], true); $row['ai_data'] = $decoded ?: $row['ai_data']; } if (!empty($row['user_input'])) { $decoded = json_decode($row['user_input'], true); $row['user_input'] = $decoded ?: $row['user_input']; } // ✅ إزالة الحقول الحسّاسة من الاستجابة $fieldsToRemove = ['password', 'password_hash', 'salt', 'reset_token']; foreach ($fieldsToRemove as $f) { if (array_key_exists($f, $row)) { unset($row[$f]); } } // عشان الـ licenseIssueDate متناسق مع الفلتر if (empty($row['licenseIssueDate']) && !empty($row['issue_date'])) { $row['licenseIssueDate'] = $row['issue_date']; } // إرسال الاستجابة jsonSuccess([$row]); } else { jsonError("No data found for the specified driver ID"); }