forked from Yara724/api
car body implemented
This commit is contained in:
@@ -13,6 +13,29 @@ export type FanavaranHullVehicleIdentity = {
|
||||
builtYear: number | null;
|
||||
};
|
||||
|
||||
export function mergeHullVehicleIdentityFromFanavaranVehicle(
|
||||
base: FanavaranHullVehicleIdentity,
|
||||
vehicle: Record<string, unknown> | null | undefined,
|
||||
): FanavaranHullVehicleIdentity {
|
||||
if (!vehicle) return base;
|
||||
const readText = (key: string, fallback: string | null) => {
|
||||
const raw = vehicle[key];
|
||||
if (raw == null || String(raw).trim() === "") return fallback;
|
||||
return String(raw).trim();
|
||||
};
|
||||
return {
|
||||
motorNo: readText("MotorNo", base.motorNo),
|
||||
chassisNo: readText("ChassisNo", base.chassisNo),
|
||||
vin: readText("VIN", base.vin),
|
||||
plaqueNo: readText("PlaqueNo", base.plaqueNo),
|
||||
plaqueSerial: readText("PlaqueSerial", base.plaqueSerial),
|
||||
builtYear:
|
||||
parseFanavaranId(vehicle.BuiltYear) ??
|
||||
parseFanavaranId(vehicle.builtYear) ??
|
||||
base.builtYear,
|
||||
};
|
||||
}
|
||||
|
||||
export function pickHullVehicleIdentity(
|
||||
blame?: { parties?: unknown[] } | null,
|
||||
): FanavaranHullVehicleIdentity {
|
||||
@@ -48,6 +71,24 @@ function text(value: unknown): string | null {
|
||||
return next ? next : null;
|
||||
}
|
||||
|
||||
export {
|
||||
FANAVARAN_DEFAULT_HULL_DMG_COST_KIND_ID,
|
||||
FANAVARAN_DEFAULT_HULL_DMG_KIND_ID,
|
||||
FANAVARAN_HULL_DMG_COST_KIND_CAPTION,
|
||||
FANAVARAN_HULL_DMG_KIND_CAPTION,
|
||||
} from "./fanavaran-hull-expertise-lookups";
|
||||
|
||||
/** GEN.06 VehicleCurrentValue from GET car/vehicle-hull-policies/{PolicyId} → VehicleValue. */
|
||||
export function vehicleCurrentValueFromHullPolicyRecord(
|
||||
policy: Record<string, unknown> | null | undefined,
|
||||
): number | null {
|
||||
if (!policy) return null;
|
||||
const raw =
|
||||
policy.VehicleValue ?? policy.vehicleValue ?? policy.VehicleCurrentValue;
|
||||
const n = typeof raw === "number" ? raw : Number(raw);
|
||||
return Number.isFinite(n) && n > 0 ? n : null;
|
||||
}
|
||||
|
||||
export function toFanavaranHullExpertisePayload(input: {
|
||||
claimExpertId: number;
|
||||
dmgAssessmentDate: string;
|
||||
@@ -58,6 +99,8 @@ export function toFanavaranHullExpertisePayload(input: {
|
||||
dropAmount: number;
|
||||
vehicleCurrentValue: number | null;
|
||||
vehicle: FanavaranHullVehicleIdentity;
|
||||
colorId?: number | null;
|
||||
repairDuration?: number | null;
|
||||
dmgSections: Record<string, unknown>[];
|
||||
}): Record<string, unknown> {
|
||||
return {
|
||||
@@ -74,7 +117,7 @@ export function toFanavaranHullExpertisePayload(input: {
|
||||
ComponentReplacementCost: input.componentReplacementCost,
|
||||
WasteValue: input.wasteValue,
|
||||
CarryAndRescueCost: null,
|
||||
RepairDuration: null,
|
||||
RepairDuration: input.repairDuration ?? null,
|
||||
VehicleCurrentValue: input.vehicleCurrentValue,
|
||||
WreckHighestValue: null,
|
||||
InspectionDeduction: null,
|
||||
@@ -82,7 +125,7 @@ export function toFanavaranHullExpertisePayload(input: {
|
||||
WentDistanceByExpert: null,
|
||||
IsDestruction: null,
|
||||
DropAmount: input.dropAmount,
|
||||
ColorId: null,
|
||||
ColorId: input.colorId ?? null,
|
||||
PlaqueDesignId: null,
|
||||
PlaqueCityId: null,
|
||||
AccidentPercent: null,
|
||||
@@ -96,19 +139,22 @@ export function toFanavaranHullExpertiseDmgSection(input: {
|
||||
desc: string;
|
||||
wasteValue: number;
|
||||
amount: number;
|
||||
dmgKindId: number;
|
||||
dmgCostKindId: number;
|
||||
vehicleHullAccessoryId: number | null;
|
||||
}): Record<string, unknown> {
|
||||
return {
|
||||
Count: 1,
|
||||
Desc: input.desc,
|
||||
WasteValue: input.wasteValue,
|
||||
AccessoryKindId: parseFanavaranId(input.partId),
|
||||
DmgKindId: null,
|
||||
VehicleHullAccessoryId: null,
|
||||
DmgKindId: input.dmgKindId,
|
||||
VehicleHullAccessoryId: input.vehicleHullAccessoryId,
|
||||
DmgSectionCosts: [
|
||||
{
|
||||
Caption: input.desc,
|
||||
Amount: input.amount,
|
||||
DmgCostKindId: null,
|
||||
DmgCostKindId: input.dmgCostKindId,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user