addArgument('email', InputArgument::OPTIONAL, 'User email');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$helper = $this->getHelper('question');
// Email
$email = $input->getArgument('email');
if (!$email) {
$question = new Question('Email do usuário: ');
$email = $helper->ask($input, $output, $question);
}
if (User::where('users_email', $email)->exists()) {
$output->writeln("Já existe um usuário com o email {$email}");
return Command::FAILURE;
}
// Name
$question = new Question('Nome do usuário: ');
$name = $helper->ask($input, $output, $question);
// Password
$question = new Question('Senha: ');
$question->setHidden(true);
$question->setHiddenFallback(false);
$password = $helper->ask($input, $output, $question);
// Role
$question = new Question('Role (padrão: user): ', 'user');
$role = $helper->ask($input, $output, $question);
// Bus ID
$question = new Question('ID Bus (opcional): ');
$busId = $helper->ask($input, $output, $question);
try {
$user = new User();
$user->users_name = $name;
$user->users_email = $email;
$user->users_password = password_hash($password, PASSWORD_DEFAULT);
$user->users_role = $role;
$user->users_bus_id = $busId;
$user->users_status = 'active';
$user->save();
$output->writeln('Usuário criado com sucesso!');
$output->writeln("ID: {$user->users_id}");
$output->writeln("Nome: {$user->users_name}");
$output->writeln("Email: {$user->users_email}");
$output->writeln("Role: {$user->users_role}");
$output->writeln("ID Bus: " . ($user->users_bus_id ?? '-'));
return Command::SUCCESS;
} catch (\Exception $e) {
$output->writeln("Erro ao criar usuário: " . $e->getMessage() . "");
return Command::FAILURE;
}
}
}