import type { Task, CreateTaskParams } from "./types"; const tasks = new Map(); export function getTask(taskId: string): Task | undefined { return tasks.get(taskId); } export function setTask(taskId: string, task: Task): void { tasks.set(taskId, task); } export function createTask(taskId: string, params: CreateTaskParams): Task { const task: Task = { id: taskId, status: "pending", title: params.title.trim(), englishName: params.englishName.trim().toLowerCase(), description: params.description.trim(), standardCode: params.standardCode.trim(), testCaseCount: params.testCaseCount, serviceLevel: params.serviceLevel || "standard", createdAt: new Date(), updatedAt: new Date(), progress: 0, errorMessage: null, generatedCases: 0, }; tasks.set(taskId, task); return task; } export function findRunningTaskByEnglishName(englishName: string): Task | undefined { const name = englishName.trim().toLowerCase(); for (const task of tasks.values()) { if (task.englishName === name && (task.status === "pending" || task.status === "running")) { return task; } } return undefined; } export function getEstimatedTime(serviceLevel: string, caseCount: number): number { const baseTime = Math.ceil(caseCount / 2); const multiplier: Record = { standard: 1.0, domestic: 1.5, pro: 1.2, max: 2.0, }; return Math.max(30, baseTime * (multiplier[serviceLevel] ?? 1.0)); }