add assignedTo field to rts

This commit is contained in:
2025-05-06 10:14:40 +05:30
parent f224d05a36
commit c7e6b209e9
2 changed files with 27 additions and 1 deletions

View File

@@ -45,6 +45,10 @@ const rtsSchema = new mongoose.Schema({
type: mongoose.Types.ObjectId, type: mongoose.Types.ObjectId,
ref: "user", ref: "user",
}, },
assignedTo: {
type: mongoose.Types.ObjectId,
ref: "user",
},
}); });
export const rtsFields = Object.keys(rtsSchema.paths).filter( export const rtsFields = Object.keys(rtsSchema.paths).filter(
@@ -70,6 +74,7 @@ const rtsCreateInput = z.object({
currentStage: z.number(), currentStage: z.number(),
}) })
.optional(), .optional(),
assignedTo: z.string().optional(),
}); });
const rtsUpdateInput = z.object({ const rtsUpdateInput = z.object({
@@ -88,6 +93,7 @@ const rtsUpdateInput = z.object({
currentStage: z.number(), currentStage: z.number(),
}) })
.optional(), .optional(),
assignedTo: z.string().optional(),
}); });
const rtsNewUpload = z.object({ const rtsNewUpload = z.object({

View File

@@ -55,7 +55,8 @@ export async function getRts(id: string, tenantId: string) {
.findOne({ pid: id, tenantId: tenantId }) .findOne({ pid: id, tenantId: tenantId })
.populate({ path: "county", select: "pid name avatar" }) .populate({ path: "county", select: "pid name avatar" })
.populate({ path: "client", select: "pid name avatar" }) .populate({ path: "client", select: "pid name avatar" })
.populate({ path: "createdBy", select: "pid name avatar" }); .populate({ path: "createdBy", select: "pid name avatar" })
.populate({ path: "assignedTo", select: "pid name avatar" });
} }
export async function listRts(params: PageQueryParams, tenantId: string) { export async function listRts(params: PageQueryParams, tenantId: string) {
@@ -92,6 +93,14 @@ export async function listRts(params: PageQueryParams, tenantId: string) {
as: "createdRec", as: "createdRec",
}, },
}, },
{
$lookup: {
from: "users",
localField: "assignedTo",
foreignField: "_id",
as: "assignedTo",
},
},
{ {
$project: { $project: {
_id: 1, _id: 1,
@@ -134,6 +143,17 @@ export async function listRts(params: PageQueryParams, tenantId: string) {
}, },
}, },
}, },
assignedTo: {
$let: {
vars: { created: { $arrayElemAt: ["$assignedTo", 0] } },
in: {
_id: "$$assignedTo._id",
pid: "$$assignedTo.pid",
name: "$$assignedTo.name",
avatar: "$$assignedTo.avatar",
},
},
},
}, },
}, },
{ {