addArgument('module', InputArgument::REQUIRED, 'O nome do diretório do módulo'); } protected function execute(InputInterface $input, OutputInterface $output): int { $moduleName = $input->getArgument('module'); $modulePath = dirname(__DIR__, 3) . '/modules/' . $moduleName . '/module.json'; if (!file_exists($modulePath)) { $output->writeln("Módulo '{$moduleName}' não encontrado ou arquivo module.json inexistente."); return Command::FAILURE; } $config = json_decode(file_get_contents($modulePath), true); if ($config === null) { $output->writeln("Erro ao processar o arquivo module.json do módulo '{$moduleName}'."); return Command::FAILURE; } // Verifica se a tabela modules existe if (!Capsule::schema()->hasTable('modules')) { $output->writeln("A tabela 'modules' não existe no banco de dados. Execute as migrations primeiro."); return Command::FAILURE; } // Verifica se o módulo já está registrado usando a coluna correta $existing = Capsule::table('modules')->where('modules_name', $moduleName)->first(); $data = [ 'modules_name' => $moduleName, 'modules_display_name' => $config['display_name'] ?? $moduleName, 'modules_description' => $config['description'] ?? '', 'modules_version' => $config['version'] ?? '1.0.0', 'modules_ative' => $config['module_active'] ?? $config['module_ative'] ?? true, 'updated_at' => date('Y-m-d H:i:s') ]; if ($existing) { Capsule::table('modules')->where('modules_name', $moduleName)->update($data); $output->writeln("Registro do módulo '{$moduleName}' atualizado com sucesso!"); } else { $data['created_at'] = date('Y-m-d H:i:s'); Capsule::table('modules')->insert($data); $output->writeln("Módulo '{$moduleName}' registrado com sucesso na tabela modules!"); } return Command::SUCCESS; } }