From 2f46f46500a95edbc1609c3a0bc5a3de92f767bb Mon Sep 17 00:00:00 2001 From: Akhil Meka Date: Tue, 18 Nov 2025 14:03:22 +0530 Subject: [PATCH] feat: add assignedTo field to payments --- src/payments/payment.schema.ts | 6 +++++- src/payments/payments.service.ts | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/payments/payment.schema.ts b/src/payments/payment.schema.ts index 0d1e524..741daf6 100644 --- a/src/payments/payment.schema.ts +++ b/src/payments/payment.schema.ts @@ -1,5 +1,5 @@ import { buildJsonSchemas } from "fastify-zod"; -import mongoose from "mongoose"; +import mongoose, { Schema } from "mongoose"; import { pageQueryParams } from "../pagination"; const paymentSchema = new mongoose.Schema({ @@ -27,6 +27,10 @@ const paymentSchema = new mongoose.Schema({ receiptNo: String, fileId: String, paymentDate: Date, + assignedTo: { + type: [Schema.Types.ObjectId], + ref: "user", + }, }); export const paymentModel = mongoose.model("payment", paymentSchema); diff --git a/src/payments/payments.service.ts b/src/payments/payments.service.ts index f610ac7..a4f87b4 100644 --- a/src/payments/payments.service.ts +++ b/src/payments/payments.service.ts @@ -57,6 +57,14 @@ export async function listPayments( } pipeline.push( + { + $lookup: { + from: "users", + localField: "assignedTo", + foreignField: "_id", + as: "assignedTo", + }, + }, { $project: { _id: 1, @@ -75,6 +83,16 @@ export async function listPayments( receiptNo: 1, fileId: 1, paymentDate: 1, + assignedTo: { + $let: { + vars: { assignedTo: { $arrayElemAt: ["$assignedTo", 0] } }, + in: { + _id: "$$assignedTo._id", + pid: "$$assignedTo.pid", + name: "$$assignedTo.name", + }, + }, + }, }, }, {