*/ public static function item(AdminRole $role, ?array $userCounts = null): array { if ($userCounts !== null) { $counts = $userCounts; } elseif (($role->scope_type ?? AdminRole::SCOPE_SYSTEM) === AdminRole::SCOPE_SYSTEM) { $counts = AdminRoleUserCounts::forRoleIds([$role->id])[(int) $role->id] ?? [ 'user_count' => 0, 'platform_user_count' => 0, 'agent_user_count' => 0, ]; } else { $assignedCount = $role->assignedUserCount(); $counts = [ 'user_count' => $assignedCount, 'platform_user_count' => 0, 'agent_user_count' => $assignedCount, ]; } return [ 'id' => (int) $role->id, 'slug' => $role->slug, 'name' => $role->name, 'description' => $role->description, 'status' => (int) $role->status, 'is_system' => (bool) $role->is_system, 'sort_order' => (int) $role->sort_order, 'scope_type' => (string) ($role->scope_type ?? AdminRole::SCOPE_SYSTEM), 'owner_agent_id' => $role->owner_agent_id !== null ? (int) $role->owner_agent_id : null, 'delegated_from_role_id' => $role->delegated_from_role_id !== null ? (int) $role->delegated_from_role_id : null, 'is_read_only_template' => $role->isReadOnlyTemplate(), 'permission_slugs' => $role->legacyPermissionSlugs(), 'user_count' => $counts['user_count'], 'platform_user_count' => $counts['platform_user_count'], 'agent_user_count' => $counts['agent_user_count'], ]; } }