"""FastAPI application factory.""" from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import get_settings settings = get_settings() def create_app() -> FastAPI: app = FastAPI( title="报销系统", version="1.0.0", docs_url="/api/docs", openapi_url="/api/openapi.json", ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) from app.routers import auth, user, role, menu, expense_item, workflow, advance, reimburse, attachment, payment app.include_router(auth.router) app.include_router(user.router) app.include_router(role.router) app.include_router(menu.router) app.include_router(expense_item.router) app.include_router(workflow.router) app.include_router(advance.router) app.include_router(reimburse.router) app.include_router(attachment.router) app.include_router(payment.router) @app.get("/api/health") def health_check(): return {"status": "ok"} return app app = create_app() if __name__ == "__main__": import uvicorn uvicorn.run( "app.main:app", host=settings.APP_HOST, port=settings.APP_PORT, reload=settings.DEBUG, )