from contextlib import asynccontextmanager from dotenv import load_dotenv load_dotenv() # load .env before db.py reads DATABASE_URL from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from db import create_db_and_tables from innercontext.api import health, inventory, products, routines, skincare @asynccontextmanager async def lifespan(app: FastAPI): create_db_and_tables() yield app = FastAPI(title="innercontext API", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(products.router, prefix="/products", tags=["products"]) app.include_router(inventory.router, prefix="/inventory", tags=["inventory"]) app.include_router(health.router, prefix="/health", tags=["health"]) app.include_router(routines.router, prefix="/routines", tags=["routines"]) app.include_router(skincare.router, prefix="/skin-snapshots", tags=["skincare"]) @app.get("/health-check") def health_check(): return {"status": "ok"}