from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles from fastapi.responses import RedirectResponse import models, database from routers import providers, clients, visits, services app = FastAPI(title="Fitness Tracker API") # Allow CORS for frontend dev app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(providers.router, prefix="/providers", tags=["providers"]) app.include_router(clients.router, prefix="/clients", tags=["clients"]) app.include_router(visits.router, prefix="/visits", tags=["visits"]) app.include_router(services.router, prefix="/services", tags=["services"]) # Create tables on startup @app.on_event("startup") async def startup(): database.Base.metadata.create_all(bind=database.engine) # Mount frontend static files at /frontend app.mount("/frontend", StaticFiles(directory="frontend"), name="frontend") # Simple redirect from root to /frontend for convenience @app.get("/") def root(): return RedirectResponse(url="/frontend/")