feat(responsable): add anomaly and history tables

This commit is contained in:
SaidSoighiri94
2026-07-24 15:47:48 +02:00
parent ec36349bad
commit 38efe6a873
6 changed files with 1623 additions and 81 deletions
@@ -80,8 +80,18 @@ export type TriMaterielResponsable =
export interface ListerAnomaliesResponsableFiltres {
statut?: StatutAnomalie;
type?: string;
recherche?: string;
tri?: TriAnomalieResponsable;
ordre?: OrdreTri;
}
export type TriAnomalieResponsable =
| 'dateDetection'
| 'type'
| 'materiel'
| 'etudiant'
| 'statut';
export interface ListerNotificationsResponsableFiltres {
lu?: boolean;
}
@@ -93,8 +103,18 @@ export interface ListerHistoriqueResponsableFiltres {
empruntId?: number;
dateDebut?: Date;
dateFin?: Date;
recherche?: string;
tri?: TriHistoriqueResponsable;
ordre?: OrdreTri;
}
export type TriHistoriqueResponsable =
| 'dateAction'
| 'action'
| 'utilisateur'
| 'materiel'
| 'emprunt';
export interface ChangerStatutAnomalieResponsableRequest {
statut: StatutAnomalie;
observation?: string;
@@ -244,6 +264,23 @@ export function parseStatutAnomalie(value: unknown): StatutAnomalie | undefined
return value as StatutAnomalie;
}
export function parseTriAnomalie(value: unknown): TriAnomalieResponsable | undefined {
if (value === undefined) {
return undefined;
}
const valeurs: readonly TriAnomalieResponsable[] = [
'dateDetection',
'type',
'materiel',
'etudiant',
'statut',
];
if (typeof value !== 'string' || !valeurs.includes(value as TriAnomalieResponsable)) {
throw new AppError(400, 'tri invalide');
}
return value as TriAnomalieResponsable;
}
export function parseCategorieId(value: unknown): number | undefined {
if (value === undefined) {
return undefined;
@@ -328,6 +365,23 @@ export function parseDateQuery(value: unknown, champ: string): Date | undefined
return parsed;
}
export function parseTriHistorique(value: unknown): TriHistoriqueResponsable | undefined {
if (value === undefined) {
return undefined;
}
const valeurs: readonly TriHistoriqueResponsable[] = [
'dateAction',
'action',
'utilisateur',
'materiel',
'emprunt',
];
if (typeof value !== 'string' || !valeurs.includes(value as TriHistoriqueResponsable)) {
throw new AppError(400, 'tri invalide');
}
return value as TriHistoriqueResponsable;
}
export function parseLu(value: unknown): boolean | undefined {
if (value === undefined) {
return undefined;