# app/controllers/concerns/auditavel.rb
#
# Concern para registrar ações críticas na AuditoriaLog.
# Uso no controller:
#   include Auditavel
#   auditar!(:criar, @consolidacao, dados_novos: @consolidacao.attributes)
#
module Auditavel
  extend ActiveSupport::Concern

  def auditar!(acao, registro, dados_anteriores: {}, dados_novos: {})
    AuditoriaLog.registrar(
      user:             current_user,
      acao:             acao,
      entidade:         registro.class.name,
      entidade_id:      registro.id,
      dados_anteriores: dados_anteriores,
      dados_novos:      dados_novos,
      request:          request
    )
  end
end
