"""FastAPI application entry point.""" from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from src.config import settings from src.database import Base, engine # Import routers from src.auth.router import router as auth_router # Add more routers as needed: # from src.items.router import router as items_router @asynccontextmanager async def lifespan(app: FastAPI): """Application lifespan handler for startup/shutdown.""" # Startup: Create database tables async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) yield # Shutdown: Add cleanup here if needed app = FastAPI( title=settings.APP_NAME, lifespan=lifespan, ) # CORS middleware - configure for your frontend app.add_middleware( CORSMiddleware, allow_origins=[ "http://localhost:3000", # React dev server "http://localhost:5173", # Vite dev server ], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(auth_router) # app.include_router(items_router) @app.get("/") async def root(): """Health check endpoint.""" return {"status": "ok", "app": settings.APP_NAME} @app.get("/health") async def health(): """Detailed health check.""" return { "status": "healthy", "database": "connected", }