mapping provider menu wip
This commit is contained in:
1 parent
ed54d9f8e4
commit
0c35fa0ebc
9 files changed
+55
-21
No files matched your search
@@ -3,6 +3,7 @@
|
||||
namespace App\Filament\Resources\Clients\Schemas;
|
||||
|
||||
use App\Models\Bookmaker;
|
||||
use App\Models\Provider;
|
||||
use App\Models\Sport;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
@@ -23,6 +24,11 @@ class ClientForm
|
||||
->multiple()
|
||||
->preload()
|
||||
->searchable(),
|
||||
Select::make('provider')
|
||||
->options(Provider::query()->pluck('name', 'id'))
|
||||
->multiple()
|
||||
->preload()
|
||||
->searchable(),
|
||||
Select::make('sport')
|
||||
->options(Sport::query()->pluck('name', 'id'))
|
||||
->multiple()
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Filament\Resources\Clients\Tables;
|
||||
use App\Actions\AlarmGenerator;
|
||||
use App\Actions\MultilineGenerator;
|
||||
use App\Models\Bookmaker;
|
||||
use App\Models\Provider;
|
||||
use App\Models\Sport;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\EditAction;
|
||||
@@ -20,20 +21,21 @@ class ClientsTable
|
||||
->columns([
|
||||
TextColumn::make('name'),
|
||||
TextColumn::make('bookmaker')
|
||||
->wrap()
|
||||
->badge()
|
||||
->formatStateUsing(fn (string $state): string => Bookmaker::where('id', $state)->pluck('name')->first()),
|
||||
TextColumn::make('provider')
|
||||
->badge()
|
||||
->wrap()
|
||||
->color('success')
|
||||
->formatStateUsing(fn (string $state): string => Provider::where('id', $state)->pluck('name')->first()),
|
||||
TextColumn::make('sport')
|
||||
->badge()
|
||||
->wrap()
|
||||
->color('warning')
|
||||
->formatStateUsing(fn (string $state): string => Sport::where('id', $state)->pluck('name')->first()),
|
||||
TextColumn::make('created_at')
|
||||
->dateTime()
|
||||
->sortable()
|
||||
->toggleable(isToggledHiddenByDefault: true),
|
||||
TextColumn::make('updated_at')
|
||||
->dateTime()
|
||||
->sortable()
|
||||
->toggleable(isToggledHiddenByDefault: true),
|
||||
TextColumn::make('created_at')->dateTime(),
|
||||
TextColumn::make('updated_at')->dateTime(),
|
||||
])
|
||||
->recordActions([
|
||||
Action::make('multiline')
|
||||
|
||||
@@ -21,7 +21,10 @@ class UsersTable
|
||||
->searchable(),
|
||||
TextColumn::make('client.name')->badge(),
|
||||
TextColumn::make('roles.name')->badge()->color('success')->wrap(),
|
||||
TextColumn::make('bookmaker.name')->badge()->color('warning'),
|
||||
TextColumn::make('bookmaker.name')
|
||||
->label('Active Bookmaker')
|
||||
->badge()
|
||||
->color('warning'),
|
||||
TextColumn::make('created_at')
|
||||
->dateTime()
|
||||
->sortable()
|
||||
|
||||
@@ -8,6 +8,7 @@ class Client extends Model
|
||||
{
|
||||
protected $casts = [
|
||||
'bookmaker' => 'json',
|
||||
'provider' => 'json',
|
||||
'sport' => 'json',
|
||||
];
|
||||
|
||||
@@ -15,6 +16,7 @@ class Client extends Model
|
||||
'name',
|
||||
'homepage',
|
||||
'bookmaker',
|
||||
'provider',
|
||||
'sport',
|
||||
];
|
||||
}
|
||||
@@ -21,6 +21,7 @@ return new class extends Migration
|
||||
$table->integer('sport_id')->default(1);
|
||||
$table->integer('bookmaker_id')->nullable();
|
||||
$table->json('bettype_status')->nullable();
|
||||
$table->string('mapper_source')->default('bookmaker');
|
||||
|
||||
$table->text('app_authentication_secret')->nullable();
|
||||
$table->text('app_authentication_recovery_codes')->nullable();
|
||||
|
||||
@@ -16,6 +16,7 @@ return new class extends Migration
|
||||
$table->string('name');
|
||||
$table->string('homepage')->nullable();
|
||||
$table->string('bookmaker')->nullable();
|
||||
$table->string('provider')->nullable();
|
||||
$table->string('sport')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
@@ -12,10 +12,11 @@ class ClientsSeeder extends Seeder
|
||||
/**
|
||||
* Clients
|
||||
*/
|
||||
$sql = "INSERT INTO `clients` (`id`, `name`, `homepage`, `bookmaker`, `sport`, `created_at`, `updated_at`)
|
||||
$sql = "INSERT INTO `clients` (`id`, `name`, `homepage`, `bookmaker`, `provider`, `sport`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
('1', 'Magloo', NULL, '[\"20\",\"24\"]', '[\"1\",\"3\"]', '2025-08-24 05:56:41', '2025-08-24 05:56:41'),
|
||||
('2', 'Logifuture', NULL, '[\"26\",\"27\"]', '[\"1\",\"2\",\"3\",\"5\"]', '2025-08-24 05:57:01', '2025-08-24 05:57:01');";
|
||||
(1, 'Magloo', NULL, '[20,24]', '[3,4]', '[1,3]', '2025-08-24 05:56:41', '2025-12-30 07:42:58'),
|
||||
(2, 'Logifuture', NULL, '[26,27]', '[5,6]', '[1,2,3,5]', '2025-08-24 05:57:01', '2025-12-30 07:43:26');
|
||||
";
|
||||
DB::unprepared($sql);
|
||||
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ class RolesAndPermissionsSeeder extends Seeder
|
||||
[
|
||||
['name' => 'super_admin', 'guard_name' => 'web'],
|
||||
['name' => 'konto_switch', 'guard_name' => 'web'],
|
||||
['name' => 'provider_menu', 'guard_name' => 'web'],
|
||||
['name' => 'matchid_column', 'guard_name' => 'web'],
|
||||
['name' => 'mapper_source_betsapi', 'guard_name' => 'web'],
|
||||
],
|
||||
['name']
|
||||
);
|
||||
@@ -27,12 +27,13 @@ class RolesAndPermissionsSeeder extends Seeder
|
||||
'email_verified_at' => now(),
|
||||
'client_id' => 1,
|
||||
'sport_id' => 1,
|
||||
'bookmaker_id' => 26,
|
||||
'bookmaker_id' => 20,
|
||||
]);
|
||||
$user->assignRole('super_admin');
|
||||
$user->assignRole('konto_switch');
|
||||
$user->assignRole('provider_menu');
|
||||
$user->assignRole('matchid_column');
|
||||
$user->assignRole('mapper_source_betsapi');
|
||||
|
||||
$user = User::factory()->create([
|
||||
'name' => 'Ubaldo Perrucci',
|
||||
@@ -41,10 +42,10 @@ class RolesAndPermissionsSeeder extends Seeder
|
||||
'email_verified_at' => now(),
|
||||
'client_id' => 1,
|
||||
'sport_id' => 1,
|
||||
'bookmaker_id' => 26,
|
||||
'bookmaker_id' => 20,
|
||||
]);
|
||||
$user->assignRole('super_admin');
|
||||
$user->assignRole('konto_switch');
|
||||
$user->assignRole('provider_menu');
|
||||
$user->assignRole('mapper_source_betsapi');
|
||||
}
|
||||
}
|
||||
@@ -17,14 +17,31 @@
|
||||
</x-slot>
|
||||
|
||||
<x-slot name="heading">
|
||||
<div class="flex justify-between items-center w-6xl">
|
||||
<div class="flex justify-between items-center w-5xl">
|
||||
<div>Event Mapper</div>
|
||||
@if (auth()->user()->hasRole('provider_menu'))
|
||||
<x-filament::dropdown>
|
||||
<x-slot name="trigger">
|
||||
<x-bkm-bet365 class="w-20 h-6" />
|
||||
</x-slot>
|
||||
|
||||
<x-filament::dropdown.list>
|
||||
|
||||
<x-filament::dropdown.list.item>
|
||||
<x-bkm-magloo-kenia class="w-20 h-6" />
|
||||
</x-filament::dropdown.list.item>
|
||||
<x-filament::dropdown.list.item>
|
||||
<x-bkm-magloo-nig class="w-20 h-6" />
|
||||
</x-filament::dropdown.list.item>
|
||||
|
||||
|
||||
</x-filament::dropdown.list>
|
||||
</x-filament::dropdown>
|
||||
@if (auth()->user()->hasRole('mapper_source_betsapi'))
|
||||
<x-filament::input.wrapper>
|
||||
<x-filament::input.select wire:model="status">
|
||||
<option value="BetsApi">Provider BetsApi</option>
|
||||
<option value="Magloo">Provider Magloo</option>
|
||||
<option value="Logifutur">Provider Logifutur</option>
|
||||
<option value="BetsApi">Bet365</option>
|
||||
<option value="Magloo">Magloo</option>
|
||||
<option value="Logifutur">Logifutur</option>
|
||||
</x-filament::input.select>
|
||||
</x-filament::input.wrapper>
|
||||
@endif
|
||||
|
||||
Reference in new issue
Block a user