import type { RecurrencePolicy, RecurrencePolicySetDescriptionAction, RecurrencePolicySetKeyAction, RecurrencePolicySetNameAction, RecurrencePolicySetScheduleAction, RecurrencePolicyUpdateAction, } from "@commercetools/platform-sdk"; import type { Writable } from "#src/types.ts"; import type { UpdateHandlerInterface } from "../abstract.ts"; import { AbstractUpdateHandler, type RepositoryContext } from "../abstract.ts"; export class RecurrencePolicyUpdateHandler extends AbstractUpdateHandler implements Partial< UpdateHandlerInterface > { setKey( context: RepositoryContext, resource: Writable, { key }: RecurrencePolicySetKeyAction, ) { if (key) { resource.key = key; } } setDescription( context: RepositoryContext, resource: Writable, { description }: RecurrencePolicySetDescriptionAction, ) { resource.description = description; } setName( context: RepositoryContext, resource: Writable, { name }: RecurrencePolicySetNameAction, ) { resource.name = name; } setSchedule( context: RepositoryContext, resource: Writable, { schedule }: RecurrencePolicySetScheduleAction, ) { resource.schedule = schedule; } }