from fastapi import FastAPI from instance.configdb import init_postgresql, init_mongodb, close_connections from app.routes import user_router, payment_router, subscription_router from app.services.db_manager import DatabaseManager from instance.configdb import get_postgres_session # Создаём приложение FastAPI app = FastAPI() # Инициализация менеджера базы данных database_manager = DatabaseManager(session_generator=get_postgres_session) # Событие при старте приложения @app.on_event("startup") async def startup(): """ Инициализация подключения к базам данных. """ await init_postgresql() await init_mongodb() # Событие при завершении работы приложения @app.on_event("shutdown") async def shutdown(): """ Закрытие соединений с базами данных. """ await close_connections() # Подключение маршрутов app.include_router(user_router, prefix="/api") app.include_router(payment_router, prefix="/api") app.include_router(subscription_router, prefix="/api") # Пример корневого маршрута @app.get("/") async def root(): """ Пример маршрута, использующего DatabaseManager. """ user = await database_manager.create_user(telegram_id=12345) return {"message": "User created", "user": {"id": user.id, "telegram_id": user.telegram_id}}