From a1b1f695d9c0ca3b3897bf5c0f835a2f6a4b3b85 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Wed, 29 Apr 2026 18:59:56 +0200 Subject: [PATCH] feat(ST-1111.2): add ClaudeJob status API mappers Co-Authored-By: Claude Sonnet 4.6 --- lib/job-status.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/job-status.ts diff --git a/lib/job-status.ts b/lib/job-status.ts new file mode 100644 index 0000000..f6ac4ee --- /dev/null +++ b/lib/job-status.ts @@ -0,0 +1,32 @@ +import type { ClaudeJobStatus } from '@prisma/client' + +const JOB_DB_TO_API = { + QUEUED: 'queued', + CLAIMED: 'claimed', + RUNNING: 'running', + DONE: 'done', + FAILED: 'failed', + CANCELLED: 'cancelled', +} as const satisfies Record + +const JOB_API_TO_DB: Record = { + queued: 'QUEUED', + claimed: 'CLAIMED', + running: 'RUNNING', + done: 'DONE', + failed: 'FAILED', + cancelled: 'CANCELLED', +} + +export type ClaudeJobStatusApi = typeof JOB_DB_TO_API[ClaudeJobStatus] + +export function jobStatusToApi(s: ClaudeJobStatus): ClaudeJobStatusApi { + return JOB_DB_TO_API[s] +} + +export function jobStatusFromApi(s: string): ClaudeJobStatus | null { + return JOB_API_TO_DB[s.toLowerCase()] ?? null +} + +export const JOB_STATUS_API_VALUES = Object.values(JOB_DB_TO_API) +export const ACTIVE_JOB_STATUSES: ClaudeJobStatus[] = ['QUEUED', 'CLAIMED', 'RUNNING']