Общая структура
Стек технологий
| Компонент | Технология |
|---|---|
| Язык | Python 3.13 |
| Telegram фреймворк | aiogram 3.x |
| ORM | SQLAlchemy 2.x (async) |
| База данных | PostgreSQL |
| REST API | FastAPI |
| Миграции | Alembic |
| Кэширование | Redis (опционально) |
| Линтер | ruff |
Ключевые паттерны
Регистрация обработчиков
Каждый модуль обработчиков экспортирует функциюregister_handlers(router):
app/bot.py.
Сессии базы данных
Асинхронные контекстные менеджеры:Конфигурация
Все настройки — через переменные окружения. КлассSettings в app/config.py загружает и валидирует их:
Платёжная система
Модульные адаптеры с единым интерфейсом. Каждый провайдер — отдельный файл вapp/services/payment/.
Единый веб-сервер
FastAPI сервер на порту 8080 обслуживает:| Путь | Назначение |
|---|---|
/webhook | Telegram webhook |
/yookassa-webhook | YooKassa webhook |
/cryptobot-webhook | CryptoBot webhook |
/api/* | Cabinet API |
/health | Health check |
