fix: configure referral bonuses per tariff period
This commit is contained in:
@@ -501,7 +501,13 @@
|
||||
<AdminButton
|
||||
size="sm"
|
||||
onclick={() =>
|
||||
tariffsStore.addDraftRow("periodRows", { months: 1, rub: "", stars: "" })}
|
||||
tariffsStore.addDraftRow("periodRows", {
|
||||
months: 1,
|
||||
rub: "",
|
||||
stars: "",
|
||||
referral_inviter: "",
|
||||
referral_referee: "",
|
||||
})}
|
||||
>
|
||||
<Plus size={13} />
|
||||
{at("tariff_btn_period", {}, "Период")}
|
||||
@@ -517,14 +523,16 @@
|
||||
</p>
|
||||
{:else}
|
||||
<div class="admin-row-editor">
|
||||
<div class="admin-row-editor-line admin-row-editor-4 admin-row-editor-header">
|
||||
<div class="admin-row-editor-line admin-row-editor-6 admin-row-editor-header">
|
||||
<span>{at("tariff_col_period_months", {}, "Срок, мес.")}</span>
|
||||
<span>{at("tariff_col_price_rub", {}, "Цена, ₽")}</span>
|
||||
<span>{at("tariff_col_price_stars_full", {}, "Цена, ⭐ Stars")}</span>
|
||||
<span>{at("tariff_col_ref_inviter", {}, "Бонус приглашающему")}</span>
|
||||
<span>{at("tariff_col_ref_referee", {}, "Бонус приглашённому")}</span>
|
||||
<span></span>
|
||||
</div>
|
||||
{#each tariffDraft.periodRows as row, index}
|
||||
<div class="admin-row-editor-line admin-row-editor-4">
|
||||
<div class="admin-row-editor-line admin-row-editor-6">
|
||||
<input
|
||||
class="input"
|
||||
type="number"
|
||||
@@ -551,6 +559,24 @@
|
||||
bind:value={row.stars}
|
||||
aria-label={at("tariff_label_price_stars", {}, "Цена в Telegram Stars")}
|
||||
/>
|
||||
<input
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
placeholder="3"
|
||||
bind:value={row.referral_inviter}
|
||||
aria-label={at("tariff_label_ref_inviter", {}, "Бонус приглашающему")}
|
||||
/>
|
||||
<input
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
placeholder="1"
|
||||
bind:value={row.referral_referee}
|
||||
aria-label={at("tariff_label_ref_referee", {}, "Бонус приглашённому")}
|
||||
/>
|
||||
<AdminButton
|
||||
size="sm"
|
||||
variant="danger"
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user