writeln('Nenhum módulo encontrado em modules/.');
return Command::SUCCESS;
}
$output->writeln('Módulos do Sistema:');
$table = new Table($output);
$table->setHeaders(['Nome', 'Versão', 'Ativo', 'Pronto', 'DB', 'Descrição']);
// Get registered modules from DB using correct column name
$dbModules = [];
if (Capsule::schema()->hasTable('modules')) {
$dbModules = Capsule::table('modules')->pluck('modules_name')->toArray();
}
foreach ($dirs as $dir) {
$name = basename($dir);
$jsonFile = $dir . '/module.json';
$version = 'N/A';
$active = 'Não';
$ready = 'Não';
$dbStatus = in_array($name, $dbModules) ? 'Sim' : 'Não';
$description = 'Sem descrição';
if (file_exists($jsonFile)) {
$config = json_decode(file_get_contents($jsonFile), true);
if ($config) {
$version = $config['version'] ?? '1.0.0';
// Check both module_active and module_ative, default to true if missing
$isActive = $config['module_active'] ?? $config['module_ative'] ?? true;
$active = $isActive ? 'Sim' : 'Não';
$isReady = $config['ready'] ?? true;
$ready = $isReady ? 'Sim' : 'Não';
$description = $config['description'] ?? 'Sem descrição';
}
}
$table->addRow([
$name,
$version,
$active,
$ready,
$dbStatus,
substr($description, 0, 40) . (strlen($description) > 40 ? '...' : '')
]);
}
$table->render();
$output->writeln("Total de módulos: " . count($dirs) . "");
return Command::SUCCESS;
} catch (\Exception $e) {
$output->writeln('Erro ao listar módulos: ' . $e->getMessage() . '');
return Command::FAILURE;
}
}
}