diff --git a/database.py b/database.py
index 339edc47..70372859 100644
--- a/database.py
+++ b/database.py
@@ -149,24 +149,25 @@ async def add_referral(referred_tg_id: int, referrer_tg_id: int):
async def handle_referral_on_balance_update(tg_id: int, amount: float):
conn = await asyncpg.connect(DATABASE_URL)
-
+
# Проверяем, есть ли реферал в таблице
referral = await conn.fetchrow('''
- SELECT referrer_tg_id, reward_issued FROM referrals WHERE referred_tg_id = $1
+ SELECT referrer_tg_id FROM referrals WHERE referred_tg_id = $1
''', tg_id)
-
- if referral and not referral['reward_issued'] and amount > 0:
+
+ if referral:
referrer_tg_id = referral['referrer_tg_id']
# Начисляем бонус (25% от платежа) пригласившему
bonus = amount * 0.25 # 25% от платежа
await update_balance(referrer_tg_id, bonus)
- # Обновляем статус бонуса как выданный
+ # Записываем информацию о начислении бонуса
await conn.execute('''
- UPDATE referrals SET reward_issued = TRUE WHERE referred_tg_id = $1
- ''', tg_id)
-
+ INSERT INTO referral_rewards (referrer_tg_id, referred_tg_id, amount)
+ VALUES ($1, $2, $3)
+ ''', referrer_tg_id, tg_id, bonus)
+
await conn.close()
async def get_referral_stats(referrer_tg_id: int):
diff --git a/handlers/key_management.py b/handlers/key_management.py
index b7e5fbdc..118d6949 100644
--- a/handlers/key_management.py
+++ b/handlers/key_management.py
@@ -148,6 +148,9 @@ async def handle_text(message: Message, state: FSMContext):
if current_state == Form.waiting_for_key_name.state:
await handle_key_name_input(message, state)
+ else:
+ await start_command(message)
+
async def handle_key_name_input(message: Message, state: FSMContext):
tg_id = message.from_user.id
key_name = sanitize_key_name(message.text)
diff --git a/handlers/profile.py b/handlers/profile.py
index 78b7e6bb..a86c7890 100644
--- a/handlers/profile.py
+++ b/handlers/profile.py
@@ -59,7 +59,6 @@ async def process_callback_view_profile(callback_query: types.CallbackQuery, sta
await callback_query.answer()
-# Хендлер для кнопки "Пригласить"
@router.callback_query(lambda c: c.data == 'invite')
async def invite_handler(callback_query: types.CallbackQuery):
tg_id = callback_query.from_user.id
@@ -68,7 +67,8 @@ async def invite_handler(callback_query: types.CallbackQuery):
referral_stats = await get_referral_stats(tg_id)
invite_message = (
- f"👥 Ваша реферальная ссылка: {referral_link}\n\n"
+ f"👥 Ваша реферальная ссылка: {referral_link}\n\n"
+ f"Пригласите реферала и получайте 25% с его каждого пополнения!\n\n"
f"🔹 Всего приглашено: {referral_stats['total_referrals']} пользователей\n"
f"🔹 Активных рефералов: {referral_stats['active_referrals']}"
)
diff --git a/handlers/start.py b/handlers/start.py
index 1faa3e92..9e528028 100644
--- a/handlers/start.py
+++ b/handlers/start.py
@@ -45,9 +45,11 @@ async def send_welcome_message(chat_id: int):
@router.message(Command('start'))
async def start_command(message: Message):
+ print(f"Received start command with text: {message.text}") # Отладочный лог
if 'referral_' in message.text:
referrer_tg_id = int(message.text.split('referral_')[1])
-
+ print(f"Referral ID: {referrer_tg_id}") # Отладочный лог
+ # Остальная часть кода...
if not await check_connection_exists(message.from_user.id):
await add_connection(message.from_user.id)
@@ -56,8 +58,7 @@ async def start_command(message: Message):
await message.answer("Вас пригласил друг, добро пожаловать!")
else:
await message.answer("Вы уже зарегистрированы в системе!")
- else:
- await send_welcome_message(message.chat.id)
+ await send_welcome_message(message.chat.id)
@router.callback_query(lambda c: c.data == 'about_vpn')
async def handle_about_vpn(callback_query: CallbackQuery):