From 2a8b66bc168bbdfc681bdb0db520688ef3481b95 Mon Sep 17 00:00:00 2001 From: SepehrYahyaee <7heycallmegray@gmail.com> Date: Wed, 15 Jul 2026 14:56:58 +0330 Subject: [PATCH] FIX v5 flow --- .../claim-request-management.service.ts | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/claim-request-management/claim-request-management.service.ts b/src/claim-request-management/claim-request-management.service.ts index e1d4af5..c8ce4fa 100644 --- a/src/claim-request-management/claim-request-management.service.ts +++ b/src/claim-request-management/claim-request-management.service.ts @@ -8139,7 +8139,7 @@ export class ClaimRequestManagementService { file: Express.Multer.File, currentUserId: string, actor?: { sub: string; role?: string }, - options?: { v3InPersonFlow?: boolean; skipMetalPlate?: boolean }, + options?: { v3InPersonFlow?: boolean; skipMetalPlate?: boolean; requiresFileMakerApproval?: boolean }, ): Promise { try { const claimCase = await this.claimCaseDbService.findById(claimRequestId); @@ -8334,16 +8334,37 @@ export class ClaimRequestManagementService { progressAfterDoc.capturePhaseDocsComplete ) { captureStepCompletedOnThisUpload = true; - $set["status"] = ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS; - $set["workflow.currentStep"] = - ClaimWorkflowStep.UPLOAD_REQUIRED_DOCUMENTS; - $set["workflow.nextStep"] = options?.v3InPersonFlow - ? ClaimWorkflowStep.UPLOAD_REQUIRED_DOCUMENTS - : ClaimWorkflowStep.USER_SUBMISSION_COMPLETE; + + if (options?.v3InPersonFlow) { + // V4/V5: no further upload steps after capture docs — finalise now. + const finalStatus = options.requiresFileMakerApproval + ? ClaimCaseStatus.WAITING_FOR_FILE_MAKER_APPROVAL + : ClaimCaseStatus.WAITING_FOR_DAMAGE_EXPERT; + $set["status"] = finalStatus; + $set["claimStatus"] = ClaimStatus.PENDING; + $set["workflow.currentStep"] = ClaimWorkflowStep.USER_SUBMISSION_COMPLETE; + $set["workflow.nextStep"] = ClaimWorkflowStep.EXPERT_DAMAGE_ASSESSMENT; + + // Mark the linked blame as COMPLETED. + if (claimCase.blameRequestId) { + await this.blameRequestDbService.findByIdAndUpdate( + String(claimCase.blameRequestId), + { $set: { status: BlameCaseStatus.COMPLETED } }, + ); + } + } else { + $set["status"] = ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS; + $set["workflow.currentStep"] = + ClaimWorkflowStep.UPLOAD_REQUIRED_DOCUMENTS; + $set["workflow.nextStep"] = ClaimWorkflowStep.USER_SUBMISSION_COMPLETE; + } completedStepsEntries.push( ClaimWorkflowStep.CAPTURE_PART_DAMAGES, ); + completedStepsEntries.push( + ClaimWorkflowStep.USER_SUBMISSION_COMPLETE, + ); historyEntries.push({ type: "STEP_COMPLETED", actor: { @@ -8354,8 +8375,9 @@ export class ClaimRequestManagementService { timestamp: new Date(), metadata: { stepKey: ClaimWorkflowStep.CAPTURE_PART_DAMAGES, - description: - "Angles, damaged parts, and capture-phase vehicle evidence (chassis, engine, metal plate) are complete. Please upload remaining required documents.", + description: options?.v3InPersonFlow + ? "V4/V5 capture complete. Claim ready for review." + : "Angles, damaged parts, and capture-phase vehicle evidence are complete.", }, }); } @@ -10367,7 +10389,7 @@ export class ClaimRequestManagementService { file, currentUserId, actor, - { v3InPersonFlow: true, skipMetalPlate }, + { v3InPersonFlow: true, skipMetalPlate, requiresFileMakerApproval: !!(claimCase as any).requiresFileMakerApproval }, ); }