Controllers e Endpoints
A arquitetura HTTP do sistema é dividida entre endpoints de integração (APIs), endpoints de consumo interno (Busca) e painéis administrativos (Logs).
Motor de Busca Híbrida
Arquivo: SearchController.php
É o endpoint principal de consulta do front-end. Ele orquestra a inteligência artificial local com o Meilisearch utilizando a seguinte lógica:
* Geração de Vetor (Embeddings): Antes de consultar o banco, o sistema envia o termo de busca para a API local do Ollama utilizando o modelo mxbai-embed-large:latest.
* Mecanismo Anti-Falha: A requisição para a IA possui um timeout estrito de 2 segundos. Se o Ollama demorar a responder ou o túnel cair, o sistema absorve a exceção e define o vetor como nulo, garantindo que a tela do usuário não trave.
* Busca Híbrida Dinâmica: A consulta via Laravel Scout (WakeProduct::search) só ativa as opções de busca híbrida (semanticRatio: 0.6) e injeta o embedder caso a IA tenha retornado um vetor de busca válido. Os resultados são retornados em JSON com paginação de 20 itens.
Webhooks e Integração (Wake/n8n)
Arquivo: WakeWebhookController.php
Responsável por receber os payloads disparados pela Wake ou roteados pelo n8n.
* Auditoria Primária: Antes de aplicar qualquer regra, o payload completo é salvo na tabela utilizando o model WebhookLog para histórico e depuração.
* Validação: Exige obrigatoriamente a presença da chave id.
* Enfileiramento: Para não prender a requisição HTTP, delega a carga pesada para o job ProcessWakeProductUpdate, despachando-o para a fila default na conexão redis. Retorna imediatamente um status HTTP 200.
Sistema de Logs e Telemetria
A gravação e exibição do histórico de buscas é separada em dois controllers distintos para dividir a carga entre API pública e painel administrativo.
1. Gravação de Logs (API)
Arquivo: BuscaLogController.php
- Função: Recebe telemetria do front-end sempre que uma busca é executada.
- Execução: Valida os campos obrigatórios (
termo,motivo) e insere os dados diretamente na tabelalogs_buscautilizando a facadeDB::table, otimizando a performance de escrita.
2. Painel Administrativo de Logs (Web)
Arquivo: LogBuscaController.php
- Função: Gera a visualização agregada (
logs-busca) para os administradores do sistema. - Lógica SQL: Utiliza agrupamento (
groupBy) para consolidar termos repetidos, somando ototal_buscase identificando o momento daultima_busca. - Filtros e Ordenação: Possui travas de segurança dinâmicas verificando um array de colunas permitidas antes de aplicar os parâmetros
sort_byesort_dirda URL, evitando injeção de SQL.