forked from Yara724/api
81 lines
2.6 KiB
TypeScript
81 lines
2.6 KiB
TypeScript
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;
|
|
};
|