subscriber-preference.interface.d.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { ChannelTypeEnum, PreferenceOverrideSourceEnum } from '../../types';
  2. import { INotificationTrigger } from '../notification-template';
  3. export interface IPreferenceChannels {
  4. email?: boolean;
  5. sms?: boolean;
  6. in_app?: boolean;
  7. chat?: boolean;
  8. push?: boolean;
  9. }
  10. export interface IPreferenceOverride {
  11. channel: ChannelTypeEnum;
  12. source: PreferenceOverrideSourceEnum;
  13. }
  14. export interface ISubscriberPreferenceResponse {
  15. template: ITemplateConfiguration;
  16. preference: IPreferenceResponse;
  17. }
  18. export interface IPreferenceResponse {
  19. enabled: boolean;
  20. channels: IPreferenceChannels;
  21. overrides: IPreferenceOverride[];
  22. }
  23. export interface ITemplateConfiguration {
  24. _id: string;
  25. name: string;
  26. critical: boolean;
  27. tags?: string[];
  28. triggers: INotificationTrigger[];
  29. }
  30. export declare enum PreferenceLevelEnum {
  31. GLOBAL = "global",
  32. TEMPLATE = "template"
  33. }
  34. export interface IOverridePreferencesSources {
  35. [PreferenceOverrideSourceEnum.TEMPLATE]: IPreferenceChannels;
  36. [PreferenceOverrideSourceEnum.SUBSCRIBER]: IPreferenceChannels;
  37. [PreferenceOverrideSourceEnum.WORKFLOW_OVERRIDE]?: IPreferenceChannels;
  38. }
  39. //# sourceMappingURL=subscriber-preference.interface.d.ts.map