Types alignés sur RecommendationResponse et RecommendationGenerationResponse
du backend. RecommendationsService couvre GET /recommendations,
GET /recommendations/{id} et POST /recommendations/generate?site_id= (réservé
admin côté API). recommendation-presentation.ts traduit les sept règles connues
du moteur et retombe sur la référence brute pour une règle inconnue, la
politique de renommage en -v2 de l'ADR 0006 l'impose.
24 lines
922 B
TypeScript
24 lines
922 B
TypeScript
import { BadgeTone } from '../components/ui/badge/badge';
|
|
|
|
// Contrainte : une règle dont le sens change reçoit un suffixe -v2 côté backend (ADR 0006) ;
|
|
// une référence inconnue s'affiche donc telle quelle plutôt que de casser la vue.
|
|
const LIBELLE_PAR_REGLE: Record<string, string> = {
|
|
'spike-delestage-v1': 'Délestage',
|
|
'threshold-reduction-v1': 'Réduction de puissance',
|
|
'outage-secours-v1': 'Alimentation de secours',
|
|
'sensor-maintenance-v1': 'Maintenance capteur',
|
|
'anomaly-verification-v1': 'Vérification',
|
|
'escalade-astreinte-v1': 'Escalade astreinte',
|
|
'contrat-puissance-v1': 'Contrat de puissance',
|
|
};
|
|
|
|
const REGLE_ESCALADE = 'escalade-astreinte-v1';
|
|
|
|
export function libelleRegle(reference: string): string {
|
|
return LIBELLE_PAR_REGLE[reference] ?? reference;
|
|
}
|
|
|
|
export function tonRegle(reference: string): BadgeTone {
|
|
return reference === REGLE_ESCALADE ? 'critical' : 'neutral';
|
|
}
|