import type { HackleSubscriptionStatus } from './HackleSubscriptionStatus'; import { ObjectUtil } from '../../utils'; type HackleSubscriptionOperationsRecord = Map; export class HackleSubscriptionOperations { private readonly _operations: HackleSubscriptionOperationsRecord; constructor(operations?: HackleSubscriptionOperationsRecord) { this._operations = operations ?? new Map(); } toRecord(): Record { return ObjectUtil.fromMap(this._operations); } } export class HackleSubscriptionOperationsBuilder { private operations: HackleSubscriptionOperationsRecord = new Map(); marketing( value: HackleSubscriptionStatus ): HackleSubscriptionOperationsBuilder { return this.add('$marketing', value); } information( value: HackleSubscriptionStatus ): HackleSubscriptionOperationsBuilder { return this.add('$information', value); } custom( key: string, value: HackleSubscriptionStatus ): HackleSubscriptionOperationsBuilder { return this.add(key, value); } build(): HackleSubscriptionOperations { return new HackleSubscriptionOperations(new Map(this.operations)); } private add( key: string, value: HackleSubscriptionStatus ): HackleSubscriptionOperationsBuilder { this.operations.set(key, value); return this; } }