from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api.v1.api import api_router from app.core.ai_config import configure_dspy from app.db import init_db @asynccontextmanager async def lifespan(app: FastAPI): init_db() configure_dspy() yield app = FastAPI(title="Healthy Fit API", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["http://localhost:5173", "http://localhost:5174", "http://localhost:3000"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(api_router, prefix="/api/v1") @app.get("/") def read_root(): return {"message": "Welcome to Healthy Fit API"}