getClientes()->each(function($cliente) { try { DB::beginTransaction(); Config::set('database.default', $cliente); Fila::where('finalizado', false) ->where('evadido', false) ->whereIn('opcao_entrada_id', $this->getOpcoesEntrada()) ->update([ 'finalizado' => true, 'evadido' => true, ]); Log::channel('painel-senha-fila-atendimento')->info('Comando executado com sucesso.', [ 'cliente' => $cliente, 'origem' => 'LimparFilaAtendimentoCommand', ]); } catch (Exception $error) { DB::rollBack(); Log::channel('painel-senha-fila-atendimento')->error('Erro ao executar o comando', [ 'cliente' => $cliente, 'origem' => 'LimparFilaAtendimentoCommand', 'erro' => $error->getMessage(), ]); if (env('APP_ENV') === 'production') { TelegramService::send('Farmácia (' . ($cliente) . '): (Erro ao executar o comando: LimparFilaAtendimentoCommand).'); } return; } }); Config::set('database.default', $currentDatabase); } catch (Exception $error) { Log::channel('painel-senha-fila-atendimento')->error('Erro ao executar o comando', [ 'origem' => 'LimparFilaAtendimentoCommand', 'erro' => $error->getMessage(), ]); if (env('APP_ENV') === 'production') { TelegramService::send('Painel de senha: (Erro ao executar o comando: LimparFilaAtendimentoCommand).'); } } } private function getClientes() { return collect(json_decode(file_get_contents(base_path('connections.json')), true)) ->filter(fn ($config) => isset($config['database']) && Str::startsWith($config['database'], 'conectasus')) ->reject(fn ($config) => empty(DB::connection('schema')->select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?", [$config['database']]))) ->map(fn ($config, $customer) => $customer) ->sort() ->values(); } private function getOpcoesEntrada() { return OpcaoEntrada::where('modulo_id', ModuloService::getId(Modulo::PAINEL_SENHA)) ->pluck('id'); } }