$moduleName, 'modules_display_name' => 'Fluxo de Caixa Pró', 'modules_description' => 'Módulo avançado de gestão de fluxo de caixa com previsões inteligentes.', 'modules_version' => '1.0.0', 'modules_author' => 'SysCMS Team', 'modules_ative' => 1, 'modules_public' => 1, 'modules_blocked' => 0, 'modules_dependencies' => json_encode(['auth']), 'modules_permissions' => json_encode([ "fluxocaixapro.view", "fluxocaixapro.manage" ]), 'modules_settings' => json_encode([ "menu" => [ "dashboard" => [ "icon" => "bi bi-cash-stack", "label" => "Fluxo de Caixa Pró", "route" => "admin/fluxo-caixa", "order" => 70, "permission" => "fluxocaixapro.view" ] ] ]), 'modules_path' => 'modules/fluxocaixapro', 'modules_namespace' => 'Modules\\FluxoCaixaPro', 'modules_icon' => 'bi bi-cash-stack', 'menu_side_bar' => 1, 'menu_nav_bar' => 0, 'modules_order' => 70, 'modules_install_date' => date('Y-m-d H:i:s'), 'modules_update_date' => date('Y-m-d H:i:s') ]; $existingModule = Capsule::table('modules')->where('modules_name', $moduleName)->first(); if (!$existingModule) { $moduleId = Capsule::table('modules')->insertGetId($moduleData); // Associar a todas as empresas existentes if (Capsule::schema()->hasTable('bus')) { $companies = Capsule::table('bus')->get(); foreach ($companies as $company) { Capsule::table('bus_modules')->insert([ 'bus_modules_bus_id' => $company->bus_id, 'bus_modules_module_id' => $moduleId, 'bus_modules_is_enabled' => 1, 'bus_modules_show_public_nav' => 0, 'bus_modules_show_dashboard_nav' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s') ]); } } } } public function down() { $module = Capsule::table('modules')->where('modules_name', 'fluxocaixapro')->first(); if ($module) { Capsule::table('bus_modules')->where('bus_modules_module_id', $module->modules_id)->delete(); Capsule::table('modules')->where('modules_id', $module->modules_id)->delete(); } } }