import type { Payload } from "payload"; import type { IJobQueue } from "./job-queue.interface"; export class PayloadJobQueue implements IJobQueue { constructor(private readonly payload: Payload) {} async enqueue( taskSlug: string, input: T, options?: { runAt?: Date }, ): Promise<{ jobId: string }> { const result = await this.payload.jobs.queue({ task: taskSlug, input: input as never, waitUntil: options?.runAt, } as never); const jobId = (result as { id: string | number }).id; return { jobId: String(jobId) }; } }