From d5aa9f3f1bee71f9f744e80653d9fe090155b9b0 Mon Sep 17 00:00:00 2001 From: SepehrYahyaee <7heycallmegray@gmail.com> Date: Mon, 17 Aug 2026 10:26:02 +0330 Subject: [PATCH] Added 'perfomedBy' field to the Timeline --- src/expert-insurer/expert-insurer.service.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/expert-insurer/expert-insurer.service.ts b/src/expert-insurer/expert-insurer.service.ts index 238617e..90f17d6 100644 --- a/src/expert-insurer/expert-insurer.service.ts +++ b/src/expert-insurer/expert-insurer.service.ts @@ -2148,6 +2148,20 @@ export class ExpertInsurerService { }; } + /** + * Maps a raw history `actorType` string to either `"user"` or `"expert"`. + * - `"user"` → the action was taken by the car-owner / damaged party + * - `"expert"` → taken by any expert, system, or back-office actor + * - `null` → actorType was absent (unknown) + */ + private static resolveTimelinePerformedBy( + actorType: string | undefined, + ): "user" | "expert" | null { + if (!actorType) return null; + if (actorType === "user") return "user"; + return "expert"; + } + async getFileTimeline( insurerId: string, publicId: string, @@ -2187,6 +2201,7 @@ export class ExpertInsurerService { faLabel: getEventFaLabel(ev), timestamp: ev.timestamp, actor: ev.actor ?? null, + performedBy: ExpertInsurerService.resolveTimelinePerformedBy(ev.actor?.actorType), metadata: ev.metadata ?? null, }); } @@ -2206,6 +2221,7 @@ export class ExpertInsurerService { faLabel: getEventFaLabel(ev), timestamp: ev.timestamp, actor: ev.actor ?? null, + performedBy: ExpertInsurerService.resolveTimelinePerformedBy(ev.actor?.actorType), metadata: ev.metadata ?? null, }); }