app/composables/useCoverage.ts

25 lines
660 B
TypeScript

/**
* Computes coverage: funded paid hours ÷ target hours
*/
export const useCoverage = () => {
const calculateCoverage = (fundedPaidHours: number, targetHours: number): number => {
if (targetHours <= 0) return 0
return (fundedPaidHours / targetHours) * 100
}
const getCoverageStatus = (coveragePct: number): 'green' | 'yellow' | 'red' => {
if (coveragePct >= 80) return 'green'
if (coveragePct >= 60) return 'yellow'
return 'red'
}
const formatCoverage = (coveragePct: number): string => {
return `${Math.round(coveragePct)}%`
}
return {
calculateCoverage,
getCoverageStatus,
formatCoverage
}
}