42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Rank;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class RankSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$member = Rank::firstOrCreate(
|
|
['name' => 'Member'],
|
|
['badge_type' => 'text', 'badge_text' => 'Member']
|
|
);
|
|
$operator = Rank::firstOrCreate(
|
|
['name' => 'Operator'],
|
|
['badge_type' => 'text', 'badge_text' => 'Operator']
|
|
);
|
|
$moderator = Rank::firstOrCreate(
|
|
['name' => 'Moderator'],
|
|
['badge_type' => 'text', 'badge_text' => 'Moderator']
|
|
);
|
|
|
|
User::query()
|
|
->whereNull('rank_id')
|
|
->update(['rank_id' => $member->id]);
|
|
|
|
User::query()
|
|
->whereHas('roles', fn ($query) => $query->where('name', 'ROLE_ADMIN'))
|
|
->update(['rank_id' => $operator->id]);
|
|
|
|
User::query()
|
|
->whereHas('roles', fn ($query) => $query->where('name', 'ROLE_MODERATOR'))
|
|
->update(['rank_id' => $moderator->id]);
|
|
}
|
|
}
|