diff --git a/app/Actions/MultilineGenerator.php b/app/Actions/MultilineGenerator.php index 5c4839c9..c2c202d3 100644 --- a/app/Actions/MultilineGenerator.php +++ b/app/Actions/MultilineGenerator.php @@ -2,7 +2,7 @@ namespace App\Actions; -use App\Models\Multiline; +use App\Models\MultilineClient; use App\Models\MultilineSetting; use Filament\Notifications\Notification; @@ -12,7 +12,7 @@ class MultilineGenerator { $client_id = $record->id; - Multiline::where('client_id', $client_id)->update(['disabled' => 1]); + MultilineClient::where('client_id', $client_id)->update(['disabled' => 1]); foreach ($record->sport as $sportid) { @@ -22,12 +22,11 @@ class MultilineGenerator for ($i = 1; $i <= $multiline->rows; $i++) { - Multiline::updateOrCreate( + MultilineClient::updateOrCreate( [ 'client_id' => $client_id, 'sport_id' => $sportid, - 'name' => $multiline->name, - 'table' => $multiline->table, + 'multiline_setting_id' => $multiline->id, 'sort' => $i, ], [ diff --git a/app/Filament/Resources/Multilines/MultilineResource.php b/app/Filament/Resources/MultilineClients/MultilineClientResources.php similarity index 52% rename from app/Filament/Resources/Multilines/MultilineResource.php rename to app/Filament/Resources/MultilineClients/MultilineClientResources.php index 62ce25bb..1f8fd4af 100644 --- a/app/Filament/Resources/Multilines/MultilineResource.php +++ b/app/Filament/Resources/MultilineClients/MultilineClientResources.php @@ -1,21 +1,21 @@ ListMultilines::route('/'), + 'index' => ListMultilineClients::route('/'), ]; } } diff --git a/app/Filament/Resources/MultilineClients/Pages/CreateMultilineClient.php b/app/Filament/Resources/MultilineClients/Pages/CreateMultilineClient.php new file mode 100644 index 00000000..04ae289e --- /dev/null +++ b/app/Filament/Resources/MultilineClients/Pages/CreateMultilineClient.php @@ -0,0 +1,11 @@ +sport->icon; }), TextColumn::make('sport.name'), - TextColumn::make('name'), + TextColumn::make('multiline_setting.name')->label('Bettype'), BookmakerIcon::make('bookmaker.icon')->label('Icon'), SelectColumn::make('bookmaker_id') ->width('2rem') @@ -58,11 +58,11 @@ class MultilinesTable return Sport::query()->whereIn('id', $sports)->pluck('name', 'id'); }) ->live(), - Select::make('name') - ->default('1X2') + Select::make('multiline_setting_id') ->label('Bettype') - ->options(function (Builder $query, Get $get) { - return Multiline::where('sport_id', $get('sport_id'))->pluck('name', 'name'); + ->default(1) + ->options(function (Get $get) { + return MultilineSetting::where('sport_id', $get('sport_id'))->pluck('name', 'id'); }) ->live(), ]) @@ -72,8 +72,8 @@ class MultilinesTable $data['sport_id'], fn (Builder $query, $sport_id) => $query->where('sport_id', $sport_id) )->when( - $data['name'], - fn (Builder $query, $name) => $query->where('name', $name) + $data['multiline_setting_id'], + fn (Builder $query, $multiline_setting_id) => $query->where('multiline_setting_id', $multiline_setting_id) ); }) ->columns(3)->columnSpan(3), diff --git a/app/Filament/Resources/Multilines/Pages/CreateMultiline.php b/app/Filament/Resources/Multilines/Pages/CreateMultiline.php deleted file mode 100644 index 8c017b17..00000000 --- a/app/Filament/Resources/Multilines/Pages/CreateMultiline.php +++ /dev/null @@ -1,11 +0,0 @@ -belongsTo(Sport::class); } + public function multiline_setting() + { + return $this->belongsTo(MultilineSetting::class); + } + public function bookmaker() { return $this->belongsTo(Bookmaker::class, 'bookmaker_id', 'txid'); diff --git a/app/Models/MultilineUser.php b/app/Models/MultilineUser.php new file mode 100644 index 00000000..83f57fca --- /dev/null +++ b/app/Models/MultilineUser.php @@ -0,0 +1,24 @@ +belongsTo(Sport::class); + } + + public function multiline_setting() + { + return $this->belongsTo(MultilineSetting::class); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 6999844e..68d187c6 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -50,6 +50,11 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication 'app_authentication_recovery_codes', ]; + public function multiline_user() + { + return $this->belongsTo(MultilineUser::class); + } + /** * Get the attributes that should be cast. * diff --git a/database/migrations/2025_05_26_124609_create_multilines_table.php b/database/migrations/2025_12_14_090814_create_multiline_clients_table.php similarity index 76% rename from database/migrations/2025_05_26_124609_create_multilines_table.php rename to database/migrations/2025_12_14_090814_create_multiline_clients_table.php index c73133c6..9a42aeab 100644 --- a/database/migrations/2025_05_26_124609_create_multilines_table.php +++ b/database/migrations/2025_12_14_090814_create_multiline_clients_table.php @@ -11,13 +11,12 @@ return new class extends Migration */ public function up(): void { - Schema::create('multilines', function (Blueprint $table) { + Schema::create('multiline_clients', function (Blueprint $table) { $table->id(); $table->integer('client_id')->default(0); $table->integer('sport_id'); $table->boolean('disabled')->default(0); - $table->string('table')->nullable(); - $table->string('name')->nullable(); + $table->integer('multiline_setting_id')->default(1); $table->integer('bookmaker_id')->default(0); $table->integer('sort')->default(0); $table->timestamps(); @@ -29,6 +28,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('multilines'); + Schema::dropIfExists('multiline_clients'); } }; diff --git a/database/migrations/2025_12_15_035929_create_multiline_users_table.php b/database/migrations/2025_12_15_035929_create_multiline_users_table.php new file mode 100644 index 00000000..ef34b60a --- /dev/null +++ b/database/migrations/2025_12_15_035929_create_multiline_users_table.php @@ -0,0 +1,30 @@ +id(); + $table->integer('user_id')->default(0); + $table->integer('sport_id')->default(1); + $table->integer('multiline_setting_id')->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('multiline_users'); + } +};