data(); /** * ================================================== * STEP 0: Pastikan semua roles dari RolesSeeder sudah dibuat di tabel roles * ================================================== */ foreach ($rolesData as $roleData) { Role::firstOrCreate( ['name' => $roleData['name']], ['guard_name' => 'web'] ); } /** * ================================================== * Helper function untuk membuat user * ================================================== */ $createUser = function ($roleName, $branchId = null, $includeBranchInEmail = true, $includeBranchInName = true) { $email = $roleName . ($includeBranchInEmail && $branchId ? $branchId : '') . '@ag.co.id'; $name = ucfirst($roleName); if ($includeBranchInName && $branchId) { $name .= ' ' . $branchId; } $user = User::firstOrCreate( ['email' => $email], [ 'name' => $name, 'password' => Hash::make('bagbag'), 'branch_id' => $branchId, 'nik' => rand(100000, 999999), 'email_verified_at' => now(), ] ); $role = Role::where('name', $roleName)->first(); if ($role) { $user->assignRole($role); } }; /** * ================================================== * STEP 1: Buat user per role (branch_id = 1) * ================================================== * - Tanpa angka "1" di email * - Tanpa angka "1" di nama */ foreach ($rolesData as $roleData) { $roleName = $roleData['name']; $createUser($roleName, 1, false, false); // tanpa 1 di email & nama } /** * ================================================== * STEP 2: Jalankan logic lama (user per cabang) * ================================================== */ $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 ]; $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 ]; $kpno = 6; // LEGAL foreach ($branchLuar as $branchId) { $createUser('legal', $branchId); } $createUser('legal', $kpno); // SPV LEGAL $createUser('spvlegal', $kpno); // USER CABANG foreach (array_merge($branchLuar, $branchDalam) as $branchId) { $createUser('cabang', $branchId); } // ADMIN DOKUMEN foreach ($branchLuar as $branchId) { $createUser('admindokumen', $branchId); } $createUser('admindokumen', $kpno); // ADMIN KREDIT $createUser('adminkredit', $kpno); // AUDITOR foreach ($branchLuar as $branchId) { $createUser('auditor', $branchId); } $createUser('auditor', $kpno); /** * ================================================== * NEW STEP: BRANCHDIRECTOR UNTUK SEMUA BRANCH * ================================================== */ foreach (array_merge($branchLuar, $branchDalam) as $branchId) { $createUser('branchdirector', $branchId); } $createUser('branchdirector', $kpno); /** * ================================================== * NEW STEP: SO ADMIN DOKUMEN UNTUK SEMUA BRANCH * ================================================== */ foreach (array_merge($branchLuar, $branchDalam) as $branchId) { $createUser('soadmindokumen', $branchId); } // tetap buat juga untuk KPNO $createUser('soadmindokumen', $kpno); } }