feat: add telegram guardrails for trials and referrals

This commit is contained in:
3252a8
2026-06-04 10:51:58 +03:00
parent 33707b7257
commit 2ad6b14513
26 changed files with 1944 additions and 125 deletions
@@ -3842,70 +3842,6 @@
}
]
},
{
"id": "referral",
"order": 6,
"fields": [
{
"key": "REFERRAL_ONE_BONUS_PER_REFEREE",
"type": "bool",
"section": "referral",
"section_order": 6,
"subsection": null,
"label": "Один бонус на приглашённого",
"description": "",
"i18n_label_key": "admin_settings_field_referral_one_bonus_per_referee_label",
"i18n_description_key": null,
"i18n_subsection_key": null,
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "REFERRAL_WELCOME_BONUS_DAYS",
"type": "int",
"section": "referral",
"section_order": 6,
"subsection": null,
"label": "Приветственный бонус (дней)",
"description": "",
"i18n_label_key": "admin_settings_field_referral_welcome_bonus_days_label",
"i18n_description_key": null,
"i18n_subsection_key": null,
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"min": 0,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "LEGACY_REFS",
"type": "bool",
"section": "referral",
"section_order": 6,
"subsection": null,
"label": "Поддержка старых ref-ссылок",
"description": "",
"i18n_label_key": "admin_settings_field_legacy_refs_label",
"i18n_description_key": null,
"i18n_subsection_key": null,
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
}
]
},
{
"id": "notifications",
"order": 7,
@@ -5215,6 +5151,25 @@
"overridden": false,
"updated_at": null
},
{
"key": "TRIAL_WITHOUT_TELEGRAM_ENABLED",
"type": "bool",
"section": "pricing",
"section_order": 11,
"subsection": "trial",
"label": "Триал без Telegram",
"description": "Если выключено, email-only пользователю нужно привязать Telegram для активации триала. Disposable email домены всегда требуют Telegram.",
"i18n_label_key": "admin_settings_field_trial_without_telegram_enabled_label",
"i18n_description_key": "admin_settings_field_trial_without_telegram_enabled_description",
"i18n_subsection_key": "admin_settings_subsection_trial",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": false,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "TRIAL_SQUAD_UUIDS",
"type": "string",
@@ -5233,6 +5188,102 @@
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "REFERRAL_ONE_BONUS_PER_REFEREE",
"type": "bool",
"section": "pricing",
"section_order": 11,
"subsection": "referral",
"label": "Один бонус на приглашённого",
"description": "",
"i18n_label_key": "admin_settings_field_referral_one_bonus_per_referee_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_referral",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "REFERRAL_WELCOME_BONUS_DAYS",
"type": "int",
"section": "pricing",
"section_order": 11,
"subsection": "referral",
"label": "Приветственный бонус (дней)",
"description": "",
"i18n_label_key": "admin_settings_field_referral_welcome_bonus_days_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_referral",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"min": 0,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "REFERRAL_WELCOME_BONUS_WITHOUT_TELEGRAM_ENABLED",
"type": "bool",
"section": "pricing",
"section_order": 11,
"subsection": "referral",
"label": "Приветственный бонус без Telegram",
"description": "Если выключено, email-only пользователю нужно привязать Telegram для получения реферального приветственного бонуса. Disposable email домены всегда требуют Telegram.",
"i18n_label_key": "admin_settings_field_referral_welcome_bonus_without_telegram_enabled_label",
"i18n_description_key": "admin_settings_field_referral_welcome_bonus_without_telegram_enabled_description",
"i18n_subsection_key": "admin_settings_subsection_referral",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "LEGACY_REFS",
"type": "bool",
"section": "pricing",
"section_order": 11,
"subsection": "referral",
"label": "Поддержка старых ref-ссылок",
"description": "",
"i18n_label_key": "admin_settings_field_legacy_refs_label",
"i18n_description_key": null,
"i18n_subsection_key": "admin_settings_subsection_referral",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{
"key": "DISPOSABLE_EMAIL_DOMAINS",
"type": "text",
"section": "pricing",
"section_order": 11,
"subsection": "referral",
"label": "Disposable email домены",
"description": "Домены по одному на строку или через запятую. Пользователи без Telegram с такими email не смогут получить trial или реферальный приветственный бонус.",
"i18n_label_key": "admin_settings_field_disposable_email_domains_label",
"i18n_description_key": "admin_settings_field_disposable_email_domains_description",
"i18n_subsection_key": "admin_settings_subsection_referral",
"i18n_placeholder_key": "admin_settings_field_disposable_email_domains_placeholder",
"placeholder": "mailinator.com\ntemp-mail.org\nyopmail.com",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
}
]
},