Le modèle front portait un alert_id texte, des value/threshold non nullables et ignorait metric et prediction_id, alors que l'API sérialise un entier, des flottants nullables et ces deux champs. Toute comparaison avec l'alert_id d'une recommandation échouait silencieusement. - alert.model.ts : alert_id number, value/threshold/metric/prediction_id nullables - alerts.service.ts : getAlerts(filters) pose site_id et severity en HttpParams, les deux filtres que l'API accepte - alerts.fixture.ts : réaligné sur le contrat (ids entiers, horodatages UTC, champs nuls sur outage/sensor, un cas spike) - alert-presentation.ts : tons, libellés et unités partagés ; low passe en neutre, le vert se lisait comme un état sain
17 lines
480 B
TypeScript
17 lines
480 B
TypeScript
export type AlertSeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
export type AlertType = 'spike' | 'threshold' | 'anomaly' | 'outage' | 'sensor';
|
|
export type AlertMetric = 'consumption_kw' | 'consumption_kwh';
|
|
|
|
export interface Alert {
|
|
alert_id: number;
|
|
site_id: string;
|
|
timestamp: string;
|
|
type: AlertType;
|
|
severity: AlertSeverity;
|
|
message: string;
|
|
value: number | null;
|
|
threshold: number | null;
|
|
metric: AlertMetric | null;
|
|
prediction_id: number | null;
|
|
}
|