// Types et données de test alignés sur l'API REST PolyMPR // --- Types --- export interface Student { numEtud: number; nom: string; prenom: string; idPromo: string; } export interface Promotion { idPromo: string; annee: string; } export interface Prof { id: number; nom: string; prenom: string; } export interface Module { id: string; nom: string; } export interface Note { note: number; numEtud: number; idModule: string; } export interface UE { id: number; nom: string; } export interface UeModule { idModule: string; idUE: number; idPromo: string; coeff: number; } export interface Enseignement { idProf: number; idModule: string; idPromo: string; } export interface Ajustement { numEtud: number; idUE: number; valeur: number; } export interface ImportResult { imported: number; errors: { line: number; message: string }[]; } export interface ApiError { error: string; } // --- Fixtures --- export const students: Student[] = [ { numEtud: 21212006, nom: "Dupont", prenom: "Jean", idPromo: "4AFISE25/26" }, { numEtud: 21212007, nom: "Martin", prenom: "Alice", idPromo: "4AFISE25/26", }, { numEtud: 21212008, nom: "Durand", prenom: "Claire", idPromo: "3AFISE25/26", }, ]; export const promotions: Promotion[] = [ { idPromo: "4AFISE25/26", annee: "2025" }, { idPromo: "3AFISE25/26", annee: "2025" }, { idPromo: "JIA4A2526", annee: "2025" }, ]; export const profs: Prof[] = [ { id: 1, nom: "Leclerc", prenom: "Jean" }, { id: 2, nom: "Moreau", prenom: "Sophie" }, ]; export const modules: Module[] = [ { id: "JIN702C", nom: "Optimisation" }, { id: "JIN703C", nom: "Informatique" }, { id: "JIN704C", nom: "Physique" }, ]; export const notes: Note[] = [ { note: 15.5, numEtud: 21212006, idModule: "JIN702C" }, { note: 12.0, numEtud: 21212006, idModule: "JIN703C" }, { note: 18.0, numEtud: 21212007, idModule: "JIN702C" }, { note: 9.0, numEtud: 21212008, idModule: "JIN704C" }, ]; export const ues: UE[] = [ { id: 1, nom: "UE Informatique" }, { id: 2, nom: "UE Mathématiques" }, ]; export const ueModules: UeModule[] = [ { idModule: "JIN702C", idUE: 1, idPromo: "4AFISE25/26", coeff: 3.0 }, { idModule: "JIN703C", idUE: 2, idPromo: "4AFISE25/26", coeff: 4.0 }, { idModule: "JIN704C", idUE: 1, idPromo: "3AFISE25/26", coeff: 2.0 }, ]; export const enseignements: Enseignement[] = [ { idProf: 1, idModule: "JIN702C", idPromo: "4AFISE25/26" }, { idProf: 2, idModule: "JIN703C", idPromo: "4AFISE25/26" }, { idProf: 1, idModule: "JIN704C", idPromo: "3AFISE25/26" }, ]; export const ajustements: Ajustement[] = [ { numEtud: 21212006, idUE: 1, valeur: 13.25 }, { numEtud: 21212008, idUE: 1, valeur: 11.0 }, ]; // --- Réponses d'erreur standard --- export const ERROR_NOT_FOUND: ApiError = { error: "Ressource introuvable" }; export const ERROR_CONFLICT: ApiError = { error: "Ressource déjà existante" }; export const ERROR_BAD_REQUEST: ApiError = { error: "Requête invalide" }; export const ERROR_UNAUTHORIZED: ApiError = { error: "Non authentifié" }; export const ERROR_FORBIDDEN: ApiError = { error: "Accès interdit" };