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;
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,
],
[
@@ -1,21 +1,21 @@
<?php
namespace App\Filament\Resources\Multilines;
namespace App\Filament\Resources\MultilineClients;
use App\Filament\Clusters\Settings\SettingsCluster;
use App\Filament\Resources\Multilines\Pages\ListMultilines;
use App\Filament\Resources\Multilines\Schemas\MultilineForm;
use App\Filament\Resources\Multilines\Tables\MultilinesTable;
use App\Models\Multiline;
use App\Filament\Resources\MultilineClients\Pages\ListMultilineClients;
use App\Filament\Resources\MultilineClients\Schemas\MultilineClientForm;
use App\Filament\Resources\MultilineClients\Tables\MultilineClientsTable;
use App\Models\MultilineClient;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
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;
@@ -25,18 +25,18 @@ class MultilineResource extends Resource
public static function form(Schema $schema): Schema
{
return MultilineForm::configure($schema);
return MultilineClientForm::configure($schema);
}
public static function table(Table $table): Table
{
return MultilinesTable::configure($table);
return MultilineClientsTable::configure($table);
}
public static function getPages(): array
{
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
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\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
{
@@ -1,6 +1,6 @@
<?php
namespace App\Filament\Resources\Multilines\Schemas;
namespace App\Filament\Resources\MultilineClients\Schemas;
use App\Models\Bettype;
use App\Models\Bookmaker;
@@ -10,7 +10,7 @@ use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Schema;
class MultilineForm
class MultilineClientForm
{
public static $bettypes = [1, 2, 3, 4, 16, 2001, 2002, 2021, 3001, 3002, 3021];
@@ -1,11 +1,11 @@
<?php
namespace App\Filament\Resources\Multilines\Tables;
namespace App\Filament\Resources\MultilineClients\Tables;
use App\Filament\Tables\Columns\BookmakerIcon;
use App\Models\Bookmaker;
use App\Models\Client;
use App\Models\Multiline;
use App\Models\MultilineSetting;
use App\Models\Sport;
use Filament\Actions\Action;
use Filament\Forms\Components\Select;
@@ -18,7 +18,7 @@ use Filament\Tables\Filters\Filter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
class MultilinesTable
class MultilineClientsTable
{
public static function configure(Table $table): Table
{
@@ -38,7 +38,7 @@ class MultilinesTable
return $record->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),
@@ -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 Illuminate\Database\Eloquent\Model;
class Multiline extends Model
class MultilineClient extends Model
{
protected $fillable = [
'client_id',
'sport_id',
'table',
'name',
'multiline_setting_id',
'disabled',
'bookmaker_id',
'sort',
@@ -22,6 +21,11 @@ class Multiline extends Model
return $this->belongsTo(Sport::class);
}
public function multiline_setting()
{
return $this->belongsTo(MultilineSetting::class);
}
public function bookmaker()
{
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',
];
public function multiline_user()
{
return $this->belongsTo(MultilineUser::class);
}
/**
* Get the attributes that should be cast.
*
@@ -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');
}
};
@@ -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');
}
};