searchable(false) ->heading('') ->columns([ TextColumn::make('user.username') ->label(trans('admin/node.table.owner')) ->url(fn (Server $server): string => route('filament.admin.resources.users.edit', ['record' => $server->user])) ->searchable(), TextColumn::make('name') ->label(trans('admin/node.table.name')) ->url(fn (Server $server): string => route('filament.admin.resources.servers.edit', ['record' => $server])) ->searchable() ->sortable(), TextColumn::make('egg.name') ->label(trans('admin/node.table.egg')) ->url(fn (Server $server): string => route('filament.admin.resources.eggs.edit', ['record' => $server->user])) ->sortable(), SelectColumn::make('allocation.id') ->label(trans('admin/node.primary_allocation')) ->disabled(fn (Server $server) => $server->allocations->count() <= 1) ->options(fn (Server $server) => $server->allocations->take(1)->mapWithKeys(fn ($allocation) => [$allocation->id => $allocation->address])) ->selectablePlaceholder(fn (SelectColumn $select) => !$select->isDisabled()) ->placeholder(trans('admin/node.none')) ->sortable(), TextColumn::make('memory')->label(trans('admin/node.memory')), TextColumn::make('cpu')->label(trans('admin/node.cpu')), TextColumn::make('databases_count') ->counts('databases') ->label(trans('admin/node.databases')) ->numeric() ->sortable(), TextColumn::make('backups_count') ->counts('backups') ->label(trans('admin/node.backups')) ->numeric() ->sortable(), ]); } }