import { EnvoyUserAPIScope } from '../sdk/EnvoyUserAPI'; import { eventMetaFactory } from './metaFactory'; export const eventBodyFactoryDefaultIds = { locationId: '1', companyId: '1', zoneId: '1', }; export type EventBodyFactoryOptions = { event: Event; config: Partial; payload: Payload; scope: Array; locationId?: string; companyId?: string; zoneId?: string; }; export default function eventBodyFactory< Event extends string = string, Config extends Record = Record, Payload extends Record = Record, >(options: EventBodyFactoryOptions) { return { meta: eventMetaFactory( options.event, options.config, options.scope, options.locationId || eventBodyFactoryDefaultIds.locationId, options.companyId || eventBodyFactoryDefaultIds.companyId, options.zoneId || eventBodyFactoryDefaultIds.zoneId, ).build(), payload: options.payload, }; }