feat: add tagging alerts and sorting on tags

This commit is contained in:
2025-08-19 08:03:44 +05:30
parent 17a63f67a5
commit caea0e60e6
20 changed files with 260 additions and 49 deletions

View File

@@ -77,6 +77,7 @@ export async function updateNotification(
content: msg,
},
notifId,
"notifications",
user
);
@@ -84,6 +85,7 @@ export async function updateNotification(
await createNote(
{ content: msg },
updateNotificationResult.permitId,
"notifications",
user
);
@@ -123,6 +125,25 @@ export async function listNotifications(
filterObj.push({ client: new mongoose.Types.ObjectId(user.orgId) });
}
let taggedFilter = [];
if (sortObj.taggedUsers) {
taggedFilter = [
{
$addFields: {
taggedUsers: {
$filter: {
input: "$taggedUsers",
as: "user",
cond: { $eq: ["$$user.userId", user.userId] },
},
},
},
},
{ $match: { "taggedUsers.0": { $exists: true } } },
{ $sort: { "taggedUsers.taggedAt": sortObj.taggedUsers } },
];
}
const pipeline: any = [
{
$match: { $and: [{ tenantId: user.tenantId }, ...filterObj] },
@@ -140,6 +161,7 @@ export async function listNotifications(
pipeline.push(
...[
...taggedFilter,
{
$lookup: {
from: "users",