diff --git a/app/Filament/Resources/Bookmakers/Schemas/BookmakerForm.php b/app/Filament/Resources/Bookmakers/Schemas/BookmakerForm.php
index 449ea722..33d4c436 100644
--- a/app/Filament/Resources/Bookmakers/Schemas/BookmakerForm.php
+++ b/app/Filament/Resources/Bookmakers/Schemas/BookmakerForm.php
@@ -17,6 +17,7 @@ class BookmakerForm
TextInput::make('icon')
->required(),
FileUpload::make('image')
+ ->preserveFilenames()
->default(null),
TextInput::make('baid')
->numeric()
diff --git a/app/Filament/Resources/Bookmakers/Tables/BookmakersTable.php b/app/Filament/Resources/Bookmakers/Tables/BookmakersTable.php
index 5d7a1c24..2fd3ec16 100644
--- a/app/Filament/Resources/Bookmakers/Tables/BookmakersTable.php
+++ b/app/Filament/Resources/Bookmakers/Tables/BookmakersTable.php
@@ -26,7 +26,9 @@ class BookmakersTable
->icon(function ($record): string {
return 'bkm-'.$record->icon;
}),
- ImageColumn::make('image'),
+ ImageColumn::make('image')
+ ->imageHeight(30)
+ ->imageWidth(110),
TextColumn::make('baid')
->numeric()
->sortable(),
diff --git a/app/Filament/Resources/Clients/ClientResource.php b/app/Filament/Resources/Clients/ClientResource.php
index 24c7293a..6edde995 100644
--- a/app/Filament/Resources/Clients/ClientResource.php
+++ b/app/Filament/Resources/Clients/ClientResource.php
@@ -3,8 +3,6 @@
namespace App\Filament\Resources\Clients;
use App\Filament\Clusters\Maintenance\MaintenanceCluster;
-use App\Filament\Resources\Clients\Pages\CreateClient;
-use App\Filament\Resources\Clients\Pages\EditClient;
use App\Filament\Resources\Clients\Pages\ListClients;
use App\Filament\Resources\Clients\Schemas\ClientForm;
use App\Filament\Resources\Clients\Tables\ClientsTable;
@@ -37,19 +35,10 @@ class ClientResource extends Resource
return ClientsTable::configure($table);
}
- public static function getRelations(): array
- {
- return [
- //
- ];
- }
-
public static function getPages(): array
{
return [
'index' => ListClients::route('/'),
- 'create' => CreateClient::route('/create'),
- 'edit' => EditClient::route('/{record}/edit'),
];
}
diff --git a/app/Filament/Resources/Clients/RelationManagers/BookmakerRelationManager.php b/app/Filament/Resources/Clients/RelationManagers/BookmakerRelationManager.php
deleted file mode 100644
index 18a3ee3a..00000000
--- a/app/Filament/Resources/Clients/RelationManagers/BookmakerRelationManager.php
+++ /dev/null
@@ -1,23 +0,0 @@
-headerActions([
- CreateAction::make(),
- ]);
- }
-}
diff --git a/app/Filament/Resources/Clients/Schemas/ClientForm.php b/app/Filament/Resources/Clients/Schemas/ClientForm.php
index 790ab0f2..5af11b0a 100644
--- a/app/Filament/Resources/Clients/Schemas/ClientForm.php
+++ b/app/Filament/Resources/Clients/Schemas/ClientForm.php
@@ -2,6 +2,9 @@
namespace App\Filament\Resources\Clients\Schemas;
+use App\Models\Bookmaker;
+use App\Models\Sport;
+use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
@@ -13,10 +16,18 @@ class ClientForm
->components([
TextInput::make('name')
->required(),
- TextInput::make('icon')
- ->default(null),
TextInput::make('homepage')
->default(null),
+ Select::make('bookmaker')
+ ->options(Bookmaker::query()->pluck('name', 'id'))
+ ->multiple()
+ ->preload()
+ ->searchable(),
+ Select::make('sport')
+ ->options(Sport::query()->pluck('name', 'id'))
+ ->multiple()
+ ->preload()
+ ->searchable(),
]);
}
}
diff --git a/app/Filament/Resources/Clients/Tables/ClientsTable.php b/app/Filament/Resources/Clients/Tables/ClientsTable.php
index 487e6ca4..c26236c5 100644
--- a/app/Filament/Resources/Clients/Tables/ClientsTable.php
+++ b/app/Filament/Resources/Clients/Tables/ClientsTable.php
@@ -2,6 +2,8 @@
namespace App\Filament\Resources\Clients\Tables;
+use App\Models\Bookmaker;
+use App\Models\Sport;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
@@ -14,12 +16,14 @@ class ClientsTable
{
return $table
->columns([
- TextColumn::make('name')
- ->searchable(),
- TextColumn::make('icon')
- ->searchable(),
- TextColumn::make('homepage')
- ->searchable(),
+ TextColumn::make('name'),
+ TextColumn::make('bookmaker')
+ ->badge()
+ ->formatStateUsing(fn (string $state): string => Bookmaker::where('id', $state)->pluck('name')->first()),
+ TextColumn::make('sport')
+ ->badge()
+ ->color('secondary')
+ ->formatStateUsing(fn (string $state): string => Sport::where('id', $state)->pluck('name')->first()),
TextColumn::make('created_at')
->dateTime()
->sortable()
@@ -29,9 +33,6 @@ class ClientsTable
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
- ->filters([
- //
- ])
->recordActions([
EditAction::make(),
])
diff --git a/app/Filament/Resources/Providers/Pages/CreateProvider.php b/app/Filament/Resources/Providers/Pages/CreateProvider.php
new file mode 100644
index 00000000..06a745d0
--- /dev/null
+++ b/app/Filament/Resources/Providers/Pages/CreateProvider.php
@@ -0,0 +1,11 @@
+ ListProviders::route('/'),
+ ];
+ }
+
+ public static function getNavigationBadge(): ?string
+ {
+ return parent::getEloquentQuery()->count();
+ }
+}
diff --git a/app/Filament/Resources/Providers/Schemas/ProviderForm.php b/app/Filament/Resources/Providers/Schemas/ProviderForm.php
new file mode 100644
index 00000000..dddc57f9
--- /dev/null
+++ b/app/Filament/Resources/Providers/Schemas/ProviderForm.php
@@ -0,0 +1,18 @@
+components([
+ TextInput::make('name')
+ ->required(),
+ ]);
+ }
+}
diff --git a/app/Filament/Resources/Providers/Tables/ProvidersTable.php b/app/Filament/Resources/Providers/Tables/ProvidersTable.php
new file mode 100644
index 00000000..48df490c
--- /dev/null
+++ b/app/Filament/Resources/Providers/Tables/ProvidersTable.php
@@ -0,0 +1,22 @@
+columns([
+ TextColumn::make('id'),
+ TextColumn::make('name'),
+ ])
+ ->recordActions([
+ EditAction::make(),
+ ]);
+ }
+}
diff --git a/app/Filament/Resources/Users/Schemas/UserForm.php b/app/Filament/Resources/Users/Schemas/UserForm.php
index f6e5c425..76b82fee 100644
--- a/app/Filament/Resources/Users/Schemas/UserForm.php
+++ b/app/Filament/Resources/Users/Schemas/UserForm.php
@@ -19,10 +19,13 @@ class UserForm
->label('Email address')
->email()
->required(),
- DateTimePicker::make('email_verified_at'),
- TextInput::make('password')
- ->password()
- ->required(),
+ // DateTimePicker::make('email_verified_at'),
+ // TextInput::make('password')
+ // ->password()
+ // ->required(),
+ Select::make('client_id')
+ ->relationship('client', 'name')
+ ->preload(),
Select::make('roles')
->relationship('roles', 'name')
->multiple()
diff --git a/app/Filament/Resources/Users/Tables/UsersTable.php b/app/Filament/Resources/Users/Tables/UsersTable.php
index 2356b76e..04912ac1 100644
--- a/app/Filament/Resources/Users/Tables/UsersTable.php
+++ b/app/Filament/Resources/Users/Tables/UsersTable.php
@@ -2,8 +2,6 @@
namespace App\Filament\Resources\Users\Tables;
-use Filament\Actions\BulkActionGroup;
-use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
@@ -19,9 +17,7 @@ class UsersTable
TextColumn::make('email')
->label('Email address')
->searchable(),
- TextColumn::make('email_verified_at')
- ->dateTime()
- ->sortable(),
+ TextColumn::make('client.name')->badge(),
TextColumn::make('created_at')
->dateTime()
->sortable()
@@ -30,19 +26,12 @@ class UsersTable
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
- TextColumn::make('avatar_url')
- ->searchable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
- ])
- ->toolbarActions([
- BulkActionGroup::make([
- DeleteBulkAction::make(),
- ]),
]);
}
}
diff --git a/app/Filament/Resources/Users/UserResource.php b/app/Filament/Resources/Users/UserResource.php
index 71206f6f..b1097089 100644
--- a/app/Filament/Resources/Users/UserResource.php
+++ b/app/Filament/Resources/Users/UserResource.php
@@ -3,8 +3,6 @@
namespace App\Filament\Resources\Users;
use App\Filament\Clusters\Maintenance\MaintenanceCluster;
-use App\Filament\Resources\Users\Pages\CreateUser;
-use App\Filament\Resources\Users\Pages\EditUser;
use App\Filament\Resources\Users\Pages\ListUsers;
use App\Filament\Resources\Users\Schemas\UserForm;
use App\Filament\Resources\Users\Tables\UsersTable;
@@ -50,8 +48,6 @@ class UserResource extends Resource
{
return [
'index' => ListUsers::route('/'),
- 'create' => CreateUser::route('/create'),
- 'edit' => EditUser::route('/{record}/edit'),
];
}
diff --git a/app/Models/Bookmaker.php b/app/Models/Bookmaker.php
index 27b815aa..16919e19 100644
--- a/app/Models/Bookmaker.php
+++ b/app/Models/Bookmaker.php
@@ -9,6 +9,7 @@ class Bookmaker extends Model
protected $fillable = [
'name',
'icon',
+ 'image',
'baid',
'txid',
'txso',
diff --git a/app/Models/Client.php b/app/Models/Client.php
index b02c8abf..fc6da7bb 100644
--- a/app/Models/Client.php
+++ b/app/Models/Client.php
@@ -6,19 +6,15 @@ use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
- protected $fillable = [
- 'name',
- 'email',
- 'homepage',
+ protected $casts = [
+ 'bookmaker' => 'json',
+ 'sport' => 'json',
];
- public function client_sports()
- {
- return $this->hasMany(ClientSports::class);
- }
-
- public function client_bookmaker()
- {
- return $this->hasMany(ClientBookmaker::class);
- }
+ protected $fillable = [
+ 'name',
+ 'homepage',
+ 'bookmaker',
+ 'sport',
+ ];
}
diff --git a/app/Models/ClientBookmaker.php b/app/Models/ClientBookmaker.php
deleted file mode 100644
index 3602c17f..00000000
--- a/app/Models/ClientBookmaker.php
+++ /dev/null
@@ -1,24 +0,0 @@
-belongsTo(Client::class);
- }
-
- public function bookmaker()
- {
- return $this->belongsTo(Bookmaker::class);
- }
-}
diff --git a/app/Models/ClientSport.php b/app/Models/ClientSport.php
deleted file mode 100644
index 404ff91d..00000000
--- a/app/Models/ClientSport.php
+++ /dev/null
@@ -1,24 +0,0 @@
-belongsTo(Client::class);
- }
-
- public function sport()
- {
- return $this->belongsTo(Sport::class);
- }
-}
diff --git a/app/Models/Odds2way.php b/app/Models/Odds2way.php
index f2685837..c9f2c8a4 100644
--- a/app/Models/Odds2way.php
+++ b/app/Models/Odds2way.php
@@ -2,8 +2,6 @@
namespace App\Models;
-use App\Enums\EnumMatchpart;
-use App\Enums\EnumSuspended;
use Illuminate\Database\Eloquent\Model;
class Odds2way extends Model
@@ -16,38 +14,42 @@ class Odds2way extends Model
'sport_id',
'matchpart_id',
'bookmaker_id',
- 'bookmaker',
- 'suspended',
- 'oddshash',
+ 'provider_id',
'home',
'away',
'margin',
+ 'flag',
+ 'check',
'add_time',
'updated_at',
];
protected $casts = [
- 'suspended' => EnumSuspended::class,
'matchpart_id' => EnumMatchpart::class,
];
public function sport()
{
- return $this->belongsTo(Sport::class, 'sport_id');
+ return $this->belongsTo(Sport::class);
}
public function bookmaker()
{
- return $this->belongsTo(Bookmaker::class, 'bookmaker_id');
+ return $this->belongsTo(Bookmaker::class);
}
public function matchpart()
{
- return $this->belongsTo(Matchpart::class, 'matchpart_id');
+ return $this->belongsTo(Matchpart::class);
}
public function event()
{
- return $this->belongsTo(Event::class, 'event_id');
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
}
}
diff --git a/app/Models/Odds3way.php b/app/Models/Odds3way.php
index 69ca6217..098533ef 100644
--- a/app/Models/Odds3way.php
+++ b/app/Models/Odds3way.php
@@ -2,8 +2,6 @@
namespace App\Models;
-use App\Enums\EnumMatchpart;
-use App\Enums\EnumSuspended;
use Illuminate\Database\Eloquent\Model;
class Odds3way extends Model
@@ -16,39 +14,43 @@ class Odds3way extends Model
'sport_id',
'matchpart_id',
'bookmaker_id',
- 'bookmaker',
- 'suspended',
- 'oddshash',
+ 'provider_id',
'home',
'draw',
'away',
'margin',
+ 'flag',
+ 'check',
'add_time',
'updated_at',
];
protected $casts = [
- 'suspended' => EnumSuspended::class,
'matchpart_id' => EnumMatchpart::class,
];
public function sport()
{
- return $this->belongsTo(Sport::class, 'sport_id');
+ return $this->belongsTo(Sport::class);
}
public function bookmaker()
{
- return $this->belongsTo(Bookmaker::class, 'bookmaker_id');
+ return $this->belongsTo(Bookmaker::class);
}
public function matchpart()
{
- return $this->belongsTo(Matchpart::class, 'matchpart_id');
+ return $this->belongsTo(Matchpart::class);
}
public function event()
{
- return $this->belongsTo(Event::class, 'event_id');
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
}
}
diff --git a/app/Models/OddsDnb.php b/app/Models/OddsDnb.php
index 46e8a726..d6e2e65b 100644
--- a/app/Models/OddsDnb.php
+++ b/app/Models/OddsDnb.php
@@ -3,7 +3,6 @@
namespace App\Models;
use App\Enums\EnumMatchpart;
-use App\Enums\EnumSuspended;
use Illuminate\Database\Eloquent\Model;
class OddsDnb extends Model
@@ -16,38 +15,42 @@ class OddsDnb extends Model
'sport_id',
'matchpart_id',
'bookmaker_id',
- 'bookmaker',
- 'suspended',
- 'oddshash',
+ 'provider_id',
'dnb1',
'dnb2',
'margin',
+ 'flag',
+ 'check',
'add_time',
'updated_at',
];
protected $casts = [
- 'suspended' => EnumSuspended::class,
'matchpart_id' => EnumMatchpart::class,
];
public function sport()
{
- return $this->belongsTo(Sport::class, 'sport_id');
+ return $this->belongsTo(Sport::class);
}
public function bookmaker()
{
- return $this->belongsTo(Bookmaker::class, 'bookmaker_id');
+ return $this->belongsTo(Bookmaker::class);
}
public function matchpart()
{
- return $this->belongsTo(Matchpart::class, 'matchpart_id');
+ return $this->belongsTo(Matchpart::class);
}
public function event()
{
- return $this->belongsTo(Event::class, 'event_id');
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
}
}
diff --git a/app/Models/OddsHandicap.php b/app/Models/OddsHandicap.php
index 763be5c9..c041d201 100644
--- a/app/Models/OddsHandicap.php
+++ b/app/Models/OddsHandicap.php
@@ -3,7 +3,6 @@
namespace App\Models;
use App\Enums\EnumMatchpart;
-use App\Enums\EnumSuspended;
use Illuminate\Database\Eloquent\Model;
class OddsHandicap extends Model
@@ -16,39 +15,43 @@ class OddsHandicap extends Model
'sport_id',
'matchpart_id',
'bookmaker_id',
- 'bookmaker',
- 'suspended',
- 'oddshash',
+ 'provider_id',
'home',
'away',
'handicap',
'margin',
+ 'flag',
+ 'check',
'add_time',
'updated_at',
];
protected $casts = [
- 'suspended' => EnumSuspended::class,
'matchpart_id' => EnumMatchpart::class,
];
public function sport()
{
- return $this->belongsTo(Sport::class, 'sport_id');
+ return $this->belongsTo(Sport::class);
}
public function bookmaker()
{
- return $this->belongsTo(Bookmaker::class, 'bookmaker_id');
+ return $this->belongsTo(Bookmaker::class);
}
public function matchpart()
{
- return $this->belongsTo(Matchpart::class, 'matchpart_id');
+ return $this->belongsTo(Matchpart::class);
}
public function event()
{
- return $this->belongsTo(Event::class, 'event_id');
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
}
}
diff --git a/app/Models/OddsQualify.php b/app/Models/OddsQualify.php
new file mode 100644
index 00000000..af130261
--- /dev/null
+++ b/app/Models/OddsQualify.php
@@ -0,0 +1,53 @@
+ EnumMatchpart::class,
+ ];
+
+ public function sport()
+ {
+ return $this->belongsTo(Sport::class);
+ }
+
+ public function bookmaker()
+ {
+ return $this->belongsTo(Bookmaker::class);
+ }
+
+ public function matchpart()
+ {
+ return $this->belongsTo(Matchpart::class);
+ }
+
+ public function event()
+ {
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
+ }
+}
diff --git a/app/Models/OddsTotal.php b/app/Models/OddsTotal.php
index 9ffc6f97..361124e4 100644
--- a/app/Models/OddsTotal.php
+++ b/app/Models/OddsTotal.php
@@ -3,7 +3,6 @@
namespace App\Models;
use App\Enums\EnumMatchpart;
-use App\Enums\EnumSuspended;
use Illuminate\Database\Eloquent\Model;
class OddsTotal extends Model
@@ -16,39 +15,43 @@ class OddsTotal extends Model
'sport_id',
'matchpart_id',
'bookmaker_id',
- 'bookmaker',
- 'suspended',
- 'oddshash',
+ 'provider_id',
'over',
'under',
'spread',
'margin',
+ 'flag',
+ 'check',
'add_time',
'updated_at',
];
protected $casts = [
- 'suspended' => EnumSuspended::class,
'matchpart_id' => EnumMatchpart::class,
];
public function sport()
{
- return $this->belongsTo(Sport::class, 'sport_id');
+ return $this->belongsTo(Sport::class);
}
public function bookmaker()
{
- return $this->belongsTo(Bookmaker::class, 'bookmaker_id');
+ return $this->belongsTo(Bookmaker::class);
}
public function matchpart()
{
- return $this->belongsTo(Matchpart::class, 'matchpart_id');
+ return $this->belongsTo(Matchpart::class);
}
public function event()
{
- return $this->belongsTo(Event::class, 'event_id');
+ return $this->belongsTo(Event::class);
+ }
+
+ public function provider()
+ {
+ return $this->belongsTo(Provider::class);
}
}
diff --git a/app/Models/Provider.php b/app/Models/Provider.php
new file mode 100644
index 00000000..7cf10c44
--- /dev/null
+++ b/app/Models/Provider.php
@@ -0,0 +1,12 @@
+ 'hashed',
];
}
+
+ public function client()
+ {
+ return $this->belongsTo(Client::class);
+ }
}
diff --git a/app/Policies/BookmakerPolicy.php b/app/Policies/BookmakerPolicy.php
new file mode 100644
index 00000000..7f58e03b
--- /dev/null
+++ b/app/Policies/BookmakerPolicy.php
@@ -0,0 +1,108 @@
+can('view_any_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('view_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->can('create_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('update_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('delete_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can bulk delete.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->can('delete_any_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can permanently delete.
+ */
+ public function forceDelete(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('force_delete_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can permanently bulk delete.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->can('force_delete_any_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can restore.
+ */
+ public function restore(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('restore_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can bulk restore.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->can('restore_any_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can replicate.
+ */
+ public function replicate(User $user, Bookmaker $bookmaker): bool
+ {
+ return $user->can('replicate_bookmakers::bookmaker');
+ }
+
+ /**
+ * Determine whether the user can reorder.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->can('reorder_bookmakers::bookmaker');
+ }
+}
diff --git a/app/Policies/ProviderPolicy.php b/app/Policies/ProviderPolicy.php
new file mode 100644
index 00000000..3c685b4d
--- /dev/null
+++ b/app/Policies/ProviderPolicy.php
@@ -0,0 +1,108 @@
+can('view_any_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, Provider $provider): bool
+ {
+ return $user->can('view_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->can('create_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, Provider $provider): bool
+ {
+ return $user->can('update_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, Provider $provider): bool
+ {
+ return $user->can('delete_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can bulk delete.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->can('delete_any_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can permanently delete.
+ */
+ public function forceDelete(User $user, Provider $provider): bool
+ {
+ return $user->can('force_delete_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can permanently bulk delete.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->can('force_delete_any_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can restore.
+ */
+ public function restore(User $user, Provider $provider): bool
+ {
+ return $user->can('restore_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can bulk restore.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->can('restore_any_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can replicate.
+ */
+ public function replicate(User $user, Provider $provider): bool
+ {
+ return $user->can('replicate_providers::provider');
+ }
+
+ /**
+ * Determine whether the user can reorder.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->can('reorder_providers::provider');
+ }
+}
diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php
index 05fb5d9e..0eb12238 100644
--- a/database/migrations/0001_01_01_000000_create_users_table.php
+++ b/database/migrations/0001_01_01_000000_create_users_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
+ $table->integer('client_id')->index();
$table->rememberToken();
$table->timestamps();
});
diff --git a/database/migrations/2024_11_08_053426_create_odds_3ways_table.php b/database/migrations/2024_11_08_053426_create_odds_3ways_table.php
index 20880202..c87d5bb9 100644
--- a/database/migrations/2024_11_08_053426_create_odds_3ways_table.php
+++ b/database/migrations/2024_11_08_053426_create_odds_3ways_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('home', 7, 3)->default(0);
$table->decimal('draw', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053430_create_odds_2ways_table.php b/database/migrations/2024_11_08_053430_create_odds_2ways_table.php
index 3fb8df13..84042453 100644
--- a/database/migrations/2024_11_08_053430_create_odds_2ways_table.php
+++ b/database/migrations/2024_11_08_053430_create_odds_2ways_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('home', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
$table->decimal('margin', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053430_create_odds_dc_table.php b/database/migrations/2024_11_08_053430_create_odds_dc_table.php
index 2c8c94e8..f0b5bfa5 100644
--- a/database/migrations/2024_11_08_053430_create_odds_dc_table.php
+++ b/database/migrations/2024_11_08_053430_create_odds_dc_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('dc1x', 7, 3)->default(0);
$table->decimal('dc12', 7, 3)->default(0);
$table->decimal('dc2x', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053430_create_odds_dnb_table.php b/database/migrations/2024_11_08_053430_create_odds_dnb_table.php
index 2f240c43..90e36d73 100644
--- a/database/migrations/2024_11_08_053430_create_odds_dnb_table.php
+++ b/database/migrations/2024_11_08_053430_create_odds_dnb_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('dnb1', 7, 3)->default(0);
$table->decimal('dnb2', 7, 3)->default(0);
$table->decimal('margin', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053430_create_odds_ggng_table.php b/database/migrations/2024_11_08_053430_create_odds_ggng_table.php
index 929a7f02..5eddd960 100644
--- a/database/migrations/2024_11_08_053430_create_odds_ggng_table.php
+++ b/database/migrations/2024_11_08_053430_create_odds_ggng_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('gg', 7, 3)->default(0);
$table->decimal('ng', 7, 3)->default(0);
$table->decimal('margin', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053430_create_odds_qualify_table.php b/database/migrations/2024_11_08_053430_create_odds_qualify_table.php
index 51e23562..a7d0ef3d 100644
--- a/database/migrations/2024_11_08_053430_create_odds_qualify_table.php
+++ b/database/migrations/2024_11_08_053430_create_odds_qualify_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('htq', 7, 3)->default(0);
$table->decimal('atq', 7, 3)->default(0);
$table->decimal('margin', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053439_create_odds_handicaps_table.php b/database/migrations/2024_11_08_053439_create_odds_handicaps_table.php
index f6fbb5ca..3d8d71f9 100644
--- a/database/migrations/2024_11_08_053439_create_odds_handicaps_table.php
+++ b/database/migrations/2024_11_08_053439_create_odds_handicaps_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('home', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
$table->decimal('handicap', 7, 3)->default(0);
diff --git a/database/migrations/2024_11_08_053445_create_odds_totals_table.php b/database/migrations/2024_11_08_053445_create_odds_totals_table.php
index dce45c1b..da90982d 100644
--- a/database/migrations/2024_11_08_053445_create_odds_totals_table.php
+++ b/database/migrations/2024_11_08_053445_create_odds_totals_table.php
@@ -17,6 +17,7 @@ return new class extends Migration
$table->integer('sport_id')->default(0);
$table->integer('matchpart_id')->default(0);
$table->integer('bookmaker_id')->default(0);
+ $table->integer('provider_id')->default(0);
$table->decimal('over', 7, 3)->default(0);
$table->decimal('under', 7, 3)->default(0);
$table->decimal('total', 7, 3)->default(0);
diff --git a/database/migrations/2025_05_17_074540_create_bookmakers_table.php b/database/migrations/2025_05_17_074540_create_bookmakers_table.php
index b2a0552a..c1fc13f2 100644
--- a/database/migrations/2025_05_17_074540_create_bookmakers_table.php
+++ b/database/migrations/2025_05_17_074540_create_bookmakers_table.php
@@ -15,6 +15,7 @@ return new class extends Migration
$table->id();
$table->string('name');
$table->string('icon')->nullable();
+ $table->string('image')->nullable();
$table->integer('baid')->default(0);
$table->integer('txid')->default(0);
$table->boolean('txso')->default(0);
@@ -22,6 +23,7 @@ return new class extends Migration
$table->boolean('betsapi')->default(0);
$table->boolean('direct')->default(0);
$table->boolean('is_active')->default(0);
+ $table->integer('provider_id')->default(0);
$table->boolean('deleted')->default(0);
$table->timestamps();
});
diff --git a/database/migrations/2025_05_17_074558_create_providers_table.php b/database/migrations/2025_05_17_074558_create_providers_table.php
index ab34e311..aa902bf5 100644
--- a/database/migrations/2025_05_17_074558_create_providers_table.php
+++ b/database/migrations/2025_05_17_074558_create_providers_table.php
@@ -15,7 +15,6 @@ return new class extends Migration
$table->id();
$table->string('name');
$table->string('icon')->nullable();
- $table->boolean('is_leader')->default(0);
$table->timestamps();
});
}
diff --git a/database/migrations/2025_05_17_074607_create_clients_table.php b/database/migrations/2025_05_17_074607_create_clients_table.php
index 549e9057..5fa85ebe 100644
--- a/database/migrations/2025_05_17_074607_create_clients_table.php
+++ b/database/migrations/2025_05_17_074607_create_clients_table.php
@@ -14,8 +14,9 @@ return new class extends Migration
Schema::create('clients', function (Blueprint $table) {
$table->id();
$table->string('name');
- $table->string('icon')->nullable();
$table->string('homepage')->nullable();
+ $table->string('bookmaker')->nullable();
+ $table->string('sport')->nullable();
$table->timestamps();
});
}
diff --git a/database/migrations/2025_05_19_121513_create_client_bookmakers_table.php b/database/migrations/2025_05_19_121513_create_client_bookmakers_table.php
deleted file mode 100644
index 8ff2f777..00000000
--- a/database/migrations/2025_05_19_121513_create_client_bookmakers_table.php
+++ /dev/null
@@ -1,30 +0,0 @@
-id();
- $table->integer('client_id');
- $table->integer('bookmaker_id');
- $table->boolean('is_active')->default(0);
- $table->timestamps();
- });
- }
-
- /**
- * Reverse the migrations.
- */
- public function down(): void
- {
- Schema::dropIfExists('client_bookmakers');
- }
-};
diff --git a/database/migrations/2025_05_19_121513_create_client_sports_table.php b/database/migrations/2025_05_19_121513_create_client_sports_table.php
deleted file mode 100644
index 9b27d8d3..00000000
--- a/database/migrations/2025_05_19_121513_create_client_sports_table.php
+++ /dev/null
@@ -1,30 +0,0 @@
-id();
- $table->integer('client_id');
- $table->integer('sport_id');
- $table->boolean('is_active')->default(0);
- $table->timestamps();
- });
- }
-
- /**
- * Reverse the migrations.
- */
- public function down(): void
- {
- Schema::dropIfExists('client_sports');
- }
-};
diff --git a/database/seeders/BookmakerSeeder.php b/database/seeders/BookmakerSeeder.php
index 23bce2f3..6295bba9 100644
--- a/database/seeders/BookmakerSeeder.php
+++ b/database/seeders/BookmakerSeeder.php
@@ -9,57 +9,57 @@ class BookmakerSeeder extends Seeder
{
public function run(): void
{
- $sql = "INSERT INTO `bookmakers` (`id`, `name`, `icon`, `baid`, `txid`, `txso`, `txot`, `betsapi`, `direct`, `is_active`, `deleted`, `created_at`, `updated_at`)
+ $sql = "INSERT INTO `bookmakers` (`id`, `name`, `icon`, `image`, `baid`, `txid`, `txso`, `txot`, `betsapi`, `direct`, `is_active`, `deleted`, `created_at`, `updated_at`)
VALUES
- ('1', 'MISSING', '01K38AYTRV6X29TV888GMTYQ8Q.svg', '0', '0', '0', '0', '2', '0', '0', '0', NULL, '2025-08-22 07:30:13'),
- ('2', 'Bet365', 'bet365', '2', '126', '0', '1', '2', '0', '1', '0', NULL, '2025-08-22 07:41:24'),
- ('3', 'BWin', 'bwin', '3', '30', '1', '1', '2', '0', '1', '0', NULL, '2025-08-22 07:43:48'),
- ('4', 'BetFair', 'betfair', '4', '110', '1', '0', '2', '0', '1', '0', NULL, '2025-08-22 07:47:53'),
- ('5', 'Betway', 'betway', '5', '340', '0', '0', '2', '0', '0', '0', NULL, NULL),
- ('6', '10Bet', '10bet', '6', '274', '0', '1', '2', '0', '0', '0', NULL, NULL),
- ('7', 'Ladbrokes', 'ladbrokes', '7', '17', '0', '1', '2', '0', '1', '0', NULL, NULL),
- ('8', 'PlanetWin365', 'planetwin365', '8', '627', '0', '0', '2', '0', '0', '0', NULL, NULL),
- ('10', 'UniBet', 'unibet', '10', '6', '1', '1', '2', '0', '1', '0', NULL, NULL),
- ('11', '888Sport', '888sport', '11', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
- ('13', 'Betsson', 'betsson', '13', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
- ('14', 'Sbobet', 'sbobet', '14', '327', '1', '0', '2', '0', '1', '0', NULL, NULL),
- ('15', 'TitanBet', NULL, '15', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
- ('16', 'DafaBet', NULL, '16', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
- ('17', 'BetVictor', NULL, '17', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
- ('18', '1XBet', '1xbet', '18', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
- ('19', 'Expekt', 'expekt', '0', '5', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('20', 'Magloo Nigeria', 'magloo-nigeria', '0', '10', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('21', 'Sportingbet', 'sportingbet', '0', '13', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('22', 'Betika', 'betika', '0', '14', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('23', 'Intertops', 'intertops', '0', '15', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('24', 'Magloo Kenia', 'magloo-kenia', '0', '16', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('25', 'Interwetten', 'interwetten', '0', '26', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('26', 'Logispin Nigeria', 'logispin-nigeria', '0', '35', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('27', 'Logispin Colombia', 'logispin-colombia', '0', '36', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('28', 'William Hill', 'willhill', '0', '42', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('29', 'Bet At Home', 'betathome', '0', '49', '0', '1', '1', '0', '1', '0', NULL, NULL),
- ('30', 'Pinnacle', 'pinnacle', '0', '83', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('31', 'SNAI', 'snai', '0', '117', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('32', 'Nordicbet', 'nordicbet', '0', '118', '0', '1', '1', '0', '1', '0', NULL, NULL),
- ('33', 'Goldbet', 'goldbet', '0', '128', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('34', '5 Dimes', '5dimes', '0', '234', '1', '0', '1', '0', '1', '1', NULL, NULL),
- ('35', 'Matchbook', 'matchbook', '0', '314', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('36', 'Tipico', 'tipico', '0', '363', '0', '1', '1', '0', '1', '0', NULL, NULL),
- ('37', 'PartyBets', 'partybets', '0', '380', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('38', 'Eurobet', 'eurobet', '0', '388', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('39', 'BetClick', 'betclick', '0', '395', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('40', 'Bet3000', 'bet3000', '0', '399', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('41', 'Better', 'better', '0', '413', '0', '1', '1', '0', '1', '0', NULL, NULL),
- ('42', 'Marathonbet', 'marathonbet', '0', '539', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('43', 'Sisal', 'sisal', '0', '577', '0', '1', '1', '0', '1', '0', NULL, NULL),
- ('44', 'Betaland', 'betaland', '0', '625', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('45', 'Bet9ja', 'bet9ja', '0', '658', '0', '0', '1', '0', '1', '0', NULL, NULL),
- ('46', 'SportPesa', 'sportpesa', '0', '668', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('47', 'BetKing', 'betking', '0', '823', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('48', 'BetPlay', 'betplay', '0', '824', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('49', 'SportyBet', 'sportybet', '0', '825', '1', '1', '1', '0', '1', '0', NULL, NULL),
- ('50', 'WPlay', 'wplay', '0', '827', '1', '0', '1', '0', '1', '0', NULL, NULL),
- ('51', 'ColBet', 'colbet', '0', '828', '1', '0', '1', '0', '1', '0', NULL, NULL);
+ ('1', 'MISSING', '01K38AYTRV6X29TV888GMTYQ8Q.svg', NULL, '0', '0', '0', '0', '2', '0', '0', '0', NULL, '2025-08-23 10:07:59'),
+ ('2', 'Bet365', 'bet365', 'bet365.png', '2', '126', '0', '1', '2', '0', '1', '0', NULL, '2025-08-23 10:08:17'),
+ ('3', 'BWin', 'bwin', 'bwin.jpg', '3', '30', '1', '1', '2', '0', '1', '0', NULL, '2025-08-23 10:08:34'),
+ ('4', 'BetFair', 'betfair', 'betfairy.png', '4', '110', '1', '0', '2', '0', '1', '0', NULL, '2025-08-23 10:10:10'),
+ ('5', 'Betway', 'betway', '', '5', '340', '0', '0', '2', '0', '0', '0', NULL, NULL),
+ ('6', '10Bet', '10bet', '', '6', '274', '0', '1', '2', '0', '0', '0', NULL, NULL),
+ ('7', 'Ladbrokes', 'ladbrokes', '', '7', '17', '0', '1', '2', '0', '1', '0', NULL, NULL),
+ ('8', 'PlanetWin365', 'planetwin365', '', '8', '627', '0', '0', '2', '0', '0', '0', NULL, NULL),
+ ('10', 'UniBet', 'unibet', '', '10', '6', '1', '1', '2', '0', '1', '0', NULL, NULL),
+ ('11', '888Sport', '888sport', '', '11', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
+ ('13', 'Betsson', 'betsson', '', '13', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
+ ('14', 'Sbobet', 'sbobet', 'sbobet.svg', '14', '327', '1', '0', '2', '0', '1', '0', NULL, '2025-08-23 10:19:43'),
+ ('15', 'TitanBet', NULL, '', '15', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
+ ('16', 'DafaBet', NULL, '', '16', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
+ ('17', 'BetVictor', NULL, '', '17', '0', '0', '0', '2', '0', '0', '1', NULL, NULL),
+ ('18', '1XBet', '1xbet', '', '18', '0', '0', '0', '2', '0', '0', '0', NULL, NULL),
+ ('19', 'Expekt', 'expekt', '', '0', '5', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('20', 'Magloo Nigeria', 'magloo-nig', 'magloo-logo.svg', '0', '10', '0', '0', '1', '0', '1', '0', NULL, '2025-08-23 10:19:02'),
+ ('21', 'Sportingbet', 'sportingbet', '', '0', '13', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('22', 'Betika', 'betika', '', '0', '14', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('23', 'Intertops', 'intertops', '', '0', '15', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('24', 'Magloo Kenia', 'magloo-kenia', 'magloo-kenia.png', '0', '16', '0', '0', '1', '0', '1', '0', NULL, '2025-08-23 10:15:23'),
+ ('25', 'Interwetten', 'interwetten', '', '0', '26', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('26', 'Logifuture Nigeria', 'log-nig', '', '0', '35', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('27', 'Logifuture Colombia', 'log-col', '', '0', '36', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('28', 'William Hill', 'willhill', '', '0', '42', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('29', 'Bet At Home', 'betathome', '', '0', '49', '0', '1', '1', '0', '1', '0', NULL, NULL),
+ ('30', 'Pinnacle', 'pinnacle', '', '0', '83', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('31', 'SNAI', 'snai', '', '0', '117', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('32', 'Nordicbet', 'nordicbet', '', '0', '118', '0', '1', '1', '0', '1', '0', NULL, NULL),
+ ('33', 'Goldbet', 'goldbet', '', '0', '128', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('34', '5 Dimes', '5dimes', '', '0', '234', '1', '0', '1', '0', '1', '1', NULL, NULL),
+ ('35', 'Matchbook', 'matchbook', '', '0', '314', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('36', 'Tipico', 'tipico', '', '0', '363', '0', '1', '1', '0', '1', '0', NULL, NULL),
+ ('37', 'PartyBets', 'partybets', '', '0', '380', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('38', 'Eurobet', 'eurobet', '', '0', '388', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('39', 'BetClick', 'betclick', '', '0', '395', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('40', 'Bet3000', 'bet3000', '', '0', '399', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('41', 'Better', 'better', '', '0', '413', '0', '1', '1', '0', '1', '0', NULL, NULL),
+ ('42', 'Marathonbet', 'marathonbet', '', '0', '539', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('43', 'Sisal', 'sisal', '', '0', '577', '0', '1', '1', '0', '1', '0', NULL, NULL),
+ ('44', 'Betaland', 'betaland', '', '0', '625', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('45', 'Bet9ja', 'bet9ja', '', '0', '658', '0', '0', '1', '0', '1', '0', NULL, NULL),
+ ('46', 'SportPesa', 'sportpesa', '', '0', '668', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('47', 'BetKing', 'betking', '', '0', '823', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('48', 'BetPlay', 'betplay', '', '0', '824', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('49', 'SportyBet', 'sportybet', '', '0', '825', '1', '1', '1', '0', '1', '0', NULL, NULL),
+ ('50', 'WPlay', 'wplay', '', '0', '827', '1', '0', '1', '0', '1', '0', NULL, NULL),
+ ('51', 'ColBet', 'colbet', '', '0', '828', '1', '0', '1', '0', '1', '0', NULL, NULL);
";
DB::unprepared($sql);
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index b5c6bc0b..b14a3e4e 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -13,6 +13,7 @@ class DatabaseSeeder extends Seeder
{
$this->call([
RolesAndPermissionsSeeder::class,
+ OtherSeeder::class,
BookmakerSeeder::class,
CountrySeeder::class,
SportSeeder::class,
diff --git a/database/seeders/OtherSeeder.php b/database/seeders/OtherSeeder.php
new file mode 100644
index 00000000..15c2ea26
--- /dev/null
+++ b/database/seeders/OtherSeeder.php
@@ -0,0 +1,26 @@
+ 'ht@webwerkstatt.tirol',
'password' => Hash::make('salam'),
'email_verified_at' => now(),
+ 'client_id' => 1,
]);
$user->assignRole('super_admin');
@@ -32,6 +33,7 @@ class RolesAndPermissionsSeeder extends Seeder
'email' => 'ubaldo.perrucci@gmail.com',
'password' => Hash::make('oscar'),
'email_verified_at' => now(),
+ 'client_id' => 1,
]);
$user->assignRole('administrator');
@@ -40,6 +42,7 @@ class RolesAndPermissionsSeeder extends Seeder
'email' => 'rr@uta.it',
'password' => Hash::make('salam'),
'email_verified_at' => now(),
+ 'client_id' => 1,
]);
$user->assignRole('user');
}
diff --git a/resources/bkm_icon_svg/magloo-kenia.svg b/resources/bkm_icon_svg/magloo-kenia.svg
new file mode 100644
index 00000000..a2c8e213
--- /dev/null
+++ b/resources/bkm_icon_svg/magloo-kenia.svg
@@ -0,0 +1,22 @@
+
+
+
diff --git a/resources/bkm_icon_svg/magloo-nig.svg b/resources/bkm_icon_svg/magloo-nig.svg
new file mode 100644
index 00000000..a7642000
--- /dev/null
+++ b/resources/bkm_icon_svg/magloo-nig.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/resources/bkm_icon_svg/missing.svg b/resources/bkm_icon_svg/missing.svg
index 317492f1..80613f3c 100644
--- a/resources/bkm_icon_svg/missing.svg
+++ b/resources/bkm_icon_svg/missing.svg
@@ -1,5 +1,5 @@
\ No newline at end of file
diff --git a/resources/bkm_logo_png/magloo-kenia.png b/resources/bkm_logo_png/magloo-kenia.png
index 28d8821a..eb68c928 100644
Binary files a/resources/bkm_logo_png/magloo-kenia.png and b/resources/bkm_logo_png/magloo-kenia.png differ
diff --git a/resources/bkm_logo_png/magloo-nigeria.png b/resources/bkm_logo_png/magloo-nigeria.png
index a734acd0..0bd58102 100644
Binary files a/resources/bkm_logo_png/magloo-nigeria.png and b/resources/bkm_logo_png/magloo-nigeria.png differ
diff --git a/resources/bkm_logo_svg/magloo-kenia.svg b/resources/bkm_logo_svg/magloo-kenia.svg
new file mode 100644
index 00000000..356c4f6e
--- /dev/null
+++ b/resources/bkm_logo_svg/magloo-kenia.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/resources/bkm_logo_svg/magloo-logo.svg b/resources/bkm_logo_svg/magloo-logo.svg
new file mode 100644
index 00000000..567693e6
--- /dev/null
+++ b/resources/bkm_logo_svg/magloo-logo.svg
@@ -0,0 +1,21 @@
+
+
+
diff --git a/storage/icons/magloo-logo.afphoto b/storage/icons/magloo-logo.afphoto
new file mode 100644
index 00000000..396b462e
Binary files /dev/null and b/storage/icons/magloo-logo.afphoto differ
diff --git a/storage/icons/magloo.afphoto b/storage/icons/magloo.afphoto
new file mode 100644
index 00000000..7448a041
Binary files /dev/null and b/storage/icons/magloo.afphoto differ