2025-12-22 21:17:17 +03:00

60 lines
2.7 KiB
Python

from aiogram import Router, types
from aiogram.filters import Command
from aiogram.types import Message
from datetime import datetime
from tg_bot.config.settings import settings
from tg_bot.infrastructure.database.database import AsyncSessionLocal
from tg_bot.domain.services.user_service import UserService
router = Router()
@router.message(Command("start"))
async def cmd_start(message: Message):
user_id = message.from_user.id
username = message.from_user.username or ""
first_name = message.from_user.first_name or ""
last_name = message.from_user.last_name or ""
async with AsyncSessionLocal() as session:
try:
user_service = UserService(session)
existing_user = await user_service.get_user_by_telegram_id(user_id)
user = await user_service.get_or_create_user(
user_id,
username,
first_name,
last_name
)
if not existing_user:
print(f"Новый пользователь: {user_id}")
except Exception as e:
print(f"Ошибка сохранения пользователя: {e}")
await session.rollback()
welcome_text = (
f"<b>Привет, {first_name}!</b>\n\n"
f"Я <b>VibeLawyerBot</b> - ваш помощник в юридических вопросах.\n\n"
f"<b>Как я работаю:</b>\n"
f"1. Администратор загружает документы в коллекции\n"
f"2. Вы задаёте вопрос на любую юридическую тему\n"
f"3. Я ищу ответы в ваших коллекциях документов\n"
f"4. Даю развернутый ответ на основе найденных документов\n"
f"5. Первые {settings.FREE_QUESTIONS_LIMIT} вопросов - бесплатно\n"
f"6. Для продолжения нужна подписка (/buy)\n\n"
f"<b>Основные команды:</b>\n"
f"• /help - подробная помощь\n"
f"• /buy - купить подписку\n"
f"• /stats - ваша статистика\n"
f"• /mypayments - история платежей\n"
f"• /mycollections - мои коллекции документов\n"
f"• /search - поиск в коллекции\n\n"
f"<b>Готовы начать?</b> Просто напишите ваш вопрос!\n\n"
f"<i>Для получения полного доступа используйте /buy</i>"
)
await message.answer(welcome_text, parse_mode="HTML")