A trilha de auditoria não gravava porque o Eloquent preenchia uma coluna que a tabela não tem

[!NOTE] Resumo Executivo (DEV-2026-107): O model AuditLog existia, mas gravar por ele falhava, porque o Eloquent tentava preencher updated_at. Só o primeiro teste que dependia de um registro de auditoria expôs o defeito.


🚨 O Desafio Técnico / Contexto

A tabela audit_logs só tem created_at, e faz sentido, porque a trilha não muda depois de gravada. O model mantinha o comportamento padrão do Eloquent e preenchia updated_at em todo insert.


💡 Principais Lições Aprendidas & Descobertas

  • 💡 UPDATED_AT = null no model desliga só essa coluna e mantém o created_at.
  • 💡 A existência do model não prova que o recurso funciona. A prova é um teste que grava e lê o registro.
  • 💡 Esse defeito só apareceu quando a tela de perfis passou a gravar na trilha. Hoje ela é a única a usar AuditLog::create, então os outros eventos sensíveis ainda não têm registro por esse caminho.

🛠️ Especificação Técnica & Código-Chave

class AuditLog extends Model
{
    // A trilha não muda depois de gravada: a tabela só tem created_at
    public const UPDATED_AT = null;
}

📈 Impacto no Ecossistema & Valor Prático

A configuração de perfis passou a ficar registrada na trilha, e ficou claro o quanto ainda falta cobrir.

  • Projetos Relacionados: omnichannel-system
  • Registro de Origem: _data/daily.dev-17.yml

Publicado originalmente como parte do Diário de Desenvolvimento 2026 do ecossistema Artes do Sul & Araguaci.