diff --git a/packages/lib/jobs/client.ts b/packages/lib/jobs/client.ts index b8cea4bde..b7dd5d9f6 100644 --- a/packages/lib/jobs/client.ts +++ b/packages/lib/jobs/client.ts @@ -3,7 +3,6 @@ import { SEND_CONFIRMATION_EMAIL_JOB_DEFINITION } from './definitions/emails/sen import { SEND_DAILY_REMINDER_EMAIL_JOB } from './definitions/emails/send-daily-reminder-email'; import { SEND_DOCUMENT_CANCELLED_EMAILS_JOB_DEFINITION } from './definitions/emails/send-document-cancelled-emails'; import { SEND_HOURLY_REMINDER_EMAIL_JOB } from './definitions/emails/send-hourly-reminder-email'; -import { SEND_MONTHLY_REMINDER_EMAIL_JOB } from './definitions/emails/send-monthly-reminder-email'; import { SEND_PASSWORD_RESET_SUCCESS_EMAIL_JOB_DEFINITION } from './definitions/emails/send-password-reset-success-email'; import { SEND_RECIPIENT_SIGNED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-recipient-signed-email'; import { SEND_SIGNING_REJECTION_EMAILS_JOB_DEFINITION } from './definitions/emails/send-rejection-emails'; @@ -11,7 +10,6 @@ import { SEND_SIGNING_EMAIL_JOB_DEFINITION } from './definitions/emails/send-sig import { SEND_TEAM_DELETED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-team-deleted-email'; import { SEND_TEAM_MEMBER_JOINED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-team-member-joined-email'; import { SEND_TEAM_MEMBER_LEFT_EMAIL_JOB_DEFINITION } from './definitions/emails/send-team-member-left-email'; -import { SEND_WEEKLY_REMINDER_EMAIL_JOB } from './definitions/emails/send-weekly-reminder-email'; import { BULK_SEND_TEMPLATE_JOB_DEFINITION } from './definitions/internal/bulk-send-template'; import { SEAL_DOCUMENT_JOB_DEFINITION } from './definitions/internal/seal-document'; @@ -33,8 +31,6 @@ export const jobsClient = new JobClient([ BULK_SEND_TEMPLATE_JOB_DEFINITION, SEND_HOURLY_REMINDER_EMAIL_JOB, SEND_DAILY_REMINDER_EMAIL_JOB, - SEND_WEEKLY_REMINDER_EMAIL_JOB, - SEND_MONTHLY_REMINDER_EMAIL_JOB, ] as const); export const jobs = jobsClient; diff --git a/packages/lib/jobs/definitions/emails/send-reminder.handler.ts b/packages/lib/jobs/definitions/emails/send-reminder.handler.ts index 706ec4255..70ac2ae31 100644 --- a/packages/lib/jobs/definitions/emails/send-reminder.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-reminder.handler.ts @@ -12,13 +12,12 @@ import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { RECIPIENT_ROLES_DESCRIPTION } from '../../../constants/recipient-roles'; +import { DOCUMENT_AUDIT_LOG_TYPE, DOCUMENT_EMAIL_TYPE } from '../../../types/document-audit-logs'; import { extractDerivedDocumentEmailSettings } from '../../../types/document-email'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; import { shouldSendReminder } from '../../../utils/should-send-reminder'; import type { JobRunIO } from '../../client/_internal/job'; -// TODO: Add Audit Log import and usage - export type SendReminderHandlerOptions = { io: JobRunIO; intervals: DocumentReminderInterval[]; @@ -150,17 +149,33 @@ export async function run({ io, intervals }: SendReminderHandlerOptions) { text, }); - // Update recipient status (might be redundant if only tracking lastReminderSentAt on DocumentMeta) await prisma.recipient.update({ where: { id: recipient.id }, data: { sendStatus: SendStatus.SENT }, }); }); - // TODO: Duncan == Audit log - // await io.runTask(`log-reminder-${recipient.id}`, async () => { - // await prisma.documentAuditLog.create(...); - // }); + await io.runTask(`log-reminder-${recipient.id}`, async () => { + await prisma.documentAuditLog.create({ + data: { + type: DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT, + documentId: document.id, + userId: document.userId, + data: { + type: DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT, + data: { + recipientEmail: recipient.email, + recipientName: recipient.name, + recipientId: recipient.id, + recipientRole: recipient.role, + emailType: DOCUMENT_EMAIL_TYPE.REMINDER, + isResending: false, + }, + }, + ipAddress: undefined, + }, + }); + }); } catch (error) { io.logger.error(`Error processing reminder for recipient ${recipient.id}`, error); } diff --git a/packages/lib/types/document-audit-logs.ts b/packages/lib/types/document-audit-logs.ts index cb7873834..374b45c23 100644 --- a/packages/lib/types/document-audit-logs.ts +++ b/packages/lib/types/document-audit-logs.ts @@ -48,6 +48,7 @@ export const ZDocumentAuditLogEmailTypeSchema = z.enum([ 'ASSISTING_REQUEST', 'CC', 'DOCUMENT_COMPLETED', + 'REMINDER', ]); export const ZDocumentMetaDiffTypeSchema = z.enum([