First thing I came up with, is by calling computedInputs
in the nexusPrisma
option. But it won't work since they need to be handled differently depending on the situation, but globally:
1. create -> createdAt = now, updatedAt = null
2. update -> createdAt = keep as it is, updatedAt = now
In order to make it work, I need to set computedInputs individually like so:
t.crud.createOneX({
computedInputs: {
createdAt: () => DateTime.utc().toString(),
updatedAt: () => null,
},
});
t.crud.updateOneX({
computedInputs: {
createdAt: () => undefined,
updatedAt: () => DateTime.utc().toString(),
},
});
While this might work, I'm unable to "compute" these inputs on the nested models. In order to prevent passing createdAt/updatedAt, I have to create another t.crud
on that resource as well, without these timestamps.
The last workaround for this that might work, is to not use t.crud
at all, which is a bummer.
Thank you for asking the question.
Prisma can handle the
createdAt
andupdatedAt
columns for you in your models. Add the@default(now())
and@updatedAt
attributes to yourcreatedAt
andupdatedAt
columns respectively. You can add the columns to your models like this:You can learn more on the
@default(now())
and@updatedAt
in our docs.In case you run into any other issues and queries, I'll be happy to help