Multiline Setting compleated

This commit is contained in:
salam committed 2025-12-15 05:40:18 +01:00
1 parent c6fd66189b
commit bb71c4b406
14 files changed
+129 -68

No files matched your search

+4 -5
View File
@@ -2,7 +2,7 @@
namespace App\Actions; namespace App\Actions;
use App\Models\Multiline; use App\Models\MultilineClient;
use App\Models\MultilineSetting; use App\Models\MultilineSetting;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
@@ -12,7 +12,7 @@ class MultilineGenerator
{ {
$client_id = $record->id; $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) { foreach ($record->sport as $sportid) {
@@ -22,12 +22,11 @@ class MultilineGenerator
for ($i = 1; $i <= $multiline->rows; $i++) { for ($i = 1; $i <= $multiline->rows; $i++) {
Multiline::updateOrCreate( MultilineClient::updateOrCreate(
[ [
'client_id' => $client_id, 'client_id' => $client_id,
'sport_id' => $sportid, 'sport_id' => $sportid,
'name' => $multiline->name, 'multiline_setting_id' => $multiline->id,
'table' => $multiline->table,
'sort' => $i, 'sort' => $i,
], ],
[ [
@@ -1,21 +1,21 @@
<?php <?php
namespace App\Filament\Resources\Multilines; namespace App\Filament\Resources\MultilineClients;
use App\Filament\Clusters\Settings\SettingsCluster; use App\Filament\Clusters\Settings\SettingsCluster;
use App\Filament\Resources\Multilines\Pages\ListMultilines; use App\Filament\Resources\MultilineClients\Pages\ListMultilineClients;
use App\Filament\Resources\Multilines\Schemas\MultilineForm; use App\Filament\Resources\MultilineClients\Schemas\MultilineClientForm;
use App\Filament\Resources\Multilines\Tables\MultilinesTable; use App\Filament\Resources\MultilineClients\Tables\MultilineClientsTable;
use App\Models\Multiline; use App\Models\MultilineClient;
use BackedEnum; use BackedEnum;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon; use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table; use Filament\Tables\Table;
class MultilineResource extends Resource class MultilineClientResources extends Resource
{ {
protected static ?string $model = Multiline::class; protected static ?string $model = MultilineClient::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::Bars3; protected static string|BackedEnum|null $navigationIcon = Heroicon::Bars3;
@@ -25,18 +25,18 @@ class MultilineResource extends Resource
public static function form(Schema $schema): Schema public static function form(Schema $schema): Schema
{ {
return MultilineForm::configure($schema); return MultilineClientForm::configure($schema);
} }
public static function table(Table $table): Table public static function table(Table $table): Table
{ {
return MultilinesTable::configure($table); return MultilineClientsTable::configure($table);
} }
public static function getPages(): array public static function getPages(): array
{ {
return [ return [
'index' => ListMultilines::route('/'), 'index' => ListMultilineClients::route('/'),
]; ];
} }
} }
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\MultilineClients\Pages;
use App\Filament\Resources\MultilineClients\MultilineClientResources;
use Filament\Resources\Pages\CreateRecord;
class CreateMultilineClient extends CreateRecord
{
protected static string $resource = MultilineClientResources::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\MultilineClients\Pages;
use App\Filament\Resources\MultilineClients\MultilineClientResources;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditMultilineClient extends EditRecord
{
protected static string $resource = MultilineClientResources::class;
protected function getHeaderActions(): array
{
return [
// DeleteAction::make(),
];
}
}
@@ -1,14 +1,14 @@
<?php <?php
namespace App\Filament\Resources\Multilines\Pages; namespace App\Filament\Resources\MultilineClients\Pages;
use App\Filament\Resources\Multilines\MultilineResource; use App\Filament\Resources\MultilineClients\MultilineClientResources;
use Filament\Actions\CreateAction; use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
class ListMultilines extends ListRecords class ListMultilineClients extends ListRecords
{ {
protected static string $resource = MultilineResource::class; protected static string $resource = MultilineClientResources::class;
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
@@ -1,6 +1,6 @@
<?php <?php
namespace App\Filament\Resources\Multilines\Schemas; namespace App\Filament\Resources\MultilineClients\Schemas;
use App\Models\Bettype; use App\Models\Bettype;
use App\Models\Bookmaker; use App\Models\Bookmaker;
@@ -10,7 +10,7 @@ use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
class MultilineForm class MultilineClientForm
{ {
public static $bettypes = [1, 2, 3, 4, 16, 2001, 2002, 2021, 3001, 3002, 3021]; public static $bettypes = [1, 2, 3, 4, 16, 2001, 2002, 2021, 3001, 3002, 3021];
@@ -1,11 +1,11 @@
<?php <?php
namespace App\Filament\Resources\Multilines\Tables; namespace App\Filament\Resources\MultilineClients\Tables;
use App\Filament\Tables\Columns\BookmakerIcon; use App\Filament\Tables\Columns\BookmakerIcon;
use App\Models\Bookmaker; use App\Models\Bookmaker;
use App\Models\Client; use App\Models\Client;
use App\Models\Multiline; use App\Models\MultilineSetting;
use App\Models\Sport; use App\Models\Sport;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
@@ -18,7 +18,7 @@ use Filament\Tables\Filters\Filter;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
class MultilinesTable class MultilineClientsTable
{ {
public static function configure(Table $table): Table public static function configure(Table $table): Table
{ {
@@ -38,7 +38,7 @@ class MultilinesTable
return $record->sport->icon; return $record->sport->icon;
}), }),
TextColumn::make('sport.name'), TextColumn::make('sport.name'),
TextColumn::make('name'), TextColumn::make('multiline_setting.name')->label('Bettype'),
BookmakerIcon::make('bookmaker.icon')->label('Icon'), BookmakerIcon::make('bookmaker.icon')->label('Icon'),
SelectColumn::make('bookmaker_id') SelectColumn::make('bookmaker_id')
->width('2rem') ->width('2rem')
@@ -58,11 +58,11 @@ class MultilinesTable
return Sport::query()->whereIn('id', $sports)->pluck('name', 'id'); return Sport::query()->whereIn('id', $sports)->pluck('name', 'id');
}) })
->live(), ->live(),
Select::make('name') Select::make('multiline_setting_id')
->default('1X2')
->label('Bettype') ->label('Bettype')
->options(function (Builder $query, Get $get) { ->default(1)
return Multiline::where('sport_id', $get('sport_id'))->pluck('name', 'name'); ->options(function (Get $get) {
return MultilineSetting::where('sport_id', $get('sport_id'))->pluck('name', 'id');
}) })
->live(), ->live(),
]) ])
@@ -72,8 +72,8 @@ class MultilinesTable
$data['sport_id'], $data['sport_id'],
fn (Builder $query, $sport_id) => $query->where('sport_id', $sport_id) fn (Builder $query, $sport_id) => $query->where('sport_id', $sport_id)
)->when( )->when(
$data['name'], $data['multiline_setting_id'],
fn (Builder $query, $name) => $query->where('name', $name) fn (Builder $query, $multiline_setting_id) => $query->where('multiline_setting_id', $multiline_setting_id)
); );
}) })
->columns(3)->columnSpan(3), ->columns(3)->columnSpan(3),
@@ -1,11 +0,0 @@
<?php
namespace App\Filament\Resources\Multilines\Pages;
use App\Filament\Resources\Multilines\MultilineResource;
use Filament\Resources\Pages\CreateRecord;
class CreateMultiline extends CreateRecord
{
protected static string $resource = MultilineResource::class;
}
@@ -1,19 +0,0 @@
<?php
namespace App\Filament\Resources\Multilines\Pages;
use App\Filament\Resources\Multilines\MultilineResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditMultiline extends EditRecord
{
protected static string $resource = MultilineResource::class;
protected function getHeaderActions(): array
{
return [
// DeleteAction::make(),
];
}
}
@@ -5,13 +5,12 @@ namespace App\Models;
use App\Models\Scopes\ClientScope; use App\Models\Scopes\ClientScope;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Multiline extends Model class MultilineClient extends Model
{ {
protected $fillable = [ protected $fillable = [
'client_id', 'client_id',
'sport_id', 'sport_id',
'table', 'multiline_setting_id',
'name',
'disabled', 'disabled',
'bookmaker_id', 'bookmaker_id',
'sort', 'sort',
@@ -22,6 +21,11 @@ class Multiline extends Model
return $this->belongsTo(Sport::class); return $this->belongsTo(Sport::class);
} }
public function multiline_setting()
{
return $this->belongsTo(MultilineSetting::class);
}
public function bookmaker() public function bookmaker()
{ {
return $this->belongsTo(Bookmaker::class, 'bookmaker_id', 'txid'); return $this->belongsTo(Bookmaker::class, 'bookmaker_id', 'txid');
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MultilineUser extends Model
{
protected $fillable = [
'user_id',
'sport_id',
'multiline_setting_id',
];
public function sport()
{
return $this->belongsTo(Sport::class);
}
public function multiline_setting()
{
return $this->belongsTo(MultilineSetting::class);
}
}
+5
View File
@@ -50,6 +50,11 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication
'app_authentication_recovery_codes', 'app_authentication_recovery_codes',
]; ];
public function multiline_user()
{
return $this->belongsTo(MultilineUser::class);
}
/** /**
* Get the attributes that should be cast. * Get the attributes that should be cast.
* *
@@ -11,13 +11,12 @@ return new class extends Migration
*/ */
public function up(): void public function up(): void
{ {
Schema::create('multilines', function (Blueprint $table) { Schema::create('multiline_clients', function (Blueprint $table) {
$table->id(); $table->id();
$table->integer('client_id')->default(0); $table->integer('client_id')->default(0);
$table->integer('sport_id'); $table->integer('sport_id');
$table->boolean('disabled')->default(0); $table->boolean('disabled')->default(0);
$table->string('table')->nullable(); $table->integer('multiline_setting_id')->default(1);
$table->string('name')->nullable();
$table->integer('bookmaker_id')->default(0); $table->integer('bookmaker_id')->default(0);
$table->integer('sort')->default(0); $table->integer('sort')->default(0);
$table->timestamps(); $table->timestamps();
@@ -29,6 +28,6 @@ return new class extends Migration
*/ */
public function down(): void public function down(): void
{ {
Schema::dropIfExists('multilines'); Schema::dropIfExists('multiline_clients');
} }
}; };
@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('multiline_users', function (Blueprint $table) {
$table->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');
}
};