61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
"""Start and help handlers"""
|
|
|
|
from aiogram import Router, F
|
|
from aiogram.filters import CommandStart
|
|
from aiogram.types import Message
|
|
from sqlalchemy.orm import Session
|
|
from app.db.database import SessionLocal
|
|
from app.db.repositories import UserRepository, FamilyRepository
|
|
from app.bot.keyboards import main_menu_keyboard
|
|
|
|
|
|
router = Router()
|
|
|
|
|
|
@router.message(CommandStart())
|
|
async def cmd_start(message: Message):
|
|
"""Handle /start command"""
|
|
user_repo = UserRepository(SessionLocal())
|
|
|
|
# Create or update user
|
|
user = user_repo.get_or_create(
|
|
telegram_id=message.from_user.id,
|
|
username=message.from_user.username,
|
|
first_name=message.from_user.first_name,
|
|
last_name=message.from_user.last_name,
|
|
)
|
|
|
|
welcome_text = (
|
|
"👋 Добро пожаловать в Finance Bot!\n\n"
|
|
"Я помогу вам управлять семейными финансами:\n"
|
|
"💰 Отслеживать доходы и расходы\n"
|
|
"👨👩👧👦 Управлять семейной группой\n"
|
|
"📊 Видеть аналитику\n"
|
|
"🎯 Ставить финансовые цели\n\n"
|
|
"Выберите действие:"
|
|
)
|
|
|
|
await message.answer(welcome_text, reply_markup=main_menu_keyboard())
|
|
|
|
|
|
@router.message(CommandStart())
|
|
async def cmd_help(message: Message):
|
|
"""Handle /help command"""
|
|
help_text = (
|
|
"📚 **Справка по командам:**\n\n"
|
|
"/start - Главное меню\n"
|
|
"/help - Эта справка\n"
|
|
"/account - Мои счета\n"
|
|
"/transaction - Новая операция\n"
|
|
"/budget - Управление бюджетом\n"
|
|
"/analytics - Аналитика\n"
|
|
"/family - Управление семьей\n"
|
|
"/settings - Параметры\n"
|
|
)
|
|
await message.answer(help_text)
|
|
|
|
|
|
def register_start_handlers(dp):
|
|
"""Register start handlers"""
|
|
dp.include_router(router)
|