mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-09-13 16:23:08 +00:00
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:
@@ -701,6 +701,31 @@
|
||||
"purchaseButton": "⚡ Subscribe with SBP auto-payment",
|
||||
"purchaseHint": "First charge confirms the binding in your bank app; renewals are charged automatically per the tariff cadence."
|
||||
},
|
||||
"lavaRecurring": {
|
||||
"title": "Lava auto-renewal",
|
||||
"connect": "Connect",
|
||||
"payFirst": "Pay the first invoice",
|
||||
"cancel": "Disable",
|
||||
"confirmCancel": "Disable Lava auto-renewal? The subscription will no longer renew automatically.",
|
||||
"cancelled": "Lava auto-renewal disabled",
|
||||
"enableError": "Could not enable Lava auto-renewal",
|
||||
"cancelError": "Could not disable Lava auto-renewal",
|
||||
"statusPending": "Waiting for the first invoice to be paid",
|
||||
"statusActive": "Active",
|
||||
"statusPastDue": "Payment failed — please try again",
|
||||
"nextCharge": "next charge on {{date}}",
|
||||
"amountPerPeriod": "{{amount}} ₽ {{period}}",
|
||||
"amountPerDays": "{{amount}} ₽ every {{days}} days",
|
||||
"period": {
|
||||
"day": "daily",
|
||||
"week": "weekly",
|
||||
"month": "monthly",
|
||||
"quarter": "quarterly",
|
||||
"halfYear": "every six months",
|
||||
"year": "yearly"
|
||||
},
|
||||
"autopayHint": "The subscription will renew automatically via Lava"
|
||||
},
|
||||
"backToList": "Back to subscriptions",
|
||||
"confirmDelete": "Delete subscription?",
|
||||
"dailyAutoCharge": "Daily auto-charge",
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -720,6 +720,31 @@
|
||||
"purchaseButton": "⚡ Оформить с автооплатой СБП",
|
||||
"purchaseHint": "Первое списание подтверждает привязку в банке; продления списываются автоматически по каденсу тарифа."
|
||||
},
|
||||
"lavaRecurring": {
|
||||
"title": "Автопродление Lava",
|
||||
"connect": "Подключить",
|
||||
"payFirst": "Оплатить первый счёт",
|
||||
"cancel": "Отключить",
|
||||
"confirmCancel": "Отключить автопродление Lava? Подписка больше не будет продлеваться автоматически.",
|
||||
"cancelled": "Автопродление Lava отключено",
|
||||
"enableError": "Не удалось подключить автопродление Lava",
|
||||
"cancelError": "Не удалось отменить автопродление Lava",
|
||||
"statusPending": "Ожидает оплаты первого счёта",
|
||||
"statusActive": "Активно",
|
||||
"statusPastDue": "Платёж не прошёл — попробуйте снова",
|
||||
"nextCharge": "следующее списание {{date}}",
|
||||
"amountPerPeriod": "{{amount}} ₽ {{period}}",
|
||||
"amountPerDays": "{{amount}} ₽ раз в {{days}} дн.",
|
||||
"period": {
|
||||
"day": "ежедневно",
|
||||
"week": "еженедельно",
|
||||
"month": "ежемесячно",
|
||||
"quarter": "раз в квартал",
|
||||
"halfYear": "раз в полгода",
|
||||
"year": "ежегодно"
|
||||
},
|
||||
"autopayHint": "Подписка будет автоматически продлеваться через Lava"
|
||||
},
|
||||
"backToList": "К списку подписок",
|
||||
"confirmDelete": "Удалить подписку?",
|
||||
"dailyAutoCharge": "Ежедневное списание",
|
||||
|
||||
@@ -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": {
|
||||
|
||||
Reference in New Issue
Block a user