From 3a7a0e02f311b9ecfab3b59a58d70e33c602e21f Mon Sep 17 00:00:00 2001 From: salam Date: Sun, 22 Feb 2026 15:17:32 +0100 Subject: [PATCH] add sorting to bettype toggle --- app/Actions/SettingGeneratorUser.php | 10 +++--- .../Services/Tasks/GenerateSetting.php | 10 +++--- .../Resources/Events/Tables/EventsTable.php | 34 +++++++++---------- .../Pages/ListMultilineSettings.php | 8 ----- .../Tables/MultilineSettingsTable.php | 2 ++ app/Models/BettypeUser.php | 1 + app/Models/MultilineSetting.php | 1 + ...090816_create_multiline_settings_table.php | 1 + ...2_23_135116_create_bettype_users_table.php | 1 + 9 files changed, 33 insertions(+), 35 deletions(-) diff --git a/app/Actions/SettingGeneratorUser.php b/app/Actions/SettingGeneratorUser.php index c3135c49..39e602a8 100644 --- a/app/Actions/SettingGeneratorUser.php +++ b/app/Actions/SettingGeneratorUser.php @@ -22,15 +22,15 @@ class SettingGeneratorUser * 3) BETTYPES for USER in MONITOR **************************************************/ - $multilines = MultilineSetting::orderBy('sport_id')->pluck('sport_id', 'id'); + $multilines = MultilineSetting::orderBy('sport_id')->get(); - foreach ($multilines as $multiline_setting_id => $sport_id) { + foreach ($multilines as $multilines) { - $is_active = in_array($multiline_setting_id, [1, 2, 9, 10, 16, 17, 22, 23]) ? 1 : 0; + $is_active = in_array($multiline->id, [1, 2, 9, 10, 16, 17, 22, 23]) ? 1 : 0; BettypeUser::firstOrCreate( - ['sport_id' => $sport_id, 'user_id' => $record->id, 'multiline_setting_id' => $multiline_setting_id], - ['is_active' => $is_active], + ['sport_id' => $multiline->sport_id, 'user_id' => $record->id, 'multiline_setting_id' => $multiline->id], + ['is_active' => $multiline->is_active, 'sorting' => $multiline->sorting], ); } diff --git a/app/Console/Commands/Services/Tasks/GenerateSetting.php b/app/Console/Commands/Services/Tasks/GenerateSetting.php index 8310b562..6b5a81bb 100644 --- a/app/Console/Commands/Services/Tasks/GenerateSetting.php +++ b/app/Console/Commands/Services/Tasks/GenerateSetting.php @@ -103,15 +103,15 @@ class GenerateSetting foreach ($users as $user) { - $multilines = MultilineSetting::orderBy('sport_id')->pluck('sport_id', 'id'); + $multilines = MultilineSetting::orderBy('sport_id')->get(); - foreach ($multilines as $multiline_setting_id => $sport_id) { + foreach ($multilines as $multilines) { - $is_active = in_array($multiline_setting_id, [1, 2, 9, 10, 16, 17, 22, 23]) ? 1 : 0; + $is_active = in_array($multiline->id, [1, 2, 9, 10, 16, 17, 22, 23]) ? 1 : 0; BettypeUser::firstOrCreate( - ['sport_id' => $sport_id, 'user_id' => $user->id, 'multiline_setting_id' => $multiline_setting_id], - ['is_active' => $is_active] + ['sport_id' => $multiline->sport_id, 'user_id' => $user->id, 'multiline_setting_id' => $multiline->id], + ['is_active' => $multiline->is_active, 'sorting' => $multiline->sorting], ); } } diff --git a/app/Filament/Resources/Events/Tables/EventsTable.php b/app/Filament/Resources/Events/Tables/EventsTable.php index 04519a2b..da8a3742 100644 --- a/app/Filament/Resources/Events/Tables/EventsTable.php +++ b/app/Filament/Resources/Events/Tables/EventsTable.php @@ -115,29 +115,30 @@ class EventsTable ->verticalAlignment(VerticalAlignment::Start) ->label('1X2'), - TooltipOdds::make('total')->bettype('odds_totals')->label('')->visible(fn () => in_array('odds_totals', self::$bettype_settings)), - ColumnOdds::make('odds_totals')->bettype('odds_totals') - ->visible(fn () => in_array('odds_totals', self::$bettype_settings)) - ->verticalAlignment(VerticalAlignment::Start) - ->label('Totals'), - TooltipOdds::make('1x2ht')->bettype('odds_3ways_ht')->label('')->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings)), ColumnOdds::make('odds_3ways_ht')->bettype('odds_3ways_ht') ->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('1X2 HT'), + TooltipOdds::make('total')->bettype('odds_totals')->label('')->visible(fn () => in_array('odds_totals', self::$bettype_settings)), + ColumnOdds::make('odds_totals')->bettype('odds_totals') + ->visible(fn () => in_array('odds_totals', self::$bettype_settings)) + ->verticalAlignment(VerticalAlignment::Start) + ->label('Totals'), + TooltipOdds::make('total_ht')->bettype('odds_totals_ht')->label('')->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings)), ColumnOdds::make('odds_totals_ht')->bettype('odds_totals_ht') ->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Totals HT'), - TooltipOdds::make('ggng')->bettype('odds_ggng')->label('')->visible(fn () => in_array('odds_ggng', self::$bettype_settings)), - ColumnOdds::make('odds_ggng')->bettype('odds_ggng') - ->visible(fn () => \in_array('odds_ggng', self::$bettype_settings)) + TooltipOdds::make('total_q1')->bettype('odds_totals_q1')->label('')->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)), + ColumnOdds::make('odds_totals_q1')->bettype('odds_totals_q1') + ->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) - ->label('Goal No Goal'), + ->alignCenter() + ->label('Totals Q1'), TooltipOdds::make('points')->bettype('odds_points')->label('')->visible(fn () => in_array('odds_points', self::$bettype_settings)), ColumnOdds::make('odds_points')->bettype('odds_points') @@ -151,19 +152,18 @@ class EventsTable ->verticalAlignment(VerticalAlignment::Start) ->label('Points HT'), - TooltipOdds::make('total_q1')->bettype('odds_totals_q1')->label('')->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)), - ColumnOdds::make('odds_totals_q1')->bettype('odds_totals_q1') - ->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)) - ->verticalAlignment(VerticalAlignment::Start) - ->alignCenter() - ->label('Totals Q1'), - TooltipOdds::make('points_q1')->bettype('odds_points_q1')->label('')->visible(fn () => in_array('odds_points_q1', self::$bettype_settings)), ColumnOdds::make('odds_points_q1')->bettype('odds_points_q1') ->visible(fn () => in_array('odds_points_q1', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Points Q1'), + TooltipOdds::make('ggng')->bettype('odds_ggng')->label('')->visible(fn () => in_array('odds_ggng', self::$bettype_settings)), + ColumnOdds::make('odds_ggng')->bettype('odds_ggng') + ->visible(fn () => \in_array('odds_ggng', self::$bettype_settings)) + ->verticalAlignment(VerticalAlignment::Start) + ->label('Goal No Goal'), + TooltipOdds::make('dc')->bettype('odds_dc')->label('')->visible(fn () => in_array('odds_dc', self::$bettype_settings)), ColumnOdds::make('odds_dc')->bettype('odds_dc') ->visible(fn () => \in_array('odds_dc', self::$bettype_settings)) diff --git a/app/Filament/Resources/MultilineSettings/Pages/ListMultilineSettings.php b/app/Filament/Resources/MultilineSettings/Pages/ListMultilineSettings.php index fc6a560b..5882e486 100644 --- a/app/Filament/Resources/MultilineSettings/Pages/ListMultilineSettings.php +++ b/app/Filament/Resources/MultilineSettings/Pages/ListMultilineSettings.php @@ -3,17 +3,9 @@ namespace App\Filament\Resources\MultilineSettings\Pages; use App\Filament\Resources\MultilineSettings\MultilineSettingResource; -use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListMultilineSettings extends ListRecords { protected static string $resource = MultilineSettingResource::class; - - protected function getHeaderActions(): array - { - return [ - CreateAction::make(), - ]; - } } diff --git a/app/Filament/Resources/MultilineSettings/Tables/MultilineSettingsTable.php b/app/Filament/Resources/MultilineSettings/Tables/MultilineSettingsTable.php index b92f8273..9c22a0eb 100644 --- a/app/Filament/Resources/MultilineSettings/Tables/MultilineSettingsTable.php +++ b/app/Filament/Resources/MultilineSettings/Tables/MultilineSettingsTable.php @@ -29,7 +29,9 @@ class MultilineSettingsTable TextColumn::make('short'), TextColumn::make('table'), TextColumn::make('rows'), + TextColumn::make('sorting')->alignCenter()->badge(), ]) + ->reorderable('sorting') ->deferFilters(false) ->filters([ SelectFilter::make('sport_id') diff --git a/app/Models/BettypeUser.php b/app/Models/BettypeUser.php index d3a308ea..eb45add9 100644 --- a/app/Models/BettypeUser.php +++ b/app/Models/BettypeUser.php @@ -10,6 +10,7 @@ class BettypeUser extends Model 'user_id', 'sport_id', 'multiline_setting_id', + 'sorting', 'is_active', 'unique_key', ]; diff --git a/app/Models/MultilineSetting.php b/app/Models/MultilineSetting.php index af0e8638..f8b693d5 100644 --- a/app/Models/MultilineSetting.php +++ b/app/Models/MultilineSetting.php @@ -12,6 +12,7 @@ class MultilineSetting extends Model 'name', 'short', 'table', + 'sorting', ]; public function sport() diff --git a/database/migrations/2025_12_14_090816_create_multiline_settings_table.php b/database/migrations/2025_12_14_090816_create_multiline_settings_table.php index 22fbd3c0..cc0d106e 100644 --- a/database/migrations/2025_12_14_090816_create_multiline_settings_table.php +++ b/database/migrations/2025_12_14_090816_create_multiline_settings_table.php @@ -21,6 +21,7 @@ return new class extends Migration $table->string('matchpart'); $table->integer('rows')->default(4); $table->integer('has_3_columns')->default(0); + $table->integer('sorting')->default(0)->nullable(); $table->timestamps(); }); } diff --git a/database/migrations/2025_12_23_135116_create_bettype_users_table.php b/database/migrations/2025_12_23_135116_create_bettype_users_table.php index 78c203bb..bc9a7327 100644 --- a/database/migrations/2025_12_23_135116_create_bettype_users_table.php +++ b/database/migrations/2025_12_23_135116_create_bettype_users_table.php @@ -16,6 +16,7 @@ return new class extends Migration $table->integer('user_id')->index(); $table->integer('sport_id')->index()->references('id')->on('sports'); $table->integer('multiline_setting_id')->index(); + $table->integer('sorting')->default(0)->nullable(); $table->boolean('is_active')->default(false); $table->timestamps(); });