from fastapi import FastAPI from instance.configdb import init_postgresql, init_mongodb, close_connections from app.routes import user_router, subscription_router from app.services.db_manager import DatabaseManager from instance.configdb import get_postgres_session import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) app = FastAPI() database_manager = DatabaseManager(session_generator=get_postgres_session) @app.on_event("startup") async def startup(): """ Инициализация подключения к базам данных. """ try: logger.info("Инициализация PostgreSQL...") await init_postgresql() logger.info("PostgreSQL успешно инициализирован.") logger.info("Инициализация MongoDB...") await init_mongodb() logger.info("MongoDB успешно инициализирован.") except Exception as e: logger.error(f"Ошибка при инициализации баз данных: {e}") raise RuntimeError("Не удалось инициализировать базы данных") @app.on_event("shutdown") async def shutdown(): """ Закрытие соединений с базами данных. """ try: logger.info("Закрытие соединений с базами данных...") await close_connections() logger.info("Соединения с базами данных успешно закрыты.") except Exception as e: logger.error(f"Ошибка при закрытии соединений: {e}") app.include_router(user_router, prefix="/api") #app.include_router(payment_router, prefix="/api") app.include_router(subscription_router, prefix="/api") @app.get("/") def read_root(): return {"message": "FastAPI приложение работает!"}