from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager from .database import init_db_pool, init_tables from .routers import auth, meetings, ai, export @asynccontextmanager async def lifespan(app: FastAPI): # Startup init_db_pool() init_tables() yield # Shutdown (cleanup if needed) app = FastAPI( title="Meeting Assistant API", description="Enterprise meeting knowledge management API", version="1.0.0", lifespan=lifespan, ) # CORS configuration for Electron client app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(auth.router, prefix="/api", tags=["Authentication"]) app.include_router(meetings.router, prefix="/api", tags=["Meetings"]) app.include_router(ai.router, prefix="/api", tags=["AI"]) app.include_router(export.router, prefix="/api", tags=["Export"]) @app.get("/api/health") async def health_check(): """Health check endpoint.""" return {"status": "healthy", "service": "meeting-assistant"}