init commit
This commit is contained in:
14
app/bot/handlers/__init__.py
Normal file
14
app/bot/handlers/__init__.py
Normal file
@@ -0,0 +1,14 @@
|
||||
"""Bot handlers"""
|
||||
|
||||
from app.bot.handlers.start import register_start_handlers
|
||||
from app.bot.handlers.user import register_user_handlers
|
||||
from app.bot.handlers.family import register_family_handlers
|
||||
from app.bot.handlers.transaction import register_transaction_handlers
|
||||
|
||||
|
||||
def register_handlers(dp):
|
||||
"""Register all bot handlers"""
|
||||
register_start_handlers(dp)
|
||||
register_user_handlers(dp)
|
||||
register_family_handlers(dp)
|
||||
register_transaction_handlers(dp)
|
||||
18
app/bot/handlers/family.py
Normal file
18
app/bot/handlers/family.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""Family-related handlers"""
|
||||
|
||||
from aiogram import Router
|
||||
from aiogram.types import Message
|
||||
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.message()
|
||||
async def family_menu(message: Message):
|
||||
"""Handle family menu interactions"""
|
||||
pass
|
||||
|
||||
|
||||
def register_family_handlers(dp):
|
||||
"""Register family handlers"""
|
||||
dp.include_router(router)
|
||||
60
app/bot/handlers/start.py
Normal file
60
app/bot/handlers/start.py
Normal file
@@ -0,0 +1,60 @@
|
||||
"""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)
|
||||
18
app/bot/handlers/transaction.py
Normal file
18
app/bot/handlers/transaction.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""Transaction-related handlers"""
|
||||
|
||||
from aiogram import Router
|
||||
from aiogram.types import Message
|
||||
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.message()
|
||||
async def transaction_menu(message: Message):
|
||||
"""Handle transaction operations"""
|
||||
pass
|
||||
|
||||
|
||||
def register_transaction_handlers(dp):
|
||||
"""Register transaction handlers"""
|
||||
dp.include_router(router)
|
||||
18
app/bot/handlers/user.py
Normal file
18
app/bot/handlers/user.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""User-related handlers"""
|
||||
|
||||
from aiogram import Router
|
||||
from aiogram.types import Message
|
||||
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.message()
|
||||
async def user_menu(message: Message):
|
||||
"""Handle user menu interactions"""
|
||||
pass
|
||||
|
||||
|
||||
def register_user_handlers(dp):
|
||||
"""Register user handlers"""
|
||||
dp.include_router(router)
|
||||
Reference in New Issue
Block a user