Rotas e Agendamentos (Routes & Console)
A camada de roteamento define os pontos de entrada da aplicação, separando estritamente o tráfego de interface web, integrações assíncronas via API e tarefas agendadas em segundo plano (CRON).
1. Endpoints de API (api.php)
Ficheiro: routes/api.php
Responsável por gerir a comunicação com sistemas externos (n8n/Wake) e receber telemetria do front-end. Não utiliza a proteção CSRF padrão das rotas web.
* POST /n8n/wake-sync: Endpoint que recebe os webhooks da Wake, roteados através do n8n. Está mapeado para o método sync do WakeWebhookController, servindo como a porta de entrada para as atualizações de catálogo em tempo real.
* POST /logs-busca: Endpoint consumido pelo script navegador.js para gravar dados comportamentais (pesquisas com zero resultados ou falta de clique), mapeado para o BuscaLogController@store.
2. Rotas Web Administrativas (web.php)
Ficheiro: routes/web.php
Disponibiliza as interfaces visuais e as ferramentas de diagnóstico rápido para a gestão do motor de busca.
* GET /analise-buscas: Renderiza o painel administrativo de telemetria, utilizando o LogBuscaController@index para consultar e agregar os termos que falharam na pesquisa.
* GET /meili-check: Uma rota de diagnóstico de infraestrutura de alta velocidade. Em vez de carregar toda a arquitetura pesada do Laravel Scout, instancia diretamente o cliente do motor (\Meilisearch\Client) e devolve em JSON o método stats() do índice wake_products. Possui um bloco try-catch para retornar um erro 500 contendo a Exception caso o contentor do Meilisearch no Docker esteja em baixo, facilitando o debug.
3. Agendador de Tarefas (console.php)
Ficheiro: routes/console.php
Centraliza a orquestração de rotinas periódicas geridas pelo agendador (Scheduler) do Laravel.
* Rotina de Importação (wake:import): O comando pesado de sincronização massiva da API (que lida com o WakeImportService) está configurado para executar de forma totalmente autónoma, todos os dias exatamente às 08:10 da manhã (->dailyAt('08:10')).
* Trava de Segurança (Anti-Colapso): O método ->withoutOverlapping() atua como uma barreira de segurança vital. Se, porventura, ocorrer lentidão na API da Wake e o processo de importação do dia anterior ainda estiver a correr quando chegar a marca das 08:10, o Laravel bloqueia a nova execução, evitando assim a concorrência de processos que esgotaria a memória RAM do servidor.