import { VerifyLookUpMessage } from "./sms-gateway.types"; const TOKEN_KEYS = ["token", "token2", "token3", "token10"] as const; /** Kavenegar template name → plain-text body for Parsian (placeholders: {token}, {token2}, …). */ const PARSIAN_TEMPLATE_BODIES: Record = { "yara724-invite-link": "کاربر محترم، لینک ورود به پرونده یارا724:\nشناسه: {token}\n{token2}", "yara-field-expert-link": "کارشناس میدانی بیمه {token} ({token2}) پرونده شما را بررسی می‌کند.\nلینک: {token3}", "yara-blame-agreement": "پرونده تصادف شما ({token}) آماده امضاست.\nلینک: {token2}", "yara-claim-link": "پرونده خسارت شما ({token}) آماده ثبت است.\nلینک: {token2}", "yara-expert-lock": "کارشناس ({token3}) پرونده {token} ({token2}) را در حال بررسی دارد.", "yara-resend-documents": "لطفاً مدارک پرونده {token} ({token2}) را مجدداً ارسال کنید.\nلینک: {token3}", "yara-signature": "امضای پرونده {token} ({token2}) توسط کارشناس {token3} بررسی شد.\nلینک: {token10}", }; function applyTokens( pattern: string, data: Pick< VerifyLookUpMessage, "token" | "token2" | "token3" | "token10" >, ): string { let out = pattern; for (const key of TOKEN_KEYS) { const value = data[key]; if (value != null && value !== "") { out = out.split(`{${key}}`).join(value); } } return out.replace(/\{token\d*\}/g, "").trim(); } export function buildParsianTemplateMessage( data: VerifyLookUpMessage, ): string { const authTemplate = process.env.AUTH_SMS_TEMPLATE?.trim(); if (authTemplate && data.template === authTemplate) { const authMessage = process.env.AUTH_SMS_MESSAGE?.trim() ?? "کاربر محترم رمز یکبار مصرف شما:\nCode: {token}"; return applyTokens(authMessage, data); } const body = PARSIAN_TEMPLATE_BODIES[data.template]; if (body) { return applyTokens(body, data); } const parts = [ `پیام سیستم (${data.template})`, data.token ? `کد: ${data.token}` : "", data.token2 ?? "", data.token3 ?? "", data.token10 ?? "", ].filter(Boolean); return parts.join("\n"); }