Sistema
Estado, saúde e ações seguras da aplicação em um só lugar.
Métricas de operação
Visão consolidada do monitor e das notificações.
Jobs locais
Históricos locais
A outbox é a fonte principal nova. Os arquivos abaixo são legados ou especializados.
notification_events.jsonLegado presentelast_notifications.jsonAusenteweekly_summaries.jsonAusentelast_whatsapp_test.jsonAusenteOrigem das configurações editáveis
Overrides da interface têm prioridade sobre ambiente e .env. Credenciais não participam deste arquivo.
Overrides: /app/data/ui_settings.json
| Configuração | Origem efetiva |
|---|---|
ADULTS | ambiente |
ALERT_MIN_REDUCTION_BRL | override UI |
ALERT_ON_ANY_REDUCTION | override UI |
ALERT_ON_EVERY_CHECK | override UI |
ALERT_ON_HISTORICAL_LOW | override UI |
ALERT_ON_TARGET_REACHED | override UI |
CHECKED_BAGS | ambiente |
CURRENCY | ambiente |
DEPARTURE_DATE | ambiente |
DEPARTURE_DATE_FROM | padrao |
DEPARTURE_DATE_TO | padrao |
DESTINATION_AIRPORTS | ambiente |
FLEXIBLE_DATES_ENABLED | ambiente |
MAX_DATE_COMBINATIONS | ambiente |
ORIGIN_AIRPORT | ambiente |
PROVIDER | ambiente |
RETURN_DATE | padrao |
RETURN_DATE_FROM | padrao |
RETURN_DATE_TO | padrao |
SCHEDULE_TIMES | ambiente |
TARGET_PRICE_BRL | override UI |
TARGET_PRICE_MODE | override UI |
TRAVEL_CLASS | ambiente |
TRIP_TYPE | ambiente |
WEEKLY_SUMMARY_DAY | override UI |
WEEKLY_SUMMARY_ENABLED | override UI |
WEEKLY_SUMMARY_TIME | override UI |
Saúde do sistema
Verificações locais, sem chamadas externas.
Configuração WhatsApp
Valores efetivos no runtime, com credenciais protegidas.
Arquivo .env: /app/.env · não encontrado
Ações rápidas
Atalhos seguros para as operações do dia a dia.
Última execução do monitor
24/06/2026 09:01
Sucesso · Consulta concluida com sucesso.
Ambiente de produção
Reinícios são controlados pelo Railway.
Use o painel do Railway para redeploy ou restart. Comandos locais e ações de encerramento não ficam disponíveis neste ambiente.
Runtime
Processo que está servindo esta página.
- Inicialização
- 22/06/2026 02:34
- PID
- 2
- Python
- /mise/installs/python/3.13.13/bin/python3.13 · 3.13.13
- Projeto
- /app
- .env carregado
- Não
- Caminho do .env
- /app/.env
- SerpAPI configurada
- Sim
Logs recentes
Últimas 100 linhas de logs/app.log.
2026-06-22 02:34:47,267 | INFO | flight-monitor.runtime | Runtime Flask: executable=/mise/installs/python/3.13.13/bin/python3.13 prefix=/app/.venv base_prefix=/mise/installs/python/3.13.13 venv_ativo=True.2026-06-22 02:34:47,267 | INFO | flight-monitor.runtime | WhatsApp runtime: env=/app/.env enabled=True dry_run=False sandbox=True provider=twilio conta=ACf2**************************6eae token=presente from=+1415*****8886 fontes={'WHATSAPP_ENABLED': 'processo', 'WHATSAPP_PROVIDER': 'processo', 'WHATSAPP_DRY_RUN': 'processo', 'TWILIO_ACCOUNT_SID': 'processo', 'TWILIO_AUTH_TOKEN': 'processo', 'TWILIO_WHATSAPP_FROM': 'processo', 'TWILIO_SANDBOX_MODE': 'processo'}.2026-06-22 02:36:51,757 | INFO | flight-monitor.ui | Tema da interface atualizado: dark.2026-06-22 02:37:05,285 | INFO | flight-monitor.ui | Tema da interface atualizado: light.2026-06-22 02:37:10,565 | INFO | flight-monitor.ui | Tema da interface atualizado: dark.2026-06-22 12:04:19,668 | INFO | flight-monitor | Iniciando consulta: provider solicitado=serpapi provider utilizado=SerpApiProvider.2026-06-22 12:04:19,668 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> GRU; ida=2026-10-24 volta=.2026-06-22 12:04:19,668 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-22 12:04:21,295 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-22 12:04:21,295 | INFO | flight_monitor.providers.serpapi | Destino GRU: 7 ofertas SerpAPI validas.2026-06-22 12:04:21,295 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> VCP; ida=2026-10-24 volta=.2026-06-22 12:04:21,295 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-22 12:04:29,626 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 4, "route": {"arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-22 12:04:29,626 | INFO | flight_monitor.providers.serpapi | Destino VCP: 6 ofertas SerpAPI validas.2026-06-22 12:04:29,626 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> CGH; ida=2026-10-24 volta=.2026-06-22 12:04:29,626 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-22 12:04:31,490 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 3, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 4, "route": {"arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-22 12:04:31,491 | INFO | flight_monitor.providers.serpapi | Destino CGH: 7 ofertas SerpAPI validas.2026-06-22 12:04:31,491 | INFO | flight_monitor.providers.serpapi | Menor preco SerpAPI por passageiro: 3284.00 BRL para GRU.2026-06-22 12:04:31,496 | INFO | flight-monitor.whatsapp | Inicio envio WhatsApp: destinatarios=2 enabled=True dry_run=False sandbox=True conta=ACf2**************************6eae.2026-06-22 12:04:31,866 | INFO | flight-monitor.whatsapp | WhatsApp enviado: evento=grouped_alert telefone=+5511*****6594 sid=SM16**************************b51d.2026-06-22 12:04:32,067 | INFO | flight-monitor.whatsapp | WhatsApp enviado: evento=grouped_alert telefone=+5511*****1079 sid=SM7d**************************20a0.2026-06-22 12:04:32,069 | INFO | flight-monitor.notifications | Notificacao agrupada enviada: eventos=[target_reached] destinatarios=2 enviados=2 falhas=0 simulados=0.2026-06-22 12:04:32,072 | INFO | flight-monitor | Consulta concluida; menor preco por passageiro: 3284.00 BRL para GRU; alertas=['target_reached'].2026-06-22 12:10:54,212 | INFO | flight-monitor.ui | Tema da interface atualizado: light.2026-06-22 12:10:58,607 | INFO | flight-monitor.ui | Tema da interface atualizado: dark.2026-06-23 00:01:37,857 | INFO | flight-monitor | Iniciando consulta: provider solicitado=serpapi provider utilizado=SerpApiProvider.2026-06-23 00:01:37,857 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> GRU; ida=2026-10-24 volta=.2026-06-23 00:01:37,857 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 00:01:41,042 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 00:01:41,042 | INFO | flight_monitor.providers.serpapi | Destino GRU: 7 ofertas SerpAPI validas.2026-06-23 00:01:41,042 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> VCP; ida=2026-10-24 volta=.2026-06-23 00:01:41,042 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 00:01:43,905 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 4, "route": {"arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 00:01:43,905 | INFO | flight_monitor.providers.serpapi | Destino VCP: 6 ofertas SerpAPI validas.2026-06-23 00:01:43,905 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> CGH; ida=2026-10-24 volta=.2026-06-23 00:01:43,905 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 00:01:45,685 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 1, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 00:01:45,686 | INFO | flight_monitor.providers.serpapi | Destino CGH: 6 ofertas SerpAPI validas.2026-06-23 00:01:45,686 | INFO | flight_monitor.providers.serpapi | Menor preco SerpAPI por passageiro: 3279.50 BRL para GRU.2026-06-23 00:01:45,687 | INFO | flight-monitor | Consulta concluida; menor preco por passageiro: 3279.50 BRL para GRU; alertas=[].2026-06-23 00:17:19,653 | INFO | flight-monitor.ui | Tema da interface atualizado: light.2026-06-23 00:17:58,847 | INFO | flight-monitor.ui | Tema da interface atualizado: dark.2026-06-23 00:19:06,430 | INFO | flight-monitor.ui | Tema da interface atualizado: light.2026-06-23 00:19:09,226 | INFO | flight-monitor.ui | Tema da interface atualizado: dark.2026-06-23 12:02:19,011 | INFO | flight-monitor | Iniciando consulta: provider solicitado=serpapi provider utilizado=SerpApiProvider.2026-06-23 12:02:19,011 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> GRU; ida=2026-10-24 volta=.2026-06-23 12:02:19,011 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 12:02:23,061 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 4, "route": {"arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 12:02:23,062 | INFO | flight_monitor.providers.serpapi | Destino GRU: 6 ofertas SerpAPI validas.2026-06-23 12:02:23,062 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> VCP; ida=2026-10-24 volta=.2026-06-23 12:02:23,062 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 12:02:26,249 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 1, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 12:02:26,250 | INFO | flight_monitor.providers.serpapi | Destino VCP: 6 ofertas SerpAPI validas.2026-06-23 12:02:26,250 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> CGH; ida=2026-10-24 volta=.2026-06-23 12:02:26,250 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-23 12:02:28,137 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 3, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 6, "route": {"arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-23 12:02:28,138 | INFO | flight_monitor.providers.serpapi | Destino CGH: 9 ofertas SerpAPI validas.2026-06-23 12:02:28,138 | INFO | flight_monitor.providers.serpapi | Menor preco SerpAPI por passageiro: 3262.00 BRL para GRU.2026-06-23 12:02:28,142 | INFO | flight-monitor | Consulta concluida; menor preco por passageiro: 3262.00 BRL para GRU; alertas=[].2026-06-24 00:02:24,702 | INFO | flight-monitor | Iniciando consulta: provider solicitado=serpapi provider utilizado=SerpApiProvider.2026-06-24 00:02:24,702 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> GRU; ida=2026-10-24 volta=.2026-06-24 00:02:24,702 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 00:02:26,140 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 2, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 00:02:26,140 | INFO | flight_monitor.providers.serpapi | Destino GRU: 7 ofertas SerpAPI validas.2026-06-24 00:02:26,140 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> VCP; ida=2026-10-24 volta=.2026-06-24 00:02:26,140 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 00:02:27,417 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 4, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 4, "route": {"arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 00:02:27,417 | INFO | flight_monitor.providers.serpapi | Destino VCP: 8 ofertas SerpAPI validas.2026-06-24 00:02:27,417 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> CGH; ida=2026-10-24 volta=.2026-06-24 00:02:27,417 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 00:02:29,210 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 3, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 6, "route": {"arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 00:02:29,211 | INFO | flight_monitor.providers.serpapi | Destino CGH: 9 ofertas SerpAPI validas.2026-06-24 00:02:29,211 | INFO | flight_monitor.providers.serpapi | Menor preco SerpAPI por passageiro: 3293.50 BRL para GRU.2026-06-24 00:02:29,213 | INFO | flight-monitor | Consulta concluida; menor preco por passageiro: 3293.50 BRL para GRU; alertas=[].2026-06-24 12:01:52,980 | INFO | flight-monitor | Iniciando consulta: provider solicitado=serpapi provider utilizado=SerpApiProvider.2026-06-24 12:01:52,980 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> GRU; ida=2026-10-24 volta=.2026-06-24 12:01:52,980 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 12:01:59,600 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 3, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 5, "route": {"arrival_id": "GRU", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 12:01:59,600 | INFO | flight_monitor.providers.serpapi | Destino GRU: 8 ofertas SerpAPI validas.2026-06-24 12:01:59,600 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> VCP; ida=2026-10-24 volta=.2026-06-24 12:01:59,600 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 12:02:00,950 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 1, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 6, "route": {"arrival_id": "VCP", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 12:02:00,950 | INFO | flight_monitor.providers.serpapi | Destino VCP: 7 ofertas SerpAPI validas.2026-06-24 12:02:00,950 | INFO | flight_monitor.providers.serpapi | Pesquisando SerpAPI: MXP -> CGH; ida=2026-10-24 volta=.2026-06-24 12:02:00,950 | INFO | flight_monitor.providers.serpapi | Requisicao SerpAPI: base_url=https://serpapi.com/search chave=61ee********************************************************5168 parametros={"adults": 2, "arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "engine": "google_flights", "gl": "br", "hl": "pt-br", "outbound_date": "2026-10-24", "travel_class": 1, "type": 2}2026-06-24 12:02:08,294 | INFO | flight_monitor.providers.serpapi | Resposta SerpAPI: status_http=200 corpo_resumido={"best_flights_count": 4, "error": "", "keys": ["search_metadata", "search_parameters", "best_flights", "other_flights", "price_insights", "airports"], "other_flights_count": 6, "route": {"arrival_id": "CGH", "currency": "BRL", "departure_id": "MXP", "outbound_date": "2026-10-24"}, "search_status": "Success"}2026-06-24 12:02:08,294 | INFO | flight_monitor.providers.serpapi | Destino CGH: 10 ofertas SerpAPI validas.2026-06-24 12:02:08,294 | INFO | flight_monitor.providers.serpapi | Menor preco SerpAPI por passageiro: 3270.00 BRL para GRU.2026-06-24 12:02:08,295 | INFO | flight-monitor | Consulta concluida; menor preco por passageiro: 3270.00 BRL para GRU; alertas=[].