fix: configure referral bonuses per tariff period

This commit is contained in:
3252a8
2026-05-29 22:30:31 +03:00
parent cab963dcdc
commit 6803c7801f
23 changed files with 604 additions and 90 deletions
@@ -36,10 +36,38 @@
const TRIAL_RESET_KEYS = ["TRIAL_TRAFFIC_STRATEGY"];
const TRIAL_SQUAD_KEYS = ["TRIAL_SQUAD_UUIDS"];
const LEGACY_PERIODS = [
["1", "MONTH_1_ENABLED", "RUB_PRICE_1_MONTH", "STARS_PRICE_1_MONTH"],
["3", "MONTH_3_ENABLED", "RUB_PRICE_3_MONTHS", "STARS_PRICE_3_MONTHS"],
["6", "MONTH_6_ENABLED", "RUB_PRICE_6_MONTHS", "STARS_PRICE_6_MONTHS"],
["12", "MONTH_12_ENABLED", "RUB_PRICE_12_MONTHS", "STARS_PRICE_12_MONTHS"],
[
"1",
"MONTH_1_ENABLED",
"RUB_PRICE_1_MONTH",
"STARS_PRICE_1_MONTH",
"REFERRAL_BONUS_DAYS_INVITER_1_MONTH",
"REFERRAL_BONUS_DAYS_REFEREE_1_MONTH",
],
[
"3",
"MONTH_3_ENABLED",
"RUB_PRICE_3_MONTHS",
"STARS_PRICE_3_MONTHS",
"REFERRAL_BONUS_DAYS_INVITER_3_MONTHS",
"REFERRAL_BONUS_DAYS_REFEREE_3_MONTHS",
],
[
"6",
"MONTH_6_ENABLED",
"RUB_PRICE_6_MONTHS",
"STARS_PRICE_6_MONTHS",
"REFERRAL_BONUS_DAYS_INVITER_6_MONTHS",
"REFERRAL_BONUS_DAYS_REFEREE_6_MONTHS",
],
[
"12",
"MONTH_12_ENABLED",
"RUB_PRICE_12_MONTHS",
"STARS_PRICE_12_MONTHS",
"REFERRAL_BONUS_DAYS_INVITER_12_MONTHS",
"REFERRAL_BONUS_DAYS_REFEREE_12_MONTHS",
],
];
const LEGACY_TARIFF_SETTING_KEYS = [
...LEGACY_PERIODS.flatMap((row) => row.slice(1)),
@@ -794,8 +822,10 @@
<span>{at("tariffs_legacy_enabled", {}, "Enabled")}</span>
<span>{at("payment_rub", {}, "RUB")}</span>
<span>{at("payment_stars", {}, "Stars")}</span>
<span>{at("tariffs_legacy_ref_inviter", {}, "Inviter")}</span>
<span>{at("tariffs_legacy_ref_referee", {}, "Friend")}</span>
</div>
{#each LEGACY_PERIODS as [months, enabledKey, rubKey, starsKey]}
{#each LEGACY_PERIODS as [months, enabledKey, rubKey, starsKey, inviterKey, refereeKey]}
<div class="admin-legacy-tariff-row">
<strong>{months} {at("months_short", {}, "mo")}</strong>
<div class="admin-setting-switch">
@@ -823,6 +853,22 @@
value={valueForKey(starsKey, settingsDirty, settingsFieldMap)}
oninput={(event) => setSetting(starsKey, event.currentTarget.value)}
/>
<input
class="input"
type="number"
min="0"
step="1"
value={valueForKey(inviterKey, settingsDirty, settingsFieldMap)}
oninput={(event) => setSetting(inviterKey, event.currentTarget.value)}
/>
<input
class="input"
type="number"
min="0"
step="1"
value={valueForKey(refereeKey, settingsDirty, settingsFieldMap)}
oninput={(event) => setSetting(refereeKey, event.currentTarget.value)}
/>
</div>
{/each}
</div>