forked from Yara724/api
Merge pull request 'Fixed label_fa' (#45) from s.yahyaee/yara724-api:main into main
Reviewed-on: Yara724/api#45
This commit is contained in:
@@ -4216,24 +4216,28 @@ export class ClaimRequestManagementService {
|
|||||||
throw new ForbiddenException('Only the claim owner can view capture requirements');
|
throw new ForbiddenException('Only the claim owner can view capture requirements');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper to get part labels
|
// Build car-type aware outer-parts lookup (complete source: static catalog)
|
||||||
|
const selectedCarType = claimCase.vehicle?.carType as ClaimVehicleTypeV2 | undefined;
|
||||||
|
const catalogForType =
|
||||||
|
selectedCarType && OUTER_PARTS_BY_CAR_TYPE[selectedCarType]
|
||||||
|
? OUTER_PARTS_BY_CAR_TYPE[selectedCarType]
|
||||||
|
: this.getOuterPartsCatalogV2();
|
||||||
|
const catalogByKey = new Map<string, OuterPartCatalogItem>();
|
||||||
|
for (const item of catalogForType) {
|
||||||
|
if (!catalogByKey.has(item.key)) catalogByKey.set(item.key, item);
|
||||||
|
}
|
||||||
|
|
||||||
const getPartLabel = (key: string): { fa: string; en: string } => {
|
const getPartLabel = (key: string): { fa: string; en: string } => {
|
||||||
const labels = {
|
const catalogItem = catalogByKey.get(key);
|
||||||
hood: { fa: 'کاپوت', en: 'Hood' },
|
if (catalogItem) {
|
||||||
trunk: { fa: 'صندوق عقب', en: 'Trunk' },
|
const en = key
|
||||||
roof: { fa: 'سقف', en: 'Roof' },
|
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
||||||
front_right_door: { fa: 'درب جلو راست', en: 'Front Right Door' },
|
.replace(/_/g, " ")
|
||||||
front_left_door: { fa: 'درب جلو چپ', en: 'Front Left Door' },
|
.trim()
|
||||||
rear_right_door: { fa: 'درب عقب راست', en: 'Rear Right Door' },
|
.replace(/\b\w/g, (c) => c.toUpperCase());
|
||||||
rear_left_door: { fa: 'درب عقب چپ', en: 'Rear Left Door' },
|
return { fa: catalogItem.titleFa, en };
|
||||||
front_bumper: { fa: 'سپر جلو', en: 'Front Bumper' },
|
}
|
||||||
rear_bumper: { fa: 'سپر عقب', en: 'Rear Bumper' },
|
return { fa: key, en: key };
|
||||||
front_right_fender: { fa: 'گلگیر جلو راست', en: 'Front Right Fender' },
|
|
||||||
front_left_fender: { fa: 'گلگیر جلو چپ', en: 'Front Left Fender' },
|
|
||||||
rear_right_fender: { fa: 'گلگیر عقب راست', en: 'Rear Right Fender' },
|
|
||||||
rear_left_fender: { fa: 'گلگیر عقب چپ', en: 'Rear Left Fender' },
|
|
||||||
};
|
|
||||||
return labels[key] || { fa: key, en: key };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Required documents: CAR_BODY needs 7 (damaged + green card); THIRD_PARTY needs 13 (add guilty_*)
|
// Required documents: CAR_BODY needs 7 (damaged + green card); THIRD_PARTY needs 13 (add guilty_*)
|
||||||
@@ -4287,11 +4291,40 @@ export class ClaimRequestManagementService {
|
|||||||
|
|
||||||
// Damaged parts from selected parts
|
// Damaged parts from selected parts
|
||||||
const selectedParts = claimCase.damage?.selectedParts || [];
|
const selectedParts = claimCase.damage?.selectedParts || [];
|
||||||
|
const selectedOuterParts = Array.isArray(claimCase.damage?.selectedOuterParts)
|
||||||
|
? claimCase.damage.selectedOuterParts
|
||||||
|
: [];
|
||||||
|
const selectedOuterPartByKey = new Map<
|
||||||
|
string,
|
||||||
|
{ id?: number; side?: string }
|
||||||
|
>(
|
||||||
|
selectedOuterParts.map((p) => [
|
||||||
|
p.key,
|
||||||
|
{
|
||||||
|
id: p.id,
|
||||||
|
side: p.side,
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
);
|
||||||
|
|
||||||
const damagedParts = selectedParts.map(partKey => {
|
const damagedParts = selectedParts.map(partKey => {
|
||||||
const label = getPartLabel(partKey);
|
const label = getPartLabel(partKey);
|
||||||
|
const selectedMeta = selectedOuterPartByKey.get(partKey);
|
||||||
|
const catalogMeta = catalogByKey.get(partKey);
|
||||||
|
const side = selectedMeta?.side ?? catalogMeta?.side;
|
||||||
|
const sideFaMap: Record<string, string> = {
|
||||||
|
left: "چپ",
|
||||||
|
right: "راست",
|
||||||
|
front: "جلو",
|
||||||
|
back: "عقب",
|
||||||
|
top: "بالا",
|
||||||
|
};
|
||||||
|
const sideFa = side ? sideFaMap[side] : undefined;
|
||||||
return {
|
return {
|
||||||
|
id: selectedMeta?.id ?? catalogMeta?.id,
|
||||||
key: partKey,
|
key: partKey,
|
||||||
label_fa: label.fa,
|
side,
|
||||||
|
label_fa: sideFa ? `${label.fa} (${sideFa})` : label.fa,
|
||||||
label_en: label.en,
|
label_en: label.en,
|
||||||
captured: !!hasCapture(claimCase.media?.damagedParts as any, partKey),
|
captured: !!hasCapture(claimCase.media?.damagedParts as any, partKey),
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user