improvement: moved unreadMessages logic to model

This commit is contained in:
canove
2020-08-04 11:18:26 -03:00
parent 7a99abe543
commit 0b61e8391f
4 changed files with 17 additions and 55 deletions

View File

@@ -1,4 +1,5 @@
const Sequelize = require("sequelize");
const Message = require("./Message");
class Ticket extends Sequelize.Model {
static init(sequelize) {
@@ -6,6 +7,7 @@ class Ticket extends Sequelize.Model {
{
status: { type: Sequelize.STRING, defaultValue: "pending" },
userId: { type: Sequelize.INTEGER, defaultValue: null },
unreadMessages: { type: Sequelize.VIRTUAL },
lastMessage: { type: Sequelize.STRING },
},
{
@@ -13,6 +15,12 @@ class Ticket extends Sequelize.Model {
}
);
this.addHook("afterUpdate", async ticket => {
ticket.unreadMessages = await Message.count({
where: { ticketId: ticket.id, read: false },
});
});
return this;
}