diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index c1bb9ab..bef40b5 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -11,34 +11,22 @@ class DatabaseSeeder extends Seeder public function run(): void { - $this->call([ - RolePermissionSeeder::class, - UserSeeder::class, - SystemConfigurationSeeder::class, - // CategorySeeder::class, - // ProductSeeder::class, - // ProductVariantSeeder::class, - // RawMaterialSeeder::class, - // RawMaterialPriceSeeder::class, - // SupplierSeeder::class, - // CustomerSeeder::class, - CashAccountSeeder::class, - // CashTransactionSeeder::class, - // ExpenseSeeder::class, - // PayrollPeriodSeeder::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, - ]); + if (app()->isLocal()) { + $this->call([ + RolePermissionSeeder::class, + UserSeeder::class, + EmployeeSeeder::class, + SystemConfigurationSeeder::class, + CategorySeeder::class, + ]); + } + + if (app()->isProduction()) { + $this->call([ + RolePermissionSeeder::class, + UserSeeder::class, + SystemConfigurationSeeder::class, + ]); + } } } diff --git a/database/seeders/EmployeeSeeder.php b/database/seeders/EmployeeSeeder.php new file mode 100644 index 0000000..e1a67f4 --- /dev/null +++ b/database/seeders/EmployeeSeeder.php @@ -0,0 +1,87 @@ +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]); + } + }); + } +}