from contextlib import asynccontextmanager from fastapi import FastAPI from starlette.middleware.sessions import SessionMiddleware from app.admin import mount_admin from app.api.v1.routes import router as v1_router from app.core.config import settings from app.db.init_db import init_db @asynccontextmanager async def lifespan(_: FastAPI): init_db() yield app = FastAPI(title=settings.APP_NAME, root_path=settings.ROOT_PATH, lifespan=lifespan) app.add_middleware(SessionMiddleware, secret_key=settings.ADMIN_SECRET_KEY) app.include_router(v1_router) mount_admin(app)