groupe-meditation/backend/app/main.py

69 lines
2.6 KiB
Python
Raw Normal View History

2026-03-04 14:01:00 -05:00
"""
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"}