import { MUserWithNotificationSetting , UserNotificationModelForApi } from '@server/types/models' ; import { EmailPayload , UserNotificationSettingValue } from '@shared/models' ; export abstract class AbstractNotification < T , U = MUserWithNotificationSetting > { constructor ( protected readonly payload ) { } abstract prepare ( ) ; abstract log ( ) ; abstract getSetting ( user ) ; abstract getTargetUsers ( ) ; abstract createNotification ( user ) ; abstract createEmail ( to ) ; isDisabled ( ) { return false ; } }