feat(backend): add GET /api/materiels catalogue endpoint

This commit is contained in:
SaidSoighiri94
2026-06-19 10:39:27 +02:00
parent bc83308d05
commit bee21b9fd8
7 changed files with 113 additions and 9 deletions
@@ -0,0 +1,37 @@
import { Prisma } from '@prisma/client';
import { prisma } from '../db/prisma';
export type MaterielAvecCategorie = Prisma.MaterielGetPayload<{ include: { categorie: true } }>;
export interface CatalogueFiltres {
categorieId?: number;
recherche?: string;
}
export function findDisponiblesParCampus(
campusId: number,
filtres: CatalogueFiltres,
): Promise<MaterielAvecCategorie[]> {
const { categorieId, recherche } = filtres;
return prisma.materiel.findMany({
where: {
campusId,
actif: true,
statut: 'DISPONIBLE',
...(categorieId !== undefined ? { categorieId } : {}),
...(recherche
? {
OR: [
{ nom: { contains: recherche } },
{ marque: { contains: recherche } },
{ modele: { contains: recherche } },
{ reference: { contains: recherche } },
],
}
: {}),
},
include: { categorie: true },
orderBy: { nom: 'asc' },
});
}