from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager import os from api.v1 import cases, analyze, auth, stats @asynccontextmanager async def lifespan(app: FastAPI): yield app = FastAPI( title="SAR-MCHS API", description="Search and Rescue Management System API", version="1.0.0", lifespan=lifespan ) cors_origins = os.getenv("CORS_ORIGINS", "http://localhost:3000").split(",") app.add_middleware( CORSMiddleware, allow_origins=cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(auth.router, prefix="/api/v1/auth", tags=["Authentication"]) app.include_router(cases.router, prefix="/api/v1", tags=["Cases"]) app.include_router(analyze.router, prefix="/api/v1/analyze", tags=["Analysis"]) app.include_router(stats.router, prefix="/api/v1/stats", tags=["Statistics"]) @app.get("/") async def root(): return { "message": "SAR-MCHS API", "version": "1.0.0", "docs": "/docs" } @app.get("/health") async def health_check(): return {"status": "healthy"}