From e4c3b7a16ad30990524a0ce9381d1a8426d2deb7 Mon Sep 17 00:00:00 2001 From: SepehrYahyaee <7heycallmegray@gmail.com> Date: Mon, 27 Jul 2026 10:15:46 +0330 Subject: [PATCH] YARA-1162 --- .../request-management.service.ts | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/request-management/request-management.service.ts b/src/request-management/request-management.service.ts index ecad0b3..734f8c5 100644 --- a/src/request-management/request-management.service.ts +++ b/src/request-management/request-management.service.ts @@ -9373,16 +9373,26 @@ export class RequestManagementService { }, }; + if (typeof (req as any).markModified === "function") { + (req as any).markModified("expert"); + } + if (!Array.isArray(req.history)) req.history = []; - req.history.push({ - type: "V3_ACCIDENT_FIELDS_SAVED", - actor: { - actorId: new Types.ObjectId(String(expert.sub)), - actorName: `${expert.firstName || ""} ${expert.lastName || ""}`.trim(), - actorType: "field_expert", - }, - metadata: { accidentWay: fields.accidentWay }, - } as any); + // Avoid duplicate history entries on idempotent retries. + const alreadyRecorded = (req.history as any[]).some( + (e: any) => e?.type === "V3_ACCIDENT_FIELDS_SAVED", + ); + if (!alreadyRecorded) { + req.history.push({ + type: "V3_ACCIDENT_FIELDS_SAVED", + actor: { + actorId: new Types.ObjectId(String(expert.sub)), + actorName: `${expert.firstName || ""} ${expert.lastName || ""}`.trim(), + actorType: "field_expert", + }, + metadata: { accidentWay: fields.accidentWay }, + } as any); + } await (req as any).save();