groupe-meditation/backend/app/routers/parametres.py
2026-03-04 14:01:00 -05:00

44 lines
1.6 KiB
Python

"""Routes G9 — Paramètres du groupe."""
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
from app.core.security import require_executif, get_current_membre
from app.models.groupe import Groupe
from app.schemas.phase3 import GroupeUpdate, GroupeDetail
router = APIRouter(prefix="/groupe", tags=["G9 — Paramètres"])
@router.get("/", response_model=GroupeDetail)
async def detail_groupe(
membre=Depends(get_current_membre),
db: AsyncSession = Depends(get_db),
):
"""Détail du groupe du membre connecté."""
groupe = await db.get(Groupe, membre.groupe_id)
return GroupeDetail.model_validate(groupe)
@router.patch("/", response_model=GroupeDetail)
async def modifier_groupe(
req: GroupeUpdate,
executif=Depends(require_executif),
db: AsyncSession = Depends(get_db),
):
"""G9 — Modifier les paramètres du groupe (exécutif)."""
groupe = await db.get(Groupe, executif.groupe_id)
if req.nom is not None:
groupe.nom = req.nom.strip()
if req.adresse_local is not None:
groupe.adresse_local = req.adresse_local.strip()
if req.jour_reunion is not None:
groupe.jour_reunion = req.jour_reunion.strip()
if req.heure_reunion is not None:
groupe.heure_reunion = req.heure_reunion
if req.format_reunion is not None:
groupe.format_reunion = req.format_reunion.strip()
if req.lien_aa87 is not None:
groupe.lien_aa87 = req.lien_aa87.strip()
await db.flush()
return GroupeDetail.model_validate(groupe)