diff --git a/handlers/users.py b/handlers/users.py
index cd6137e..92844e7 100644
--- a/handlers/users.py
+++ b/handlers/users.py
@@ -38,8 +38,46 @@ async def cmd_start(message: Message):
user = result.scalar_one_or_none()
if not user:
- # Пользователя нет в базе - ИГНОР!
- logger.info(f'Пользователь {user_id} не в базе - игнорируем /start')
+ # НОВЫЙ пользователь - добавляем в базу и приветствуем!
+ user = User(
+ user_id=user_id,
+ username=message.from_user.username,
+ first_name=message.from_user.first_name,
+ last_name=message.from_user.last_name,
+ )
+ session.add(user)
+ await session.commit()
+
+ logger.info(f'Новый пользователь {user_id} добавлен в базу')
+
+ # Приветственное сообщение
+ header = '🔴 ДОБРО ПОЖАЛОВАТЬ'
+
+ welcome_text = f'''{header}
+
+👋 Привет, {message.from_user.first_name}!
+
+{get_level_badge("unverified")}
+
+Я — домовой бот нашего дома.
+
+⚠️ ВАЖНО:
+Для полного доступа пройдите верификацию!
+
+📝 Как пройти верификацию:
+
+1️⃣ Отправьте номер квартиры
+Примеры: 45, 12А, 100-1
+
+2️⃣ (опционально) Телефон
+Пример: +79991234567
+
+3️⃣ Дождитесь подтверждения
+Админ проверит и подтвердит.
+
+После верификации откроются все функции! 🎉'''
+
+ await message.answer(welcome_text, parse_mode='HTML', reply_markup=get_unverified_menu())
return
# Пользователь в базе - обновляем имя
@@ -702,26 +740,31 @@ async def cb_thank_user_menu(callback: CallbackQuery):
await callback.answer()
async with AsyncSessionLocal() as session:
- # Показываем активных пользователей (по количеству сообщений)
- stmt = select(User).order_by(desc(User.message_count)).limit(100)
+ # Показываем ВСЕХ верифицированных пользователей
+ stmt = select(User).where(User.verified == True).order_by(desc(User.message_count))
result = await session.execute(stmt)
users = list(result.scalars().all())
-
+
if not users:
- await callback.message.answer('📭 Пользователей нет')
+ await callback.message.answer('📭 Нет верифицированных пользователей')
return
-
+
# Сохраняем список для сессии
_thank_pages[callback.from_user.id] = {
'users': users,
'page': 0
}
+ total_pages = (len(users) + 19) // 20
+
await callback.message.answer(
- '🙏 Поблагодарить пользователя\n\n'
- 'Выберите пользователя которому хотите сказать спасибо:\n'
- '(+10 к рейтингу)',
- reply_markup=get_thank_user_keyboard(users, page=0),
+ f'🙏 Поблагодарить пользователя\n\n'
+ f'Всего верифицированных: {len(users)}\n'
+ f'Страница 1 из {total_pages}\n\n'
+ f'Выберите пользователя:\n'
+ f'(+10 к рейтингу)\n\n'
+ f'💡 Совет: Используйте /thank @username для быстрого поиска!',
+ reply_markup=get_thank_user_keyboard(users, page=0, page_size=20),
parse_mode='HTML'
)