YARA-1257, YARA-1272, YARA-985

This commit is contained in:
SepehrYahyaee
2026-09-12 11:19:57 +03:30
parent ebe45646c1
commit 15342e16d8
18 changed files with 279 additions and 207 deletions

View File

@@ -120,7 +120,8 @@ export const EVENT_TYPE_FA_LABELS: Record<string, string> = {
// Owner insurer approval
OWNER_SIGNED_INSURER_APPROVAL: "صاحب خودرو قرارداد بیمه را امضا کرد",
OWNER_REJECTED_INSURER_APPROVAL_PRICING: "صاحب خودرو قیمت‌گذاری بیمه را رد کرد",
OWNER_REJECTED_INSURER_APPROVAL_PRICING:
"صاحب خودرو قیمت‌گذاری بیمه را رد کرد",
OWNER_SIGNED_PRICED_PARTS_PENDING_FACTOR_UPLOAD:
"صاحب خودرو قطعات قیمت‌گذاری‌شده را امضا کرد و در انتظار بارگذاری فاکتور",
OWNER_REJECTED_PRICED_PARTS_BEFORE_FACTORS:
@@ -129,8 +130,10 @@ export const EVENT_TYPE_FA_LABELS: Record<string, string> = {
// Fanavaran sync
FANAVARAN_AUTO_SUBMIT_SUCCEEDED: "ارسال خودکار به فناوران موفق بود",
FANAVARAN_AUTO_SUBMIT_FAILED: "ارسال خودکار به فناوران ناموفق بود",
FANAVARAN_EARLY_AUTO_SUBMIT_SUCCEEDED: "ارسال زودهنگام خودکار به فناوران موفق بود",
FANAVARAN_EARLY_AUTO_SUBMIT_FAILED: "ارسال زودهنگام خودکار به فناوران ناموفق بود",
FANAVARAN_EARLY_AUTO_SUBMIT_SUCCEEDED:
"ارسال زودهنگام خودکار به فناوران موفق بود",
FANAVARAN_EARLY_AUTO_SUBMIT_FAILED:
"ارسال زودهنگام خودکار به فناوران ناموفق بود",
FANAVARAN_EXPERTISE_AUTO_SUBMIT_SUCCEEDED:
"ارسال خودکار کارشناسی به فناوران موفق بود",
FANAVARAN_EXPERTISE_AUTO_SUBMIT_FAILED:
@@ -168,6 +171,28 @@ export const STEP_KEY_FA_LABELS: Record<string, string> = {
CLAIM_COMPLETED: "پرونده خسارت تکمیل شد",
};
/**
* Persian descriptions for workflow-step events. These are deliberately
* complete sentences because the insurer timeline exposes them as the event
* detail, while `STEP_KEY_FA_LABELS` is intended for short UI labels.
*/
const STEP_KEY_FA_DESCRIPTIONS: Record<string, string> = {
CLAIM_CREATED: "پرونده خسارت ایجاد شد.",
SELECT_OUTER_PARTS: "قطعات بیرونی آسیب‌دیده انتخاب و ثبت شدند.",
SELECT_OTHER_PARTS: "سایر قطعات آسیب‌دیده و اطلاعات بانکی ثبت شدند.",
CAPTURE_PART_DAMAGES: "تصاویر آسیب قطعات و تصاویر مورد نیاز خودرو ثبت شدند.",
UPLOAD_REQUIRED_DOCUMENTS: "مدارک مورد نیاز برای بررسی خسارت بارگذاری شدند.",
USER_SUBMISSION_COMPLETE:
"ثبت اطلاعات کاربر تکمیل شد و پرونده آماده بررسی کارشناس خسارت است.",
USER_EXPERT_RESEND: "مدارک درخواستی توسط کاربر دوباره ارسال شدند.",
EXPERT_DAMAGE_ASSESSMENT: "ارزیابی خسارت توسط کارشناس انجام شد.",
EXPERT_FINAL_REPLY: "پاسخ نهایی کارشناس ثبت شد.",
EXPERT_COST_EVALUATION: "هزینه خسارت توسط کارشناس ارزیابی شد.",
OWNER_UPLOAD_FACTOR_DOCUMENTS: "فاکتورهای تعمیر توسط مالک بارگذاری شدند.",
INSURER_REVIEW: "پرونده توسط بیمه‌گر بررسی شد.",
CLAIM_COMPLETED: "رسیدگی به پرونده خسارت تکمیل شد.",
};
/**
* For `STEP_COMPLETED` and `V3_STEP_COMPLETED` events whose final label
* depends on the `metadata.stepKey` value, this function returns the
@@ -177,10 +202,7 @@ export function resolveStepCompletedFaLabel(event: {
type: string;
metadata?: any;
}): string | undefined {
if (
event.type !== "STEP_COMPLETED" &&
event.type !== "V3_STEP_COMPLETED"
) {
if (event.type !== "STEP_COMPLETED" && event.type !== "V3_STEP_COMPLETED") {
return undefined;
}
const stepKey: string | undefined = event.metadata?.stepKey;
@@ -203,3 +225,23 @@ export function getEventFaLabel(event: {
event.type
);
}
/**
* Returns a Persian sentence suitable for the timeline event `description`.
*
* History is persisted over time, so its older metadata can contain English
* system messages. The insurer endpoint uses this derived value instead of
* exposing persisted text, which localizes both old and new timeline records.
*/
export function getEventFaDescription(event: {
type: string;
metadata?: any;
}): string {
const stepKey: string | undefined = event.metadata?.stepKey;
if (stepKey && STEP_KEY_FA_DESCRIPTIONS[stepKey]) {
return STEP_KEY_FA_DESCRIPTIONS[stepKey];
}
const label = getEventFaLabel(event);
return label === event.type ? "رویدادی در روند پرونده ثبت شد." : `${label}.`;
}