refactor: update DatabaseSeeder to conditionally load seeders based on environment (local vs production)
This commit is contained in:
parent
4afba34a57
commit
ad9ee3a99b
@ -11,34 +11,22 @@ class DatabaseSeeder extends Seeder
|
|||||||
|
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
$this->call([
|
if (app()->isLocal()) {
|
||||||
RolePermissionSeeder::class,
|
$this->call([
|
||||||
UserSeeder::class,
|
RolePermissionSeeder::class,
|
||||||
SystemConfigurationSeeder::class,
|
UserSeeder::class,
|
||||||
// CategorySeeder::class,
|
EmployeeSeeder::class,
|
||||||
// ProductSeeder::class,
|
SystemConfigurationSeeder::class,
|
||||||
// ProductVariantSeeder::class,
|
CategorySeeder::class,
|
||||||
// RawMaterialSeeder::class,
|
]);
|
||||||
// RawMaterialPriceSeeder::class,
|
}
|
||||||
// SupplierSeeder::class,
|
|
||||||
// CustomerSeeder::class,
|
if (app()->isProduction()) {
|
||||||
CashAccountSeeder::class,
|
$this->call([
|
||||||
// CashTransactionSeeder::class,
|
RolePermissionSeeder::class,
|
||||||
// ExpenseSeeder::class,
|
UserSeeder::class,
|
||||||
// PayrollPeriodSeeder::class,
|
SystemConfigurationSeeder::class,
|
||||||
// PayrollSeeder::class,
|
]);
|
||||||
// PayrollAdjustmentSeeder::class,
|
}
|
||||||
// AttendanceSeeder::class,
|
|
||||||
// LeaveRequestSeeder::class,
|
|
||||||
// EmployeeAdvanceSeeder::class,
|
|
||||||
// RejectionSeeder::class,
|
|
||||||
// PurchaseSeeder::class,
|
|
||||||
// PurchaseItemSeeder::class,
|
|
||||||
// OrderSeeder::class,
|
|
||||||
// OrderItemSeeder::class,
|
|
||||||
// CuttingSeeder::class,
|
|
||||||
// CuttingMaterialSeeder::class,
|
|
||||||
// CuttingResultSeeder::class,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
87
database/seeders/EmployeeSeeder.php
Normal file
87
database/seeders/EmployeeSeeder.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use App\Enums\EmploymentStatus;
|
||||||
|
use App\Enums\Gender;
|
||||||
|
use App\Enums\Role;
|
||||||
|
use App\Models\Employee;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\UserProfile;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class EmployeeSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
DB::transaction(function () {
|
||||||
|
$employees = [
|
||||||
|
Role::ADMIN_TOKO->value => [
|
||||||
|
'username' => 'admintoko',
|
||||||
|
'email' => 'admintoko@gmail.com',
|
||||||
|
'full_name' => 'Admin Toko',
|
||||||
|
],
|
||||||
|
Role::ADMIN_BAHAN_BAKU->value => [
|
||||||
|
'username' => 'adminbahanbaku',
|
||||||
|
'email' => 'adminbahanbaku@gmail.com',
|
||||||
|
'full_name' => 'Admin Bahan Baku',
|
||||||
|
],
|
||||||
|
Role::DIREKTUR->value => [
|
||||||
|
'username' => 'direktur',
|
||||||
|
'email' => 'direktur@gmail.com',
|
||||||
|
'full_name' => 'Direktur',
|
||||||
|
],
|
||||||
|
Role::MARKETING->value => [
|
||||||
|
'username' => 'marketing',
|
||||||
|
'email' => 'marketing@gmail.com',
|
||||||
|
'full_name' => 'Marketing',
|
||||||
|
],
|
||||||
|
Role::CASHIER->value => [
|
||||||
|
'username' => 'cashier',
|
||||||
|
'email' => 'cashier@gmail.com',
|
||||||
|
'full_name' => 'Cashier',
|
||||||
|
],
|
||||||
|
Role::NON_OPERATOR->value => [
|
||||||
|
'username' => 'nonoperator',
|
||||||
|
'email' => 'nonoperator@gmail.com',
|
||||||
|
'full_name' => 'Non Operator',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($employees as $roleName => $data) {
|
||||||
|
$user = User::firstOrCreate(
|
||||||
|
['email' => $data['email']],
|
||||||
|
[
|
||||||
|
'username' => $data['username'],
|
||||||
|
'password' => Hash::make(config('auth.password_default')),
|
||||||
|
'is_active' => true,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
UserProfile::firstOrCreate(
|
||||||
|
['user_id' => $user->id],
|
||||||
|
[
|
||||||
|
'full_name' => $data['full_name'],
|
||||||
|
'phone_number' => '08'.fake()->numerify('##########'),
|
||||||
|
'gender' => fake()->randomElement(array_column(Gender::cases(), 'value')),
|
||||||
|
'birth_date' => '1995-01-01',
|
||||||
|
'address' => 'Jl. Jenderal Sudirman No. 123',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
Employee::firstOrCreate(
|
||||||
|
['user_id' => $user->id],
|
||||||
|
[
|
||||||
|
'join_date' => now()->format('Y-m-d'),
|
||||||
|
'employment_status' => EmploymentStatus::FULL_TIME->value,
|
||||||
|
'base_salary' => 3000000,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$user->syncRoles([$roleName]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user