striped() ->poll('10s') ->columns([ Split::make([ TextColumn::make('id')->badge()->alignCenter(), TextColumn::make('provider.name') ->color(fn ($record): string => match ($record->provider_id) { 1 => 'danger', 2 => 'success', default => 'warning', }), Stack::make([ SelectColumn::make('name') ->disablePlaceholderSelection() ->options(function ($record) { switch ($record->provider_id) { case 1: case 3: case 4: case 5: case 6: return [ 'Fixtures' => 'Fixtures', 'Odds' => 'Odds', ]; case 2: return [ 'Fixtures' => 'Fixtures', 'Odds' => 'Odds', 'Willhill' => 'Willhill', 'Bwin' => 'Bwin', 'Bet365' => 'Bet365', 'Betfair' => 'Betfair', ]; case 7: return [ 'Txodds Markets' => 'Txodds Markets', ]; default: return []; } }), SelectColumn::make('sport_id') ->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')) ->placeholder('All'), ])->space(3), Stack::make([ TextInputColumn::make('days_from')->prefix('Days Fm'), TextInputColumn::make('days_to')->prefix('Days To'), ])->space(3), Stack::make([ TextInputColumn::make('sleep')->prefix('Seep'), TextInputColumn::make('commandline_options')->prefix('Bash'), ])->space(3), ToggleColumn::make('use_lastcall')->label('Lastcall')->tooltip('Use last call parameter'), ToggleColumn::make('is_supervisor')->label('Super')->tooltip('Run as supervisor'), ToggleColumn::make('is_active')->label('Active')->tooltip(('On/Off'))->onColor('success'), TextColumn::make('runtime')->label('Run Time')->badge(), ]), ]) ->filters([ SelectFilter::make('provider_id') ->default(1) ->relationship('provider', 'name') ->label('Provider'), TernaryFilter::make('is_supervisor')->label('Run by supervisor'), TernaryFilter::make('is_active'), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ EditAction::make()->hiddenLabel(), ]) ->toolbarActions([ BulkActionGroup::make([ BulkAction::make('Switch On') ->icon('phosphor-play') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { Supervisor::where('id', '=', $record->id) ->update( ['is_active' => 1] ); } }), BulkAction::make('Switch Off') ->icon('phosphor-stop') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { Supervisor::where('id', '=', $record->id) ->update( ['is_active' => 0] ); } }), DeleteBulkAction::make(), ]), ]); } }