v11: affectation établissements depuis Admin + filtrage par rôle + icônes solutions vertes [1777031753]

This commit is contained in:
Manus Deploy
2026-04-24 07:55:53 -04:00
parent 968b6ca2a3
commit 43a85f6150
4 changed files with 371 additions and 36 deletions

View File

@@ -39,6 +39,9 @@ import {
removeEtablissementFromUser,
repondreDemandeContact,
setAffectationsForUser,
getUsersForEtablissement,
setReferentForEtablissement,
setAdherentsForEtablissement,
updateLocalPassword,
updateUser,
updateUserCgu,
@@ -564,6 +567,33 @@ export const appRouter = router({
await removeEtablissementFromUser(input.userId, input.etablissementId);
return { success: true };
}),
/** Retourne les utilisateurs (adhérents + référent) d'un établissement */
getUsersForEtablissement: gestionnaireProcedure
.input(z.object({ etablissementId: z.number().int() }))
.query(({ input }) => getUsersForEtablissement(input.etablissementId)),
/** Définit le référent numérique d'un établissement */
setReferentForEtablissement: gestionnaireProcedure
.input(z.object({
etablissementId: z.number().int(),
referentId: z.number().int().nullable(),
}))
.mutation(async ({ input }) => {
await setReferentForEtablissement(input.etablissementId, input.referentId);
return { success: true };
}),
/** Remplace tous les adhérents affectés à un établissement */
setAdherentsForEtablissement: gestionnaireProcedure
.input(z.object({
etablissementId: z.number().int(),
userIds: z.array(z.number().int()),
}))
.mutation(async ({ input }) => {
await setAdherentsForEtablissement(input.etablissementId, input.userIds);
return { success: true };
}),
}),
});