table('roles'); $adminRole = $roleBuilder->where('name', 'admin')->get()->getRowArray(); if (!$adminRole) { $roleData = [ 'name' => 'admin', ]; $roleBuilder->insert($roleData); $adminRoleId = $db->insertID(); echo "✓ Role 'admin' created successfully (ID: {$adminRoleId})\n"; } else { $adminRoleId = $adminRole['id']; echo "✓ Role 'admin' already exists (ID: {$adminRoleId})\n"; } // Step 2: Check and create editor role if not exists (optional, but good practice) $editorRole = $roleBuilder->where('name', 'editor')->get()->getRowArray(); if (!$editorRole) { $roleData = [ 'name' => 'editor', ]; $roleBuilder->insert($roleData); echo "✓ Role 'editor' created successfully\n"; } else { echo "✓ Role 'editor' already exists\n"; } // Step 3: Check if admin user already exists $userBuilder = $db->table('users'); $adminUser = $userBuilder->where('username', 'admin')->get()->getRowArray(); if (!$adminUser) { // Create admin user $userData = [ 'role_id' => $adminRoleId, 'username' => 'admin', 'email' => 'admin@bapenda.local', 'phone_number' => '081234567890', 'password_hash' => password_hash('Admin@123', PASSWORD_DEFAULT), 'telegram_id' => null, 'is_active' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; $userBuilder->insert($userData); $userId = $db->insertID(); echo "✓ Admin user created successfully (ID: {$userId})\n"; echo " Username: admin\n"; echo " Email: admin@bapenda.local\n"; echo " Password: Admin@123\n"; } else { // Update password to ensure it's correct (idempotent) $passwordHash = password_hash('Admin@123', PASSWORD_DEFAULT); $userBuilder->where('id', $adminUser['id'])->update([ 'password_hash' => $passwordHash, 'role_id' => $adminRoleId, 'is_active' => 1, 'updated_at' => date('Y-m-d H:i:s'), ]); echo "✓ Admin user already exists (ID: {$adminUser['id']})\n"; echo " Username: {$adminUser['username']}\n"; echo " Email: {$adminUser['email']}\n"; echo " Password: Admin@123 (updated)\n"; } echo "\nAdminSeeder completed successfully!\n"; } }