diff --git a/app/Actions/BettypUserGenerator.php b/app/Actions/BettypUserGenerator.php new file mode 100644 index 00000000..ca2b3dc1 --- /dev/null +++ b/app/Actions/BettypUserGenerator.php @@ -0,0 +1,35 @@ +id; + + $multilines = MultilineSetting::select('id', 'sport_id')->get(); + + foreach ($multilines as $multiline) { + + BettypeUser::firstOrCreate( + [ + 'user_id' => $user_id, + 'sport_id' => $multiline->sport_id, + 'multiline_setting_id' => $multiline->id, + 'is_active' => in_array($multiline->id, [1, 8, 12, 15]) ? 1 : 0, + ] + ); + } + + Notification::make() + ->title('Bettypes for user generated successfully') + ->success() + ->send(); + + } +} diff --git a/app/Filament/Resources/Events/Tables/EventsTable.php b/app/Filament/Resources/Events/Tables/EventsTable.php index 3da6c3e0..272e52cc 100644 --- a/app/Filament/Resources/Events/Tables/EventsTable.php +++ b/app/Filament/Resources/Events/Tables/EventsTable.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources\Events\Tables; use App\Filament\Tables\Columns\Columns3way; use App\Filament\Tables\Columns\MatchIds; +use App\Models\BettypeUser; use App\Models\Country; use App\Models\Event; use Carbon\Carbon; @@ -24,8 +25,17 @@ use Illuminate\Database\Eloquent\Builder; class EventsTable { + public static $bettype_settings = []; + + public static function load_bettype_settings() + { + self::$bettype_settings = BettypeUser::where('user_id', auth()->user()->id)->where('sport_id', auth()->user()->sport_id)->where('is_active', 1)->pluck('multiline_setting_id')->toArray(); + } + public static function configure(Table $table): Table { + self::load_bettype_settings(); + return $table ->striped() ->columns([ @@ -58,7 +68,7 @@ class EventsTable ->alignRight(), TextColumn::make('away.name') ->searchable(), - Columns3way::make('odds3way')->label(fn () => view('filament.tables.columns.multiline.labels')), + Columns3way::make('odds3way')->visible(fn () => in_array(1, self::$bettype_settings))->label(fn () => view('filament.tables.columns.multiline.labels')), ]) ->poll('10s') ->defaultSort('starttime', 'ASC') diff --git a/app/Filament/Resources/Users/Tables/UsersTable.php b/app/Filament/Resources/Users/Tables/UsersTable.php index 04912ac1..53151027 100644 --- a/app/Filament/Resources/Users/Tables/UsersTable.php +++ b/app/Filament/Resources/Users/Tables/UsersTable.php @@ -2,6 +2,8 @@ namespace App\Filament\Resources\Users\Tables; +use App\Actions\BettypUserGenerator; +use Filament\Actions\Action; use Filament\Actions\EditAction; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; @@ -31,6 +33,12 @@ class UsersTable // ]) ->recordActions([ + Action::make('bettype') + ->icon('phosphor-gear-fine') + ->tooltip('Generates basic bettype monitor configuration for this user') + ->action(function ($record) { + BettypUserGenerator::run($record); + }), EditAction::make(), ]); } diff --git a/app/Models/BettypeUser.php b/app/Models/BettypeUser.php new file mode 100644 index 00000000..a2cd7dd7 --- /dev/null +++ b/app/Models/BettypeUser.php @@ -0,0 +1,15 @@ +belongsTo(Client::class); + } + + public function bettype_user() + { + return $this->hasMany(BettypeUser::class)->where('sport_id', auth()->user()->sport_id); + } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 2fa681f6..8a2dd9ee 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,7 +3,6 @@ namespace App\Providers; use App\Filament\Resources\Events\Pages\ListEvents; -use App\Utilities\Settings; use Carbon\Carbon; use Filament\Support\Colors\Color; use Filament\Support\Facades\FilamentColor; @@ -28,10 +27,6 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - $this->app->singleton('systemSettings', function () { - return Settings::get(); - }); - FilamentView::registerRenderHook( TablesRenderHook::TOOLBAR_SEARCH_AFTER, fn (): string => Blade::render('@livewire(\'bettype-toggle\')'), diff --git a/app/Utilities/Settings.php b/app/Utilities/Settings.php deleted file mode 100644 index a31f8024..00000000 --- a/app/Utilities/Settings.php +++ /dev/null @@ -1,13 +0,0 @@ -get()->keyBy('id'); - } -} 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 new file mode 100644 index 00000000..7237c460 --- /dev/null +++ b/database/migrations/2025_12_23_135116_create_bettype_users_table.php @@ -0,0 +1,31 @@ +id(); + $table->integer('user_id'); + $table->integer('sport_id'); + $table->integer('multiline_setting_id'); + $table->boolean('is_active')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('bettype_users'); + } +}; diff --git a/package-lock.json b/package-lock.json index d8e299a1..f37f407c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1990,6 +1990,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2223,6 +2224,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", diff --git a/resources/views/filament/tables/columns/columns_3way.blade.php b/resources/views/filament/tables/columns/columns_3way.blade.php index b7384adc..b70ac883 100644 --- a/resources/views/filament/tables/columns/columns_3way.blade.php +++ b/resources/views/filament/tables/columns/columns_3way.blade.php @@ -6,6 +6,8 @@
+ {{-- @include('filament.tables.columns.multiline.labels') --}} + @foreach ($getMultilines() as $item) @include('filament.tables.columns.multiline.bkm', [ 'bookmaker_id' => $item->bookmaker_id, diff --git a/resources/views/filament/tables/columns/multiline/fumetto.blade.php b/resources/views/filament/tables/columns/multiline/fumetto.blade.php index 3f7c3908..4c28d00f 100644 --- a/resources/views/filament/tables/columns/multiline/fumetto.blade.php +++ b/resources/views/filament/tables/columns/multiline/fumetto.blade.php @@ -1,7 +1,7 @@ @if ($hasodds())