34 lines
713 B
TypeScript
34 lines
713 B
TypeScript
/**
|
|
* ActivityLevelDisplay
|
|
*
|
|
* Deterministic mapping of engagement rates to activity level labels.
|
|
*/
|
|
|
|
export class ActivityLevelFormatter {
|
|
/**
|
|
* Maps engagement rate to activity level label.
|
|
*/
|
|
static levelLabel(engagementRate: number): string {
|
|
if (engagementRate < 20) {
|
|
return 'Low';
|
|
} else if (engagementRate < 50) {
|
|
return 'Medium';
|
|
} else {
|
|
return 'High';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Maps engagement rate to activity level value.
|
|
*/
|
|
static levelValue(engagementRate: number): 'low' | 'medium' | 'high' {
|
|
if (engagementRate < 20) {
|
|
return 'low';
|
|
} else if (engagementRate < 50) {
|
|
return 'medium';
|
|
} else {
|
|
return 'high';
|
|
}
|
|
}
|
|
}
|