feat(backend): add responsable historique endpoint
This commit is contained in:
@@ -48,6 +48,16 @@ export type NotificationResponsable = Prisma.NotificationGetPayload<{
|
||||
};
|
||||
}>;
|
||||
|
||||
export type HistoriqueResponsable = Prisma.HistoriqueGetPayload<{
|
||||
include: {
|
||||
utilisateur: true;
|
||||
materiel: true;
|
||||
emprunt: true;
|
||||
sallePret: true;
|
||||
posteEmprunt: true;
|
||||
};
|
||||
}>;
|
||||
|
||||
export interface EmpruntResponsableFiltres {
|
||||
statut?: string;
|
||||
}
|
||||
@@ -67,6 +77,15 @@ export interface NotificationResponsableFiltres {
|
||||
lu?: boolean;
|
||||
}
|
||||
|
||||
export interface HistoriqueResponsableFiltres {
|
||||
action?: string;
|
||||
utilisateurId?: number;
|
||||
materielId?: number;
|
||||
empruntId?: number;
|
||||
dateDebut?: Date;
|
||||
dateFin?: Date;
|
||||
}
|
||||
|
||||
function mapStatutCounts(rows: Array<{ statut: string; _count: { _all: number } }>): StatutCount[] {
|
||||
return rows.map((row) => ({ statut: row.statut, count: row._count._all }));
|
||||
}
|
||||
@@ -239,3 +258,34 @@ export async function marquerNotificationsResponsableLues(utilisateurId: number)
|
||||
|
||||
return result.count;
|
||||
}
|
||||
|
||||
export function findHistoriqueResponsable(
|
||||
campusId: number,
|
||||
filtres: HistoriqueResponsableFiltres,
|
||||
): Promise<HistoriqueResponsable[]> {
|
||||
return prisma.historique.findMany({
|
||||
where: {
|
||||
campusId,
|
||||
...(filtres.action ? { action: filtres.action } : {}),
|
||||
...(filtres.utilisateurId !== undefined ? { utilisateurId: filtres.utilisateurId } : {}),
|
||||
...(filtres.materielId !== undefined ? { materielId: filtres.materielId } : {}),
|
||||
...(filtres.empruntId !== undefined ? { empruntId: filtres.empruntId } : {}),
|
||||
...(filtres.dateDebut || filtres.dateFin
|
||||
? {
|
||||
dateAction: {
|
||||
...(filtres.dateDebut ? { gte: filtres.dateDebut } : {}),
|
||||
...(filtres.dateFin ? { lte: filtres.dateFin } : {}),
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
},
|
||||
include: {
|
||||
utilisateur: true,
|
||||
materiel: true,
|
||||
emprunt: true,
|
||||
sallePret: true,
|
||||
posteEmprunt: true,
|
||||
},
|
||||
orderBy: { dateAction: 'desc' },
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user