From 6cf075709e309a505019432c88056c62f118a8a0 Mon Sep 17 00:00:00 2001 From: salam Date: Tue, 13 Jan 2026 08:41:41 +0100 Subject: [PATCH] supervisro tabel wip --- .../Supervisors/Schemas/SupervisorForm.php | 22 ++-- .../Supervisors/Tables/SupervisorsTable.php | 109 ++++++++++-------- database/seeders/ProvoiderSeeder.php | 3 +- database/seeders/SupervisorSeeder.php | 47 ++++---- 4 files changed, 97 insertions(+), 84 deletions(-) diff --git a/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php b/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php index 3c83a72a..fd470511 100644 --- a/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php +++ b/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php @@ -17,18 +17,18 @@ class SupervisorForm ->relationship('provider', 'name') ->required() ->preload(), - Select::make('sport_id') - ->relationship('sport', 'name') - ->nullable(), + // Select::make('sport_id') + // ->relationship('sport', 'name') + // ->nullable(), - TextInput::make('sleep')->default(30), - TextInput::make('maxsconds')->label('Seconds till throwing an error')->default(1800), - Section::make('Run processes paralell for speed') - ->description('Set start and end days if more processes grap the same data') - ->schema([ - TextInput::make('days_from')->columns(1)->default(0), - TextInput::make('days_to')->columns(1)->default(1), - ])->columns(2)->columnSpanFull(), + // TextInput::make('sleep')->default(30), + // TextInput::make('maxsconds')->label('Seconds till throwing an error')->default(1800), + // Section::make('Run processes paralell for speed') + // ->description('Set start and end days if more processes grap the same data') + // ->schema([ + // TextInput::make('days_from')->columns(1)->default(0), + // TextInput::make('days_to')->columns(1)->default(1), + // ])->columns(2)->columnSpanFull(), ]); } } diff --git a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php index 55c848ff..49f7a679 100644 --- a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php +++ b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php @@ -2,12 +2,14 @@ namespace App\Filament\Resources\Supervisors\Tables; +use App\Models\Sport; use App\Models\Supervisor; use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; -use Filament\Tables\Columns\IconColumn; +use Filament\Tables\Columns\Layout\Split; +use Filament\Tables\Columns\Layout\Stack; use Filament\Tables\Columns\SelectColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextInputColumn; @@ -26,62 +28,71 @@ class SupervisorsTable ->striped() ->poll('10s') ->columns([ - TextColumn::make('id')->badge()->alignCenter(), - TextColumn::make('provider.name')->badge() - ->color(fn ($record): string => match ($record->provider_id) { - 1 => 'danger', - 2 => 'success', - default => 'warning', - }), - SelectColumn::make('name') - ->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 []; - } + 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 []; + } - }), - TextColumn::make('sport.name')->label('Sport'), - TextColumn::make('days_from')->label('From'), - TextColumn::make('days_to')->label('To'), - TextInputColumn::make('sleep')->width('2rem'), - TextColumn::make('runtime')->label('Run Time'), - TextInputColumn::make('commandline_options')->width('2rem'), + }), + SelectColumn::make('sport_id') + ->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')) + ->placeholder('All'), + ])->space(3), - // TextColumn::make('maxsconds')->label('Max Time'), - // IconColumn::make('is_supervisor')->boolean()->label('Cron')->falseColor('gray'), - ToggleColumn::make('use_lastcall')->label('Lastcall'), - ToggleColumn::make('is_supervisor')->label('Super')->tooltip('Create a supervisor process'), - ToggleColumn::make('is_active')->label('Active'), + 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'), + TernaryFilter::make('is_supervisor')->label('Run by supervisor'), TernaryFilter::make('is_active'), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) diff --git a/database/seeders/ProvoiderSeeder.php b/database/seeders/ProvoiderSeeder.php index 8c739583..fba5c0be 100644 --- a/database/seeders/ProvoiderSeeder.php +++ b/database/seeders/ProvoiderSeeder.php @@ -19,7 +19,8 @@ class ProvoiderSeeder extends Seeder ('3', 'MAGLOO KENIA'), ('4', 'MAGLOO NIGERIA'), ('5', 'LOGIFUTURE NIGERA'), - ('6', 'LOGIFUTURE COLOMBIA'); + ('6', 'LOGIFUTURE COLOMBIA'), + ('7', 'SERVICES'); "; DB::unprepared($sql); diff --git a/database/seeders/SupervisorSeeder.php b/database/seeders/SupervisorSeeder.php index 5acca290..31ac1a4f 100644 --- a/database/seeders/SupervisorSeeder.php +++ b/database/seeders/SupervisorSeeder.php @@ -12,30 +12,31 @@ class SupervisorSeeder extends Seeder /** * Supervisor */ - $sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_supervisor`, `is_active`, `days_from`, `days_to`, `created_at`, `updated_at`) + $sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `commandline_options`, `maxsconds`, `lastcall`, `use_lastcall`, `is_supervisor`, `is_active`, `days_from`, `days_to`, `created_at`, `updated_at`) VALUES - (1, 'Fixtures', 1, 1, 10, 0, '0.129', 1800, 0, 1, 1, 0, 0, '2025-08-27 07:39:55', '2026-01-09 08:15:55'), - (2, 'Odds', 1, 1, 10, 0, '0.251', 30, 0, 0, 1, 0, 10, '2025-12-01 05:41:02', '2026-01-08 17:56:27'), - (3, 'Fixtures', 2, 0, 15, 0, '0.133', 1800, 0, 1, 1, 0, 0, '2025-12-19 11:42:35', '2026-01-08 10:25:32'), - (4, 'Willhill', 2, 0, 15, 0, '2.119', 1800, 0, 1, 1, 0, 0, '2025-12-19 11:48:05', '2026-01-04 10:27:11'), - (5, 'Bwin', 2, 0, 15, 0, '0.084', 1800, 0, 1, 1, 0, 0, '2025-12-22 06:41:18', '2026-01-04 10:29:32'), - (6, 'Bet365', 2, 0, 10, 0, '0', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-01 17:09:28'), - (7, 'Betfair', 2, 0, 10, 0, '0', 30, 0, 0, 0, 0, 0, '2025-12-18 17:44:33', '2026-01-03 12:28:09'), - (8, 'Fixtures', 4, 0, 10, 0, '1.368', 30, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-03 12:24:52'), - (9, 'Odds', 4, 0, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'), - (10, 'Fixtures', 3, 0, 10, 0, '1.368', 30, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-03 12:24:52'), - (11, 'Odds', 3, 0, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'), - (12, 'Odds', 5, 1, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:27'), - (13, 'Odds', 5, 3, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-05 06:22:37'), - (14, 'Odds', 5, 2, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:51'), - (15, 'Odds', 5, 5, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'), - (16, 'Odds', 6, 1, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:27'), - (17, 'Odds', 6, 3, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-05 06:22:37'), - (18, 'Odds', 6, 2, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:51'), - (19, 'Odds', 6, 5, 15, 0, NULL, 30, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'), - (20, 'Odds', 1, 3, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:56:50', '2026-01-09 08:16:58'), - (21, 'Odds', 1, 2, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:57:14', '2026-01-09 08:16:59'), - (22, 'Odds', 1, 5, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:57:24', '2026-01-09 08:17:00'); + (1, 'Fixtures', 1, 0, 10, 0, '0.14', NULL, 1800, 0, 0, 0, 1, 0, 0, '2025-08-27 07:39:55', '2026-01-13 06:06:47'), + (2, 'Odds', 1, 1, 10, 0, '0.251', NULL, 30, 0, 1, 1, 1, 0, 10, '2025-12-01 05:41:02', '2026-01-13 06:06:48'), + (3, 'Fixtures', 2, 0, 15, 0, '0.133', NULL, 1800, 0, 0, 0, 1, 0, 0, '2025-12-19 11:42:35', '2026-01-13 06:07:29'), + (4, 'Willhill', 2, 0, 15, 0, '2.119', NULL, 1800, 0, 0, 0, 1, 0, 0, '2025-12-19 11:48:05', '2026-01-13 06:07:33'), + (5, 'Bwin', 2, 0, 15, 0, '0.084', NULL, 1800, 0, 0, 0, 1, 0, 0, '2025-12-22 06:41:18', '2026-01-13 06:07:34'), + (6, 'Bet365', 2, 0, 10, 0, '0', NULL, 30, 0, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:35'), + (7, 'Betfair', 2, 0, 10, 0, '0', NULL, 30, 0, 0, 1, 0, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:36'), + (8, 'Fixtures', 4, 0, 10, 0, '1.368', NULL, 30, 0, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:06:59'), + (9, 'Odds', 4, 0, 15, 0, NULL, NULL, 1800, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:06:57'), + (10, 'Fixtures', 3, 0, 10, 0, '1.368', NULL, 30, 0, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:04'), + (11, 'Odds', 3, 0, 15, 0, NULL, NULL, 1800, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:07:03'), + (12, 'Odds', 5, 1, 10, 0, '1.368', NULL, 30, 0, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:15'), + (13, 'Odds', 5, 3, 15, 0, NULL, NULL, 1800, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:07:13'), + (14, 'Odds', 5, 2, 10, 0, '1.368', NULL, 30, 0, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:14'), + (15, 'Odds', 5, 5, 15, 0, NULL, NULL, 1800, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:07:11'), + (16, 'Odds', 6, 1, 10, 0, '1.368', NULL, 30, 0, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:22'), + (17, 'Odds', 6, 3, 15, 0, NULL, NULL, 1800, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:07:20'), + (18, 'Odds', 6, 2, 10, 0, '1.368', NULL, 30, 0, 0, 1, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-13 06:07:20'), + (19, 'Odds', 6, 5, 15, 0, NULL, NULL, 30, 0, 0, 1, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-13 06:07:19'), + (20, 'Odds', 1, 3, 15, 0, NULL, NULL, 30, 0, 0, 1, 1, 0, 10, '2026-01-08 17:56:50', '2026-01-13 06:06:49'), + (21, 'Odds', 1, 2, 15, 0, NULL, NULL, 30, 0, 0, 1, 1, 0, 10, '2026-01-08 17:57:14', '2026-01-13 06:06:50'), + (22, 'Odds', 1, 5, 15, 0, NULL, NULL, 30, 0, 0, 1, 1, 0, 10, '2026-01-08 17:57:24', '2026-01-13 06:06:51'), + (23, 'Txodds Markets', 7, NULL, 15, 0, '0.006', NULL, 1800, 0, 0, 0, 1, NULL, NULL, '2026-01-13 05:55:30', '2026-01-13 06:41:35'); "; DB::unprepared($sql); }