entityManager = $entityManager; } protected function configure(): void { $this ->addArgument('name', InputArgument::REQUIRED, 'The name of the role to delete'); } protected function execute(InputInterface $input, OutputInterface $output): int { $roleName = trim($input->getArgument('name')); $roleName = strtoupper($roleName); // Normalize to uppercase if ($roleName === '') { $output->writeln('The role name cannot be empty'); return Command::FAILURE; } // Find the role $role = $this->entityManager->getRepository(Roles::class) ->findOneBy(['name' => $roleName]); if (!$role) { $output->writeln("Role '{$roleName}' not found."); return Command::FAILURE; } // Check if role is being used (optional safety check) $usageCount = $this->entityManager->getRepository(\App\Entity\UserOrganizatonApp::class) ->count(['role' => $role]); if ($usageCount > 0) { $output->writeln("Cannot delete role '{$roleName}' - it is assigned to {$usageCount} user(s)."); $output->writeln('Remove all assignments first, then try again.'); return Command::FAILURE; } // Confirmation prompt $helper = $this->getHelper('question'); $question = new ConfirmationQuestion( "Are you sure you want to delete role '{$roleName}'? [y/N] ", false ); if (!$helper->ask($input, $output, $question)) { $output->writeln('Operation cancelled.'); return Command::SUCCESS; } // Delete the role $this->entityManager->remove($role); $this->entityManager->flush(); $output->writeln("Role '{$roleName}' deleted successfully!"); return Command::SUCCESS; } }