import type { OrderEdit, OrderEditDraft, OrderEditResult, } from "@commercetools/platform-sdk"; import type { Config } from "#src/config.ts"; import { OrderEditDraftSchema } from "#src/schemas/generated/order-edit.ts"; import { getBaseResourceProperties } from "../helpers.ts"; import type { RepositoryContext } from "./abstract.ts"; import { AbstractResourceRepository } from "./abstract.ts"; export class OrderEditRepository extends AbstractResourceRepository<"order-edit"> { constructor(config: Config) { super("order-edit", config); this.draftSchema = OrderEditDraftSchema; } async create( context: RepositoryContext, draft: OrderEditDraft, ): Promise { const resource: OrderEdit = { ...getBaseResourceProperties(context.clientId), stagedActions: draft.stagedActions ?? [], resource: draft.resource, result: { type: "NotProcessed", } as OrderEditResult, }; return await this.saveNew(context, resource); } }