fix: separate HWID device renewal flows

Keep one-off device top-ups scoped to the active subscription term and move device renewal into subscription checkout.

Carry HWID renewal metadata through provider callbacks and webhooks, including YooKassa saved-card flows.

Add admin extension controls, docs, demo data, and regression coverage.
This commit is contained in:
3252a8
2026-06-03 23:51:46 +03:00
parent a06884d816
commit fbb89793cb
48 changed files with 2410 additions and 224 deletions
+21 -6
View File
@@ -948,20 +948,32 @@
"buy_hwid_devices_menu_button": "+ HWID устройства",
"buy_hwid_devices_button": "+{count} HWID за {price} {currency_symbol}",
"select_hwid_device_package": "Выберите пакет HWID устройств:",
"select_hwid_device_renewal_package": "Выберите пакет HWID устройств для нового срока подписки. Текущая докупка действует до {date}.",
"select_hwid_device_renewal_package": "Продление докупленных HWID устройств выполняется вместе с продлением подписки. Текущая докупка действует до {date}.",
"choose_payment_method_hwid_devices": "Выберите способ оплаты дополнительных HWID устройств:",
"payment_hwid_renewal_toggle_on": "✅ Продлить также +{count} HWID устройств за {price} {currency_symbol}",
"payment_hwid_renewal_toggle_off": "☐ Продлить +{count} HWID устройств за {price} {currency_symbol}",
"no_hwid_device_packages_available": "Дополнительные HWID устройства для этого тарифа не настроены.",
"hwid_devices_unlimited_no_topup": "У вас уже безлимитное число устройств.",
"payment_description_hwid_devices": "Дополнительные HWID устройства +{count}",
"payment_successful_hwid_devices_renewal_note": "У вас сейчас докуплено +{count} HWID устройств до {date}. При продлении подписки их нужно докупить заново для нового срока.",
"subscription_hwid_renewal_reminder": "У вас докуплено +{count} HWID устройств до {date}. При продлении подписки докупку нужно оформить заново.",
"payment_successful_hwid_devices_renewal_note": "Докупленные +{count} HWID устройств действуют до {date}. Если нужно продлить их на следующий срок, включите продление устройств при оплате подписки.",
"payment_successful_hwid_devices_renewed_note": "Докупленные +{count} HWID устройств продлены вместе с подпиской до {date}.",
"subscription_hwid_renewal_reminder": "У вас докуплено +{count} HWID устройств до {date}. При продлении подписки можно включить продление этих устройств в тот же платеж.",
"wa_buy_hwid_devices": "Купить устройства",
"wa_device_topup_for_tariff": "Пакеты устройств для тарифа {tariff}",
"wa_hwid_devices_package": "+{count} устройств",
"wa_hwid_devices_renewal_package": "Продлить +{count} устройств",
"wa_hwid_devices_active_until": "Действует до {date}",
"wa_hwid_devices_renewal_period": "С {from} до {to}",
"wa_hwid_devices_valid_until": "+{count} дополнительных устройств действует до {date}",
"wa_hwid_devices_renewal_notice": "Докупленные +{count} устройств действуют до {date}. При продлении подписки их нужно докупить заново.",
"wa_hwid_devices_renewal_offer": "Текущая докупка +{count} устройств действует до {date}. Выберите пакет, чтобы продлить устройства на новый срок подписки.",
"wa_hwid_devices_renewal_prompt": "Подписка продлена. Докупите устройства для нового срока.",
"wa_hwid_devices_renewal_notice": "Докупленные +{count} устройств действуют до {date}. Продлить их на следующий срок можно вместе с продлением подписки.",
"wa_hwid_devices_renewal_checkbox": "Продлить также +{count} доп. устройств за {price}",
"wa_hwid_devices_renewal_checkbox_aria": родлить дополнительные устройства вместе с подпиской",
"wa_hwid_devices_renewal_checkbox_hint": "Новый срок устройств: с {from} до {to}",
"wa_hwid_devices_renewal_checkbox_hint_short": "Устройства будут продлены на новый срок подписки",
"wa_hwid_devices_desync_notice": "Текущая докупка действует до {date}; до начала нового периода лимит может вернуться к базовому.",
"wa_hwid_devices_renewal_offer": "Текущая докупка +{count} устройств действует до {date}. Продление устройств выполняется вместе с продлением подписки.",
"wa_hwid_devices_renewal_prompt": "Подписка продлена. Если устройства не продлевались вместе с ней, текущая докупка действует до своей даты окончания.",
"wa_hwid_devices_renewal_unavailable": "Сейчас докуплено +{count} устройств до {date}. Для выбранного способа оплаты или тарифа продление этих устройств недоступно.",
"wa_no_hwid_device_options": "Нет доступных пакетов устройств",
"wa_device_topup_options_failed": "Не удалось загрузить пакеты устройств",
"admin_nav_overview": "Обзор",
@@ -1392,6 +1404,9 @@
"admin_user_btn_reset_trial": "Сбросить триал",
"admin_user_label_extend": "Продлить подписку",
"admin_user_label_extend_days": "Дней",
"admin_user_extend_hwid_devices": "Продлить также +{count} HWID устройств",
"admin_user_extend_hwid_devices_aria": "Продлить докупленные HWID устройства",
"admin_user_extend_hwid_devices_hint": "Срок действующих докупок устройств увеличится на те же дни.",
"admin_user_btn_extend": "Продлить",
"admin_user_label_telegram_msg": "Сообщение в Telegram",
"admin_user_hint_telegram_msg": "Поддерживается HTML-разметка Telegram",