fix: Update PrimeReact and fix all compilation errors
This commit is contained in:
325
types/dashboard.ts
Executable file
325
types/dashboard.ts
Executable file
@@ -0,0 +1,325 @@
|
||||
/**
|
||||
* Types TypeScript pour le Dashboard - Correspondance exacte avec les DTOs backend
|
||||
* Backend: DashboardResource.java
|
||||
*/
|
||||
|
||||
// === DASHBOARD PRINCIPAL ===
|
||||
|
||||
export interface DashboardPrincipalResponse {
|
||||
chantiers: {
|
||||
total: number;
|
||||
actifs: number;
|
||||
tauxActivite: number;
|
||||
};
|
||||
equipes: {
|
||||
total: number;
|
||||
disponibles: number;
|
||||
tauxDisponibilite: number;
|
||||
};
|
||||
employes: {
|
||||
total: number;
|
||||
actifs: number;
|
||||
tauxActivite: number;
|
||||
};
|
||||
materiel: {
|
||||
total: number;
|
||||
disponible: number;
|
||||
tauxDisponibilite: number;
|
||||
};
|
||||
maintenance: {
|
||||
enRetard: number;
|
||||
planifiees: number;
|
||||
alerteRetard: boolean;
|
||||
};
|
||||
planning: {
|
||||
evenementsAujourdhui: number;
|
||||
disponibilitesEnAttente: number;
|
||||
};
|
||||
documents: {
|
||||
total: number;
|
||||
recents: DocumentRecent[];
|
||||
};
|
||||
derniereMAJ: string; // ISO DateTime
|
||||
}
|
||||
|
||||
export interface DocumentRecent {
|
||||
id: string;
|
||||
nom: string;
|
||||
type: string;
|
||||
dateCreation: string; // ISO DateTime
|
||||
}
|
||||
|
||||
// === DASHBOARD CHANTIERS ===
|
||||
|
||||
export interface DashboardChantiersResponse {
|
||||
statistiques: ChantierStatistiques;
|
||||
chantiersActifs: ChantierActifDTO[];
|
||||
chantiersEnRetard: ChantierEnRetardDTO[];
|
||||
}
|
||||
|
||||
export interface ChantierStatistiques {
|
||||
total: number;
|
||||
enCours: number;
|
||||
planifies: number;
|
||||
termines: number;
|
||||
annules: number;
|
||||
tauxReussite: number;
|
||||
budgetTotal: number;
|
||||
coutReelTotal: number;
|
||||
margeGlobale: number;
|
||||
}
|
||||
|
||||
export interface ChantierActifDTO {
|
||||
id: string;
|
||||
nom: string;
|
||||
adresse: string;
|
||||
dateDebut: string; // ISO Date
|
||||
dateFinPrevue: string; // ISO Date
|
||||
statut: string;
|
||||
client: string;
|
||||
budget: number;
|
||||
coutReel: number;
|
||||
avancement: number; // 0-100
|
||||
}
|
||||
|
||||
export interface ChantierEnRetardDTO {
|
||||
id: string;
|
||||
nom: string;
|
||||
dateFinPrevue: string; // ISO Date
|
||||
joursRetard: number;
|
||||
}
|
||||
|
||||
// === DASHBOARD MAINTENANCE ===
|
||||
|
||||
export interface DashboardMaintenanceResponse {
|
||||
statistiques: MaintenanceStatistiques;
|
||||
maintenancesEnRetard: MaintenanceEnRetardDTO[];
|
||||
prochainesMaintenances: ProchaineMaintenanceDTO[];
|
||||
}
|
||||
|
||||
export interface MaintenanceStatistiques {
|
||||
total: number;
|
||||
enRetard: number;
|
||||
planifiees: number;
|
||||
terminees: number;
|
||||
tauxRealisation: number;
|
||||
}
|
||||
|
||||
export interface MaintenanceEnRetardDTO {
|
||||
id: string;
|
||||
materiel: string;
|
||||
type: string;
|
||||
datePrevue: string; // ISO Date
|
||||
joursRetard: number;
|
||||
priorite: string;
|
||||
}
|
||||
|
||||
export interface ProchaineMaintenanceDTO {
|
||||
id: string;
|
||||
materiel: string;
|
||||
type: string;
|
||||
datePrevue: string; // ISO Date
|
||||
joursRestants: number;
|
||||
}
|
||||
|
||||
// === DASHBOARD RESSOURCES ===
|
||||
|
||||
export interface DashboardRessourcesResponse {
|
||||
statsEquipes: EquipeStatistiques;
|
||||
statsEmployes: EmployeStatistiques;
|
||||
statsMateriel: MaterielStatistiques;
|
||||
disponibilitesActuelles: DisponibiliteDTO[];
|
||||
disponibilitesEnAttente: DisponibiliteDTO[];
|
||||
}
|
||||
|
||||
export interface EquipeStatistiques {
|
||||
total: number;
|
||||
disponibles: number;
|
||||
occupees: number;
|
||||
enConge: number;
|
||||
tauxUtilisation: number;
|
||||
}
|
||||
|
||||
export interface EmployeStatistiques {
|
||||
total: number;
|
||||
actifs: number;
|
||||
enConge: number;
|
||||
disponibles: number;
|
||||
tauxActivite: number;
|
||||
}
|
||||
|
||||
export interface MaterielStatistiques {
|
||||
total: number;
|
||||
disponible: number;
|
||||
enUtilisation: number;
|
||||
enMaintenance: number;
|
||||
horsService: number;
|
||||
tauxUtilisation: number;
|
||||
}
|
||||
|
||||
export interface DisponibiliteDTO {
|
||||
id: string;
|
||||
employe: string;
|
||||
dateDebut: string; // ISO Date
|
||||
dateFin: string; // ISO Date
|
||||
type: string;
|
||||
statut: string;
|
||||
}
|
||||
|
||||
// === DASHBOARD ALERTES ===
|
||||
|
||||
export interface DashboardAlertesResponse {
|
||||
maintenancesEnRetard: MaintenanceEnRetardDTO[];
|
||||
chantiersEnRetard: ChantierEnRetardDTO[];
|
||||
disponibilitesEnAttente: DisponibiliteDTO[];
|
||||
conflitsPlanifies: ConflitPlanningDTO[];
|
||||
alertesCritiques: AlerteCritiqueDTO[];
|
||||
}
|
||||
|
||||
export interface ConflitPlanningDTO {
|
||||
id: string;
|
||||
type: string;
|
||||
description: string;
|
||||
dateConflit: string; // ISO Date
|
||||
ressourcesConcernees: string[];
|
||||
}
|
||||
|
||||
export interface AlerteCritiqueDTO {
|
||||
id: string;
|
||||
type: 'MAINTENANCE' | 'CHANTIER' | 'PLANNING' | 'RESSOURCE';
|
||||
severite: 'CRITIQUE' | 'HAUTE' | 'MOYENNE' | 'BASSE';
|
||||
titre: string;
|
||||
description: string;
|
||||
dateCreation: string; // ISO DateTime
|
||||
}
|
||||
|
||||
// === DASHBOARD FINANCES ===
|
||||
|
||||
export interface DashboardFinancesResponse {
|
||||
chiffreAffaires: {
|
||||
realise: number;
|
||||
prevu: number;
|
||||
objectif: number;
|
||||
tauxRealisation: number;
|
||||
};
|
||||
depenses: {
|
||||
total: number;
|
||||
parCategorie: CategorieDepenseDTO[];
|
||||
};
|
||||
rentabilite: {
|
||||
margeGlobale: number;
|
||||
tauxMarge: number;
|
||||
beneficeNet: number;
|
||||
};
|
||||
factures: {
|
||||
total: number;
|
||||
payees: number;
|
||||
enAttente: number;
|
||||
enRetard: number;
|
||||
montantTotal: number;
|
||||
montantPaye: number;
|
||||
montantEnAttente: number;
|
||||
};
|
||||
devis: {
|
||||
total: number;
|
||||
acceptes: number;
|
||||
enAttente: number;
|
||||
refuses: number;
|
||||
tauxAcceptation: number;
|
||||
montantTotal: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface CategorieDepenseDTO {
|
||||
categorie: string;
|
||||
montant: number;
|
||||
pourcentage: number;
|
||||
}
|
||||
|
||||
// === DASHBOARD PERFORMANCE ===
|
||||
|
||||
export interface DashboardPerformanceResponse {
|
||||
periodeJours: number;
|
||||
dateDebut: string; // ISO Date
|
||||
dateFin: string; // ISO Date
|
||||
chantiers: {
|
||||
tauxReussite: number;
|
||||
termines: number;
|
||||
total: number;
|
||||
};
|
||||
maintenance: {
|
||||
tauxRealisation: number;
|
||||
realisees: number;
|
||||
total: number;
|
||||
};
|
||||
equipes: {
|
||||
tauxUtilisation: number;
|
||||
occupees: number;
|
||||
total: number;
|
||||
};
|
||||
calculeLe: string; // ISO DateTime
|
||||
}
|
||||
|
||||
// === TYPES POUR LE HOOK useDashboard ===
|
||||
|
||||
export interface DashboardMetrics {
|
||||
totalChantiers: number;
|
||||
chantiersActifs: number;
|
||||
chantiersEnRetard: number;
|
||||
chantiersTermines: number;
|
||||
totalEquipes: number;
|
||||
equipesDisponibles: number;
|
||||
totalMateriel: number;
|
||||
materielDisponible: number;
|
||||
materielEnMaintenance: number;
|
||||
totalDocuments: number;
|
||||
totalPhotos: number;
|
||||
budgetTotal: number;
|
||||
coutReel: number;
|
||||
chiffreAffaires: number;
|
||||
objectifCA: number;
|
||||
tauxReussite: number;
|
||||
satisfactionClient: number;
|
||||
}
|
||||
|
||||
export interface ChantierActif {
|
||||
id: string;
|
||||
nom: string;
|
||||
client: string | { nom: string; prenom?: string };
|
||||
avancement: number;
|
||||
dateDebut: string;
|
||||
dateFinPrevue: string;
|
||||
statut: 'EN_COURS' | 'EN_RETARD' | 'PLANIFIE' | 'TERMINE';
|
||||
budget: number;
|
||||
coutReel: number;
|
||||
equipe?: {
|
||||
id: string;
|
||||
nom: string;
|
||||
nombreMembres: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ActiviteRecente {
|
||||
id: string;
|
||||
type: 'CHANTIER' | 'MAINTENANCE' | 'DOCUMENT' | 'EQUIPE';
|
||||
titre: string;
|
||||
description: string;
|
||||
date: string;
|
||||
utilisateur: string;
|
||||
statut: 'SUCCESS' | 'WARNING' | 'ERROR' | 'INFO';
|
||||
}
|
||||
|
||||
export interface TacheUrgente {
|
||||
id: string;
|
||||
titre: string;
|
||||
description: string;
|
||||
priorite: 'HAUTE' | 'MOYENNE' | 'BASSE';
|
||||
echeance: string;
|
||||
assignee: string;
|
||||
statut: 'A_FAIRE' | 'EN_COURS' | 'TERMINEE';
|
||||
chantier?: {
|
||||
id: string;
|
||||
nom: string;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user