feat: implement comprehensive notification engine with policies, preferences, and automated dispatching services

This commit is contained in:
2026-07-21 18:53:11 -03:00
parent 40090cdec5
commit 10ca449f88
82 changed files with 10249 additions and 171 deletions
@@ -36,9 +36,18 @@ export type FindAppointmentsByCollaboratorPaginatedParams = FindAppointmentsByCo
export enum APPOINTMENT_NOTIFICATION_TYPE {
"CREATION" = "creation",
"REMINDER" = "reminder",
"CANCELLATION" = "cancellation",
}
export type SendAppointmentNotificationParams = {
appointmentId: string;
sessionUser?: string;
systemToken?: string;
type: APPOINTMENT_NOTIFICATION_TYPE;
channel?: "whatsapp" | "email";
};
export type CreateImmediateAppointmentNotificationJobsParams = {
appointmentId: string;
sessionUser: string;
type: APPOINTMENT_NOTIFICATION_TYPE;
@@ -63,6 +72,7 @@ export type ChangeServiceParams = {
export type SendWapSystemNotificationParams = {
appointmentId: string;
systemToken: string;
type: APPOINTMENT_NOTIFICATION_TYPE;
};
export type HeatMapConfig = {
@@ -121,6 +131,7 @@ export type UpdateAppointmentParams = {
export type DeleteAppointmentParams = {
id: string;
validation?: boolean;
notification?: boolean;
sessionUser: string;
};
@@ -315,6 +326,7 @@ export interface IAppointmentsManager {
getAvailableDates(data: GetAvailableDatesParams): Promise<GetAvailableDatesResult>;
sendWapNotification(data: SendAppointmentNotificationParams): Promise<void>;
sendEmailNotification(data: SendAppointmentNotificationParams): Promise<void>;
createImmediateNotificationJobs(data: CreateImmediateAppointmentNotificationJobsParams): Promise<void>;
sendWapSystemNotification(data: SendWapSystemNotificationParams): Promise<void>;
deleteAppointmentsByCompany(data: DeleteAppointmentsByCompanyParams): Promise<void>;
changeEmployeeToOwner(data: ChangeEmployeeToOwnerParams): Promise<void>;