from contextlib import asynccontextmanager from pathlib import Path 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 import app.models # noqa: F401 — register models @asynccontextmanager async def lifespan(_: FastAPI): settings = get_settings() Path(settings.data_dir).mkdir(parents=True, exist_ok=True) Base.metadata.create_all(bind=engine) yield app = FastAPI(title="GostGenerator Web API", version="1.0.0", lifespan=lifespan) settings = get_settings() app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origin_list, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(router) @app.get("/") def root(): return {"service": "GostGenerator Web API", "docs": "/docs"}