1
0
forked from Yara724/api

Fixed label_fa

This commit is contained in:
SepehrYahyaee
2026-04-28 16:32:27 +03:30
parent 8ae6f2c91b
commit 3f608f63f1

View File

@@ -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),
}; };