from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from database import init_db from routers import approvals, audit, cmdb, tasks @asynccontextmanager async def lifespan(app: FastAPI): await init_db() from database import SessionLocal from core.seed import seed_all async with SessionLocal() as db: await seed_all(db) yield app = FastAPI(title="GUARDiA ITSM", version="1.0.0", lifespan=lifespan) app.include_router(tasks.router) app.include_router(approvals.router) app.include_router(cmdb.router) app.include_router(audit.router) app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/") async def index(): return FileResponse("static/index.html")