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');
|
||||
}
|
||||
|
||||
// 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 labels = {
|
||||
hood: { fa: 'کاپوت', en: 'Hood' },
|
||||
trunk: { fa: 'صندوق عقب', en: 'Trunk' },
|
||||
roof: { fa: 'سقف', en: 'Roof' },
|
||||
front_right_door: { fa: 'درب جلو راست', en: 'Front Right Door' },
|
||||
front_left_door: { fa: 'درب جلو چپ', en: 'Front Left Door' },
|
||||
rear_right_door: { fa: 'درب عقب راست', en: 'Rear Right Door' },
|
||||
rear_left_door: { fa: 'درب عقب چپ', en: 'Rear Left Door' },
|
||||
front_bumper: { fa: 'سپر جلو', en: 'Front Bumper' },
|
||||
rear_bumper: { fa: 'سپر عقب', en: 'Rear Bumper' },
|
||||
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 };
|
||||
const catalogItem = catalogByKey.get(key);
|
||||
if (catalogItem) {
|
||||
const en = key
|
||||
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
||||
.replace(/_/g, " ")
|
||||
.trim()
|
||||
.replace(/\b\w/g, (c) => c.toUpperCase());
|
||||
return { fa: catalogItem.titleFa, en };
|
||||
}
|
||||
return { fa: key, en: key };
|
||||
};
|
||||
|
||||
// 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
|
||||
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 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 {
|
||||
id: selectedMeta?.id ?? catalogMeta?.id,
|
||||
key: partKey,
|
||||
label_fa: label.fa,
|
||||
side,
|
||||
label_fa: sideFa ? `${label.fa} (${sideFa})` : label.fa,
|
||||
label_en: label.en,
|
||||
captured: !!hasCapture(claimCase.media?.damagedParts as any, partKey),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user