import type { InvalidOperationError, ProductTailoring, ProductTailoringUpdateAction, } from "@commercetools/platform-sdk"; import type { Config } from "#src/config.ts"; import { CommercetoolsError } from "#src/exceptions.ts"; import { ProductTailoringDraftSchema } from "#src/schemas/generated/product-tailoring.ts"; import type { RepositoryContext, UpdateHandlerInterface } from "./abstract.ts"; import { AbstractResourceRepository, AbstractUpdateHandler, } from "./abstract.ts"; export class ProductTailoringRepository extends AbstractResourceRepository<"product-tailoring"> { constructor(config: Config) { super("product-tailoring", config); this.actions = new ProductTailoringUpdateHandler(this._storage); this.draftSchema = ProductTailoringDraftSchema; } async create( context: RepositoryContext, draft: any, ): Promise { throw new CommercetoolsError( { code: "InvalidOperation", message: "Create method for product-tailoring not implemented.", }, 400, ); } } class ProductTailoringUpdateHandler extends AbstractUpdateHandler implements Partial< UpdateHandlerInterface > { setSlug() { throw new CommercetoolsError( { code: "InvalidOperation", message: "SetSlug method for product-tailoring not implemented.", }, 400, ); } }