addArgument('tenant', InputArgument::REQUIRED, 'Tenant identifier') ->addArgument('name', InputArgument::REQUIRED, 'Logical store name, such as previews') ->addArgument('provider', InputArgument::REQUIRED, 'System-store provider identifier') ->addArgument('service', InputArgument::REQUIRED, 'System-store service identifier') ->addArgument('namespace', InputArgument::REQUIRED, 'Provider key namespace'); } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); $tenant = (string) $input->getArgument('tenant'); $name = (string) $input->getArgument('name'); $provider = (string) $input->getArgument('provider'); $service = (string) $input->getArgument('service'); $namespace = (string) $input->getArgument('namespace'); try { $this->stores->set($tenant, $name, $provider, $service, $namespace); $this->logger->info('Tenant logical store configured via console', compact( 'tenant', 'name', 'provider', 'service', 'namespace', )); $io->success("Logical store '{$name}' configured for tenant '{$tenant}'."); return Command::SUCCESS; } catch (\Throwable $error) { $this->logger->error('Tenant logical store configuration failed', [ 'tenant' => $tenant, 'name' => $name, 'error' => $error->getMessage(), ]); $io->error('Failed to configure tenant store: ' . $error->getMessage()); return Command::FAILURE; } } }