feat(referral): add referral system with withdrawals

This commit is contained in:
2026-07-18 10:58:14 +05:00
parent 5e5bab91f2
commit a04734b8a7
17 changed files with 1750 additions and 60 deletions
+34
View File
@@ -20,6 +20,17 @@ def close_finl() -> InlineKeyboardMarkup:
# Рассылка
def referral_withdrawal_actions_finl(withdrawal_id: int) -> InlineKeyboardMarkup:
keyboard = InlineKeyboardBuilder()
keyboard.row(
ikb("✅ Выполнено", data=f"referral_withdrawal_complete:{withdrawal_id}"),
ikb("❌ Отклонить", data=f"referral_withdrawal_reject:{withdrawal_id}"),
)
return keyboard.as_markup()
def mail_confirm_finl() -> InlineKeyboardMarkup:
keyboard = InlineKeyboardBuilder()
@@ -207,6 +218,17 @@ async def settings_finl() -> InlineKeyboardMarkup:
else:
method_prod_kb = ikb("На каждой строке", data="settings_edit_method_prod:skip")
# Бонус за приглашение
referral_bonus_kb = ikb(
f"{get_settings.referral_bonus_rub}", data="settings_edit_referral_bonus"
)
# Доход с пополнений
deposit_percent_kb = ikb(
f"{get_settings.referral_refill_percent}%",
data="settings_edit_referral_percent",
)
keyboard.row(
ikb("❔ FAQ", data="..."),
faq_kb,
@@ -222,6 +244,12 @@ async def settings_finl() -> InlineKeyboardMarkup:
).row(
ikb("🎁 Метод добавления", data="..."),
method_prod_kb,
).row(
ikb("🤝 Бонус за приглашение", data="..."),
referral_bonus_kb,
).row(
ikb("📈 Доход с пополнений", data="..."),
deposit_percent_kb,
)
return keyboard.as_markup()
@@ -236,6 +264,7 @@ async def settings_status_finl() -> InlineKeyboardMarkup:
status_work_kb = ikb("Включены ✅", data="settings_status_work:False")
status_buy_kb = ikb("Включены ✅", data="settings_status_buy:False")
status_refill_kb = ikb("Включены ✅", data="settings_status_refill:False")
status_referral_kb = ikb("Включена ✅", data="settings_status_referral:False")
notification_buy_kb = ikb("Включены 🔔", data="settings_notification_buy:False")
notification_refill_kb = ikb(
"Включены 🔔", data="settings_notification_refill:False"
@@ -247,6 +276,8 @@ async def settings_status_finl() -> InlineKeyboardMarkup:
status_work_kb = ikb("Выключены ❌", data="settings_status_work:True")
if get_settings.status_refill == "False":
status_refill_kb = ikb("Выключены ❌", data="settings_status_refill:True")
if get_settings.status_referral == "False":
status_referral_kb = ikb("Выключена ❌", data="settings_status_referral:True")
if get_settings.notification_buy == "False":
notification_buy_kb = ikb("Выключены 🔕", data="settings_notification_buy:True")
if get_settings.notification_refill == "False":
@@ -263,6 +294,9 @@ async def settings_status_finl() -> InlineKeyboardMarkup:
).row(
ikb("🎁 Покупки", data="..."),
status_buy_kb,
).row(
ikb("🤝 Реферальная система", data="..."),
status_referral_kb,
).row(
ikb("📢 Увед. о покупках", data="..."),
notification_buy_kb,
+35
View File
@@ -33,6 +33,41 @@ def user_support_finl(support_login: str) -> InlineKeyboardMarkup:
return keyboard.as_markup()
def referral_menu_finl(referral_link: str) -> InlineKeyboardMarkup:
keyboard = InlineKeyboardBuilder()
keyboard.row(
ikb("💸 Перевести на основной баланс", data="referral_transfer"),
).row(
ikb("📥 Вывести средства", data="referral_withdrawal"),
)
keyboard.row(ikb("▪️ Скопировать ссылку", copy=referral_link))
return keyboard.as_markup()
def referral_transfer_method_finl() -> InlineKeyboardMarkup:
keyboard = InlineKeyboardBuilder()
keyboard.row(ikb("🔙 Вернуться", data="referral_menu"))
return keyboard.as_markup()
def referral_withdrawal_method_finl() -> InlineKeyboardMarkup:
keyboard = InlineKeyboardBuilder()
keyboard.row(
ikb("🔷 CryptoBot", data="referral_withdrawal_method:Cryptobot"),
).row(
ikb("🟢 Lolzteam", data="referral_withdrawal_method:Lolzteam"),
).row(
ikb("🔙 Вернуться", data="referral_menu"),
)
return keyboard.as_markup()
################################################################################
################################### ПЛАТЕЖИ ####################################
# Выбор способа пополнения
+2
View File
@@ -14,6 +14,8 @@ def menu_frep(user_id: int) -> ReplyKeyboardMarkup:
rkb("🎁 Купить"),
rkb("👤 Профиль"),
rkb("🧮 Наличие товаров"),
).row(
rkb("🤝 Реферальная система"),
).row(
rkb("☎️ Поддержка"),
rkb("❔ FAQ"),