From 7313f64a7002f6cc33ad1c1aefba1e6d7ae0d1ae Mon Sep 17 00:00:00 2001 From: Sholahuddin Al Ayubi Date: Mon, 10 Nov 2025 17:44:41 +0700 Subject: [PATCH] refactor(usermanagement): enhance UsersSeeder by removing RolesSeeder dependency and improving user creation logic --- .../0001_01_01_000000_create_users_table.php | 11 +- database/seeders/UsersSeeder.php | 134 ++++++++++++++---- 2 files changed, 117 insertions(+), 28 deletions(-) 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 9862eec..7a4bbf4 100644 --- a/database/migrations/0001_01_01_000000_create_users_table.php +++ b/database/migrations/0001_01_01_000000_create_users_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ @@ -46,8 +45,12 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('users'); - Schema::dropIfExists('password_reset_tokens'); + Schema::disableForeignKeyConstraints(); + Schema::dropIfExists('sessions'); + Schema::dropIfExists('password_reset_tokens'); + Schema::dropIfExists('users'); + + Schema::enableForeignKeyConstraints(); } }; diff --git a/database/seeders/UsersSeeder.php b/database/seeders/UsersSeeder.php index 1463b71..5bb751f 100644 --- a/database/seeders/UsersSeeder.php +++ b/database/seeders/UsersSeeder.php @@ -5,38 +5,124 @@ namespace Modules\Usermanagement\Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Hash; use Modules\Usermanagement\Models\User; -use Modules\Usermanagement\Database\Seeders\RolesSeeder; +use Spatie\Permission\Models\Role; +use Illuminate\Support\Facades\DB; class UsersSeeder extends Seeder { - /** - * Run the database seeds. - */ public function run(): void { - $roleSeeder = new RolesSeeder(); - $rolesData = $roleSeeder->data(); + $branchLuar = [ + 24, + 25, + 29, + 35, + 37, + 41, + 42, + 45, + 46, + 50, + 71, + 74, + 77, + 82, + 84, + 85, + 88, + 90, + 91, + 93, + 97, + 107, + 108, + 111, + 112, + 113, + 114, + 115 + ]; - foreach ($rolesData as $roleData) { - if ($roleData['name'] === 'administrator') { - $user = User::firstOrCreate( - ['email' => $roleData['name'] . '@ag.co.id'], - [ - 'name' => $roleData['name'], - 'password' => Hash::make('bagbag'), - 'branch_id' => 1, - 'nik' => '000000', - 'email_verified_at' => now(), - ] - ); + $branchDalam = [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 14, + 15, + 17, + 18, + 22, + 23, + 53, + 55, + 58, + 60, + 61, + 66, + 70, + 95, + 96, + 98, + 100, + 105 + ]; - $role = \Spatie\Permission\Models\Role::firstOrCreate( - ['name' => $roleData['name']], - ['guard_name' => 'web'] - ); + $kpno = 6; - $user->assignRole($role); - } + $createUser = function ($roleName, $branchId) { + $user = User::firstOrCreate( + ['email' => $roleName . $branchId . '@ag.co.id'], + [ + 'name' => ucfirst($roleName) . ' ' . $branchId, + 'password' => Hash::make('bagbag'), + 'branch_id' => $branchId, + 'nik' => rand(100000, 999999), + 'email_verified_at' => now(), + ] + ); + + $role = Role::firstOrCreate(['name' => $roleName], ['guard_name' => 'web']); + $user->assignRole($role); + }; + + + foreach ($branchLuar as $branchId) { + $createUser('legal', $branchId); } + $createUser('legal', $kpno); + + + $createUser('spvlegal', $kpno); + + + foreach (array_merge($branchLuar, $branchDalam) as $branchId) { + $createUser('cabang', $branchId); + } + + + foreach ($branchLuar as $branchId) { + $createUser('admindokumen', $branchId); + } + $createUser('admindokumen', $kpno); + + + $createUser('adminkredit', $kpno); + + + foreach ($branchLuar as $branchId) { + $createUser('auditor', $branchId); + } + $createUser('auditor', $kpno); + + + $createUser('soadmindokumen', $kpno); } }