import { ClaimCaseStatus } from "src/Types&Enums/claim-request-management/claim-case-status.enum"; export type FanavaranClaimReferences = { claimId?: number; claimNo?: number; dmgCaseId?: number; expertiseId?: number; policyId?: number; driverId?: number; vehicleKindId?: number; plaqueKindId?: number; plaqueSampleId?: number; accidentVehicleUsedId?: number; insuranceCorpId?: number; }; /** * Fanavaran ids for v2 claim GET. Only on COMPLETED; each field is omitted when missing. */ export function fanavaranClaimReferences(claim: { status?: string; claimId?: number | null; claimNo?: number | null; dmgCaseId?: number | null; expertiseId?: number | null; fanavaranSync?: { baseClaim?: FanavaranReferenceStage | null; damageCase?: FanavaranReferenceStage | null; } | null; }): FanavaranClaimReferences | undefined { if (claim.status !== ClaimCaseStatus.COMPLETED) { return undefined; } const refs: FanavaranClaimReferences = {}; if (claim.claimId != null) refs.claimId = claim.claimId; if (claim.claimNo != null) refs.claimNo = claim.claimNo; if (claim.dmgCaseId != null) refs.dmgCaseId = claim.dmgCaseId; if (claim.expertiseId != null) refs.expertiseId = claim.expertiseId; const baseClaim = claim.fanavaranSync?.baseClaim; const damageCase = claim.fanavaranSync?.damageCase; if (baseClaim?.policyId != null) refs.policyId = baseClaim.policyId; if ((damageCase?.driverId ?? baseClaim?.driverId) != null) { refs.driverId = damageCase?.driverId ?? baseClaim?.driverId; } if ((damageCase?.vehicleKindId ?? baseClaim?.vehicleKindId) != null) { refs.vehicleKindId = damageCase?.vehicleKindId ?? baseClaim?.vehicleKindId; } if (damageCase?.plaqueKindId != null) { refs.plaqueKindId = damageCase.plaqueKindId; } if (damageCase?.plaqueSampleId != null) { refs.plaqueSampleId = damageCase.plaqueSampleId; } if ( (damageCase?.accidentVehicleUsedId ?? baseClaim?.accidentVehicleUsedId) != null ) { refs.accidentVehicleUsedId = damageCase?.accidentVehicleUsedId ?? baseClaim?.accidentVehicleUsedId; } if ((damageCase?.insuranceCorpId ?? baseClaim?.insuranceCorpId) != null) { refs.insuranceCorpId = damageCase?.insuranceCorpId ?? baseClaim?.insuranceCorpId; } return Object.keys(refs).length > 0 ? refs : undefined; } type FanavaranReferenceStage = { policyId?: number | null; driverId?: number | null; vehicleKindId?: number | null; plaqueKindId?: number | null; plaqueSampleId?: number | null; accidentVehicleUsedId?: number | null; insuranceCorpId?: number | null; };