feat(lava): автопродление Lava на странице подписки

Парная фронтовая часть к эндпоинтам /cabinet/subscription/lava-recurrent
(бот: 0dea2182). Блок — сиблинг Platega-блока с той же семантикой состояний
(off/pending/active/past_due), поллинг раз в 8с пока привязка PENDING.

Отличие от Platega в подписи: у Lava период задан продуктом в кабинете
провайдера и приезжает числом дней, поэтому канонические значения (30/90/365
и т.д.) показываются словами, а произвольные — как «раз в N дн.».

utils/lavaRecurring.ts: строгое распознавание 403 'Lava recurrent disabled'
(другие 403-guard'ы прятать нельзя), деградация неизвестного статуса в off.
Локали ru/en/zh/fa (+25 строк каждая, плейсхолдеры сверены). 7 тестов утилиты.
This commit is contained in:
Fringg
2026-07-29 16:34:43 +03:00
parent 62aaa5d7c9
commit 2dce539da2
9 changed files with 474 additions and 0 deletions

View File

@@ -600,6 +600,31 @@
"purchaseButton": "⚡ اشتراک با پرداخت خودکار SBP",
"purchaseHint": "اولین برداشت، اتصال را در اپ بانک تأیید می‌کند؛ تمدیدها به‌صورت خودکار برداشت می‌شوند."
},
"lavaRecurring": {
"title": "تمدید خودکار Lava",
"connect": "اتصال",
"payFirst": "پرداخت صورتحساب اول",
"cancel": "غیرفعال‌سازی",
"confirmCancel": "تمدید خودکار Lava غیرفعال شود؟ اشتراک دیگر به‌طور خودکار تمدید نمی‌شود.",
"cancelled": "تمدید خودکار Lava غیرفعال شد",
"enableError": "فعال‌سازی تمدید خودکار Lava ناموفق بود",
"cancelError": "غیرفعال‌سازی تمدید خودکار Lava ناموفق بود",
"statusPending": "در انتظار پرداخت صورتحساب اول",
"statusActive": "فعال",
"statusPastDue": "پرداخت ناموفق بود — دوباره تلاش کنید",
"nextCharge": "برداشت بعدی {{date}}",
"amountPerPeriod": "{{amount}} ₽ {{period}}",
"amountPerDays": "هر {{days}} روز {{amount}} ₽",
"period": {
"day": "روزانه",
"week": "هفتگی",
"month": "ماهانه",
"quarter": "هر سه ماه",
"halfYear": "هر شش ماه",
"year": "سالانه"
},
"autopayHint": "اشتراک به‌طور خودکار از طریق Lava تمدید می‌شود"
},
"backToList": "بازگشت به فهرست اشتراک‌ها",
"confirmDelete": "اشتراک حذف شود؟",
"cta": {