feat(webapp): expose LAVA settings in admin UI and demo

Add RU/EN admin locale strings for the LAVA settings subsection and
field labels, regenerate the demo settings manifest snapshot, and list
LAVA among the demo dataset payment methods.
This commit is contained in:
3252a8
2026-06-10 23:32:20 +03:00
parent bb844869ee
commit bd1cfd1d63
4 changed files with 419 additions and 1 deletions
+5
View File
@@ -484,6 +484,11 @@ export const DEMO_DATASET = {
name: "PayKilla",
icon: "Bitcoin",
},
{
id: "lava",
name: "LAVA",
icon: "CreditCard",
},
],
referral: {
code: "DEMO0001",
@@ -670,7 +670,7 @@
"section_order": 4,
"subsection": "common",
"label": "Порядок методов оплаты",
"description": "Через запятую: severpay,freekassa,yookassa,platega,stars,cryptopay,heleket,paykilla",
"description": "Через запятую: severpay,freekassa,yookassa,platega,stars,cryptopay,heleket,paykilla,lava",
"i18n_label_key": "admin_settings_field_payment_methods_order_label",
"i18n_description_key": "admin_settings_field_payment_methods_order_description",
"i18n_subsection_key": "admin_settings_subsection_common",
@@ -4598,6 +4598,393 @@
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_ENABLED",
"type": "bool",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Включена",
"description": "",
"i18n_label_key": "admin_settings_field_lava_enabled_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"mutually_exclusive_key": "LAVA_ADMIN_ONLY_ENABLED",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_SHOP_ID",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Shop ID",
"description": "",
"i18n_label_key": "admin_settings_field_lava_shop_id_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_SECRET_KEY",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Secret key",
"description": "Signs outgoing API requests (HMAC-SHA256 in the Signature header).",
"i18n_label_key": "admin_settings_field_lava_secret_key_label",
"i18n_description_key": "admin_settings_field_lava_secret_key_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": true,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"has_value": false,
"webhook_base_url_configured": false
},
{
"key": "LAVA_WEBHOOK_SECRET",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Webhook secret",
"description": "The shop's additional key used to verify webhook signatures. Leave empty to reuse the secret key.",
"i18n_label_key": "admin_settings_field_lava_webhook_secret_label",
"i18n_description_key": "admin_settings_field_lava_webhook_secret_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": true,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"has_value": false,
"webhook_base_url_configured": false
},
{
"key": "LAVA_BASE_URL",
"type": "url",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Base URL",
"description": "",
"i18n_label_key": "admin_settings_field_lava_base_url_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_lava_base_url_placeholder",
"placeholder": "https://api.lava.ru",
"optional": true,
"secret": false,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_RETURN_URL",
"type": "url",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Return URL",
"description": "",
"i18n_label_key": "admin_settings_field_lava_return_url_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_LIFETIME_MINUTES",
"type": "int",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Payment link lifetime (minutes)",
"description": "1..7200; leave empty for the LAVA default.",
"i18n_label_key": "admin_settings_field_lava_lifetime_minutes_label",
"i18n_description_key": "admin_settings_field_lava_lifetime_minutes_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"min": 1,
"max": 7200,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_INCLUDE_SERVICES",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Payment services filter",
"description": "Comma-separated LAVA pay services to show on the payment page (e.g. card,sbp). Empty shows everything enabled for the shop.",
"i18n_label_key": "admin_settings_field_lava_include_services_label",
"i18n_description_key": "admin_settings_field_lava_include_services_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_lava_include_services_placeholder",
"placeholder": "card,sbp",
"optional": true,
"secret": false,
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_WEBAPP_LABEL_RU",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "WebApp button text (RU)",
"description": "Custom Russian text shown in the Web App payment method button.",
"i18n_label_key": "admin_settings_field_payment_lava_webapp_label_ru_label",
"i18n_description_key": "admin_settings_field_payment_lava_webapp_label_ru_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_webapp_label_ru_placeholder",
"placeholder": "LAVA",
"optional": true,
"secret": false,
"default": "LAVA",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_WEBAPP_LABEL_EN",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "WebApp button text (EN)",
"description": "Custom English text shown in the Web App payment method button.",
"i18n_label_key": "admin_settings_field_payment_lava_webapp_label_en_label",
"i18n_description_key": "admin_settings_field_payment_lava_webapp_label_en_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_webapp_label_en_placeholder",
"placeholder": "LAVA",
"optional": true,
"secret": false,
"default": "LAVA",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_WEBAPP_ICON",
"type": "icon",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "WebApp button icon",
"description": "Lucide icon name rendered inside the Web App payment method button.",
"i18n_label_key": "admin_settings_field_payment_lava_webapp_icon_label",
"i18n_description_key": "admin_settings_field_payment_lava_webapp_icon_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_webapp_icon_placeholder",
"placeholder": "CreditCard",
"optional": true,
"secret": false,
"default": "CreditCard",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_TELEGRAM_LABEL_RU",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Telegram button text (RU)",
"description": "Custom Russian text shown in Telegram bot payment buttons.",
"i18n_label_key": "admin_settings_field_payment_lava_telegram_label_ru_label",
"i18n_description_key": "admin_settings_field_payment_lava_telegram_label_ru_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_telegram_label_ru_placeholder",
"placeholder": "LAVA",
"optional": true,
"secret": false,
"default": "LAVA",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_TELEGRAM_LABEL_EN",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Telegram button text (EN)",
"description": "Custom English text shown in Telegram bot payment buttons.",
"i18n_label_key": "admin_settings_field_payment_lava_telegram_label_en_label",
"i18n_description_key": "admin_settings_field_payment_lava_telegram_label_en_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_telegram_label_en_placeholder",
"placeholder": "LAVA",
"optional": true,
"secret": false,
"default": "LAVA",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYMENT_LAVA_TELEGRAM_EMOJI",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Telegram button emoji",
"description": "Emoji prepended to the Telegram bot payment button when customized.",
"i18n_label_key": "admin_settings_field_payment_lava_telegram_emoji_label",
"i18n_description_key": "admin_settings_field_payment_lava_telegram_emoji_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": "admin_settings_field_payment_lava_telegram_emoji_placeholder",
"placeholder": "💳",
"optional": true,
"secret": false,
"default": "💳",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "LAVA_ADMIN_ONLY_ENABLED",
"type": "bool",
"section": "payments",
"section_order": 4,
"subsection": "LAVA",
"label": "Only for admins",
"description": "Shows this payment method only to users from ADMIN_IDS. Webhooks and provider services remain active for admin test payments.",
"i18n_label_key": "admin_settings_provider_admin_only_label",
"i18n_description_key": "admin_settings_provider_admin_only_description",
"i18n_subsection_key": "admin_settings_subsection_lava",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"mutually_exclusive_key": "LAVA_ENABLED",
"provider_id": "lava",
"provider_label": "LAVA",
"webhook_provider_id": "lava",
"webhook_path": "/webhook/lava",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
}
]
},