import {Values} from "./Shared"; export interface Program { id: string name: string steps: ProgramStep[] } export interface ProgramStep { index?: number values: Values, duration?: Values, } export function weighting(step: ProgramStep) { if (step.duration) { if (step.duration.time) { return 8 * step.duration.time; } else if (step.duration.calories) { return 4 * step.duration.calories; } else if (step.duration.distance) { return step.duration.distance; } } return 0; } export function subTitleOfProgram(program: Program): string { let minSum = 0; let secSum = 0; let kcalSum = 0; let mSum = 0; let hasCustom = false; for (const step of program.steps) { if (step.duration?.time) secSum += step.duration.time; if (step.duration?.calories) kcalSum += step.duration.calories; if (step.duration?.distance) mSum += step.duration.distance; hasCustom = hasCustom || (!(step.duration?.time) && !(step.duration?.calories) && !(step.duration?.distance)); } minSum = Math.floor(secSum / 60); secSum = secSum % 60; const parts = []; if (minSum > 0) parts.push(`${minSum} min`); if (secSum > 0) parts.push(`${secSum} sek`); if (kcalSum > 0) parts.push(`${kcalSum} kcal`); if (mSum > 0) parts.push(`${mSum / 1000} km`); if (hasCustom) parts.push("Custom"); return parts.join(" + "); }