from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager from app.api.v1.router import api_router from app.db.session import engine from app.db.base import Base @asynccontextmanager async def lifespan(app: FastAPI): Base.metadata.create_all(bind=engine) yield app = FastAPI( title="Gym Membership Management System", description="A comprehensive platform for gyms to manage member data and subscriptions", version="1.0.0", openapi_url="/openapi.json", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(api_router, prefix="/api/v1") @app.get("/") async def root(): return { "title": "Gym Membership Management System", "description": "A comprehensive platform for gyms to manage member data and subscriptions", "version": "1.0.0", "documentation": "/docs", "health_check": "/health", } @app.get("/health") async def health_check(): return {"status": "healthy", "service": "gym-membership-api"}