from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api.routes import router from app.core.config import get_settings from app.core.database import Base, engine from app.models import Deposit, User # noqa: F401 @asynccontextmanager async def lifespan(_app: FastAPI): Base.metadata.create_all(bind=engine) yield engine.dispose() def create_app() -> FastAPI: settings = get_settings() app = FastAPI(title="Vyryi API", version="0.1.0", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origins_list, allow_origin_regex=settings.cors_origin_regex or None, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(router) @app.get("/health") def health() -> dict[str, str]: return {"status": "ok"} return app app = create_app()