"""FastAPI application entry point.""" from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from database import engine, Base from routes import sum as sum_routes from routes import counter as counter_routes from routes import audit as audit_routes from routes import profile as profile_routes from routes import invites as invites_routes from routes import auth as auth_routes @asynccontextmanager async def lifespan(app: FastAPI): """Create database tables on startup.""" async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) yield app = FastAPI(lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["http://localhost:3000"], allow_methods=["*"], allow_headers=["*"], allow_credentials=True, ) # Include routers app.include_router(auth_routes.router) app.include_router(sum_routes.router) app.include_router(counter_routes.router) app.include_router(audit_routes.router) app.include_router(profile_routes.router) app.include_router(invites_routes.router)