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