from pathlib import Path from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from contextlib import asynccontextmanager from app.config import DATA_DIR from app.routers import auth, dashboard, workouts, exercises, checkins, profile, chat from scripts.schema import init_db @asynccontextmanager async def lifespan(app: FastAPI): DATA_DIR.mkdir(parents=True, exist_ok=True) await init_db() yield app = FastAPI(title="Fitness Web", lifespan=lifespan) static_dir = Path(__file__).parent / "static" app.mount("/static", StaticFiles(directory=str(static_dir)), name="static") app.include_router(auth.router) app.include_router(dashboard.router) app.include_router(workouts.router) app.include_router(exercises.router) app.include_router(checkins.router) app.include_router(profile.router) app.include_router(chat.router)