init commit

This commit is contained in:
2025-12-10 22:09:31 +09:00
commit b79adf1c69
361 changed files with 47414 additions and 0 deletions

View 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)

View 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
View 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)

View 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
View 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)