import { EBindKey, EExchangeNames, EExchangeTypes, IMessageEvent, TEventBaseData, TEventRetryCounts } from "../events/index.js"; import { ENotificationType, INotificationAction, INotificationAttrs } from "./communication/index.js"; import { ITenant, TTenantLogo } from "./tenant/index.js"; import { ESupportedLanguages } from "./translation/index.js"; import { EUserRoles } from "../middleware/index.js"; export type TNotificationData = { title: string; notification: INotificationAttrs; } & TEventBaseData; export interface IUserNotificationEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_NOTIFICATION; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_NOTIFICATION; data?: TNotificationData[]; } export type TSendEmailNotificationData = { tenant: Pick; retry: TEventRetryCounts; data: { role: EUserRoles; type: ENotificationType; subject: string; email: string; firstName: string; lastName: string; message: string[]; actionUrl: string | null; lng: ESupportedLanguages; }; }; export interface ISendEmailNotificationEvent extends IMessageEvent { exchangeName: EExchangeNames.SEND_EMAIL_NOTIFICATION; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.SEND_EMAIL_NOTIFICATION; data?: TSendEmailNotificationData; } export type TSendPushNotificationData = { tenant: Pick; retry: TEventRetryCounts; data: { type: ENotificationType; role: EUserRoles; subject: string; token: string; firstName: string; lastName: string; message: string[]; actions: INotificationAction[]; actionUrl: string | null; lng: ESupportedLanguages; }; }; export interface ISendPushNotificationEvent extends IMessageEvent { exchangeName: EExchangeNames.SEND_PUSH_NOTIFICATION; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.SEND_PUSH_NOTIFICATION; data?: TSendPushNotificationData; } export type TSendEmailVerificationData = { email: string; firstName: string; lastName: string; logo: TTenantLogo; pin: string; lng: ESupportedLanguages; actionUrl: string | null; } & TEventBaseData; export interface ISendEmailVerificationEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_EMAIL_VERIFICATION; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_EMAIL_VERIFICATION; data?: TSendEmailVerificationData; } export type TSendUserValidateEmailData = { employeeId: string; password: string; email: string; } & TEventBaseData; export interface ISendValidateUserEmailEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_VALIDATE_EMAIL; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_VALIDATE_EMAIL; data?: TSendUserValidateEmailData; } export type TSendInviteData = { firstName: string; lastName: string; userRole: EUserRoles; username: string; temporaryPassword: string; lng: ESupportedLanguages; actionUrl: string | null; admin: { firstName: string; lastName: string; } | null; companyName: string; logo: TTenantLogo; } & TEventBaseData; export type TSendEmergencyUserSmsData = { smsId: string; message: string; mobileNumber: string; } & TEventBaseData; export interface ISendEmergencyUserSmsEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_EMERGENCY_SMS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_EMERGENCY_SMS; data?: TSendEmergencyUserSmsData; } //# sourceMappingURL=communication-events.d.ts.map