import { uuidV4 } from "../util/uuid" export type TaskID = string export enum EstimationConfidence { Optimistic = "optimistic", Likely = "likely", Pessimistic = "pessimistic" } export interface Task { id: TaskID label: string category: CategoryID estimations: { [confidence in EstimationConfidence]: number } } export type CategoryID = string export interface TaskCategory { id: CategoryID label: string costPerTimeUnit: number } export function newTask(label: string, category: CategoryID): Task { return { id: uuidV4(), label, category, estimations: { [EstimationConfidence.Optimistic]: 0, [EstimationConfidence.Likely]: 0, [EstimationConfidence.Pessimistic]: 0, } }; }