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".
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ê