'Unauthorized: Admin access required']); exit; } $allPending = []; $sources = []; // كل مصدر يُجلب على حدة: غياب جدول users في بعض عمليات النشر كان يُفشل // الطلب بالكامل ويخفي طلبات المشرفين المعلقة أيضاً. try { $stmt1 = $con->query("SELECT id, name, phone, role, created_at, 'admin' as type FROM adminUser WHERE status = 'pending'"); $admins = $stmt1->fetchAll(PDO::FETCH_ASSOC); foreach ($admins as &$admin) { $admin['name'] = $encryptionHelper->decryptData($admin['name']) ?: $admin['name']; $admin['phone'] = $encryptionHelper->decryptData($admin['phone']) ?: $admin['phone']; } unset($admin); $allPending = array_merge($allPending, $admins); $sources['admins'] = 'ok'; } catch (Throwable $e) { error_log("[Staff Pending] adminUser query failed: " . $e->getMessage()); $sources['admins'] = 'unavailable'; } try { $stmt2 = $con->query("SELECT id, first_name, last_name, phone, user_type as role, created_at, 'service' as type FROM users WHERE status = 'pending' AND user_type = 'service'"); $services = $stmt2->fetchAll(PDO::FETCH_ASSOC); foreach ($services as &$service) { $service['name'] = trim( ($encryptionHelper->decryptData($service['first_name']) ?: $service['first_name']) . ' ' . ($encryptionHelper->decryptData($service['last_name']) ?: $service['last_name']) ); $service['phone'] = $encryptionHelper->decryptData($service['phone']) ?: $service['phone']; } unset($service); $allPending = array_merge($allPending, $services); $sources['service_staff'] = 'ok'; } catch (Throwable $e) { error_log("[Staff Pending] users query failed: " . $e->getMessage()); $sources['service_staff'] = 'unavailable'; } printSuccess([ "data" => $allPending, "sources" => $sources, ]); exit();