""" Groupe Méditation — API Backend District 87-16, Région 87 100% logiciel libre · Hébergé au Québec """ from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.core.config import settings from app.core.database import engine, Base from app.routers import auth, membres, postes, accueil, invitations, collectes, reunions, depenses, decisions, calendrier, rapports, rotations, parametres, presences, pv, rapports_rsg, jetons, anniversaires, commandes_jetons, litterature, ventes_litterature, contributions, config_repartition, sondages, jumelages @asynccontextmanager async def lifespan(app: FastAPI): async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) yield await engine.dispose() app = FastAPI( title="Groupe Méditation API", description="API du Groupe Méditation — District 87-16, Région 87", version="0.1.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=settings.CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Montage des routes app.include_router(auth.router, prefix="/api") app.include_router(membres.router, prefix="/api") app.include_router(postes.router, prefix="/api") app.include_router(accueil.router, prefix="/api") app.include_router(invitations.router, prefix="/api") app.include_router(collectes.router, prefix="/api") app.include_router(reunions.router, prefix="/api") app.include_router(depenses.router, prefix="/api") app.include_router(decisions.router, prefix="/api") app.include_router(calendrier.router, prefix="/api") app.include_router(rapports.router, prefix="/api") app.include_router(rotations.router, prefix="/api") app.include_router(parametres.router, prefix="/api") app.include_router(presences.router, prefix="/api") app.include_router(pv.router, prefix="/api") app.include_router(rapports_rsg.router, prefix="/api") app.include_router(jetons.router, prefix="/api") app.include_router(anniversaires.router, prefix="/api") app.include_router(commandes_jetons.router, prefix="/api") app.include_router(litterature.router, prefix="/api") app.include_router(ventes_litterature.router, prefix="/api") app.include_router(contributions.router, prefix="/api") app.include_router(config_repartition.router, prefix="/api") app.include_router(sondages.router, prefix="/api") app.include_router(jumelages.router, prefix="/api") @app.get("/api/health") async def root_health(): return {"status": "ok", "app": "Groupe Méditation", "version": "0.1.0"}