from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from config import ensure_data_dirs from api.documents import router as documents_router from api.topics import router as topics_router from api.settings import router as settings_router @asynccontextmanager async def lifespan(app: FastAPI): ensure_data_dirs() yield app = FastAPI(title="Document Scanner API", version="1.0.0", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) @app.get("/health") async def health(): return {"status": "ok"} app.include_router(documents_router) app.include_router(topics_router) app.include_router(settings_router)