feat: Enhance UserSeeder to add roles and create users for leader, admin per outlet, and partner with associated referral codes.
This commit is contained in:
parent
cd3dcce052
commit
0bdbd080ab
@ -76,5 +76,89 @@ public function run(): void
|
||||
|
||||
$owner->assignRole(UserRole::Owner);
|
||||
$owner->outlets()->attach($outlet_ids);
|
||||
|
||||
// leader
|
||||
$leader = User::create([
|
||||
'email' => 'leader@gmail.com',
|
||||
'username' => 'leader',
|
||||
'password' => Hash::make(config('myconfig.password_default')),
|
||||
'status' => UserStatus::ACTIVE,
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
|
||||
Employee::create([
|
||||
'user_id' => $leader->id,
|
||||
'code' => '0003',
|
||||
'full_name' => 'Leader User',
|
||||
'phone_number' => '082121495801',
|
||||
'gender' => Gender::MALE,
|
||||
'address' => 'Leader Address',
|
||||
'birthdate' => '2000-01-01',
|
||||
'hire_date' => now(),
|
||||
'status' => EmploymentStatus::PERMANENT,
|
||||
]);
|
||||
|
||||
ReferralCode::create([
|
||||
'user_id' => $leader->id,
|
||||
'code' => generateReferralCode('leader', 3),
|
||||
]);
|
||||
|
||||
$leader->assignRole(UserRole::Leader);
|
||||
$leader->outlets()->attach($outlet_ids);
|
||||
|
||||
// admin per outlet
|
||||
$outlets = Outlet::all();
|
||||
$userCounter = 4;
|
||||
foreach ($outlets as $outlet) {
|
||||
$adminUsername = 'admin_'.preg_replace('/[^a-zA-Z0-9]/', '', strtolower($outlet->name));
|
||||
$adminEmail = $adminUsername.'@gmail.com';
|
||||
|
||||
$admin = User::create([
|
||||
'email' => $adminEmail,
|
||||
'username' => $adminUsername,
|
||||
'password' => Hash::make(config('myconfig.password_default')),
|
||||
'status' => UserStatus::ACTIVE,
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
|
||||
Employee::create([
|
||||
'user_id' => $admin->id,
|
||||
'code' => str_pad($userCounter, 4, '0', STR_PAD_LEFT),
|
||||
'full_name' => 'Admin '.$outlet->name,
|
||||
'phone_number' => '0821214958'.str_pad($userCounter, 2, '0', STR_PAD_LEFT),
|
||||
'gender' => Gender::MALE,
|
||||
'address' => 'Admin Address',
|
||||
'birthdate' => '2000-01-01',
|
||||
'hire_date' => now(),
|
||||
'status' => EmploymentStatus::PERMANENT,
|
||||
]);
|
||||
|
||||
ReferralCode::create([
|
||||
'user_id' => $admin->id,
|
||||
'code' => generateReferralCode($adminUsername, $userCounter),
|
||||
]);
|
||||
|
||||
$admin->assignRole(UserRole::Admin);
|
||||
$admin->outlets()->attach($outlet->id);
|
||||
|
||||
$userCounter++;
|
||||
}
|
||||
|
||||
// partner
|
||||
$partner = User::create([
|
||||
'email' => 'partner@gmail.com',
|
||||
'username' => 'partner',
|
||||
'password' => Hash::make(config('myconfig.password_default')),
|
||||
'status' => UserStatus::ACTIVE,
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
|
||||
ReferralCode::create([
|
||||
'user_id' => $partner->id,
|
||||
'code' => generateReferralCode('partner', $userCounter),
|
||||
]);
|
||||
|
||||
$partner->assignRole(UserRole::Partner);
|
||||
$partner->outlets()->attach($outlet_ids);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user