Grato pela resposta, contudo, como tratar essas alterações para mostrar nos detalhes e comparar, por exemplo, se o usuário além de editar a placa, editar a filial do carro?

Ex: toda vez que eu usar esta função de update do Nest com Prisma

  update(id: number, data: UpdateCarDto) {
    return this.prisma.cars.update({
      where: { id },
      data,
      include: this._include(),
    });
  }

no corpo da requição eu receberia o id do usuário, id do carro além das alterações feitas, como seria essa comparação das alterações?

"ALTEROU A PLACA DE XYZET5 PARA ZBR3DA E FILIAL DE SÃO PAULO PARA RIO DE JANEIRO".

Nunca usei prisma! Nisso não sei como ajudar

Sem problemas, a intenção valeu demais. Obrigado Uriel! 🤝

me intrometendo na conversa rs, mas assim acho que fazer algo genérico vai acabar dando mais trabalho

é melhor vc criar um relacionamento direto e fazer

return this.prisma.cars.update({
    where: { id },
    data: {
        ...data,
        historico: {
            push: { acao: 'ALTEROU A PLACA DE XYZET5 PARA ZBR3DA E FILIAL DE SÃO PAULO PARA RIO DE JANEIRO', usuario: usuario.id, ... },
        }
    },
    include: this._include(),
});
Não seria seguro mandar esse id no corpo da requisição, o usuário poderia bater na rota ou coisa do tipo e inserir o id de outro usuário :/
só usei assim como exemplo msm, o correto seria vc pegar qual o id do usuário logado e tal... uma coisa que não comentei tbm, como esse update está bem genérico você teria que fazer alguma lógica manual mesmo, pra poder ver quais são as alterações. E acredito que não precisa registrar tudo que for alterado, mas apenas o que for de fato importante para você
Muito obrigado amigo 🫂, voce também me ajudou bastante. O Paulo propôs uma solução, vou colcoar em prática e trazer as resoluções aqui, e quem sabe, um repository para ajudar outras pessoas