feat: implement comprehensive notification engine with policies, preferences, and automated dispatching services
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import { NotificationChannel } from "../NotificationJobs/NotificationJobs.Interface";
|
||||
|
||||
export interface IClientNotificationPreferences {
|
||||
id?: string;
|
||||
userId: string;
|
||||
preferredChannels: NotificationChannel[];
|
||||
mutedChannels: NotificationChannel[];
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
}
|
||||
|
||||
export interface FindClientPreferencesParams {
|
||||
userId?: string;
|
||||
}
|
||||
|
||||
export interface IClientNotificationPreferencesAdapter {
|
||||
findOne(
|
||||
filters: FindClientPreferencesParams
|
||||
): Promise<IClientNotificationPreferences | null>;
|
||||
upsert(
|
||||
userId: string,
|
||||
data: Partial<
|
||||
Omit<IClientNotificationPreferences, "id" | "userId" | "createdAt" | "updatedAt">
|
||||
>
|
||||
): Promise<IClientNotificationPreferences>;
|
||||
}
|
||||
Reference in New Issue
Block a user