diff --git a/src/jobs/sendEmailTask.ts b/src/jobs/sendEmailTask.ts index 77ed254..45b254e 100644 --- a/src/jobs/sendEmailTask.ts +++ b/src/jobs/sendEmailTask.ts @@ -15,7 +15,7 @@ export interface SendEmailTaskInput { to: string | string[] cc?: string | string[] bcc?: string | string[] - scheduledAt?: string // ISO date string + scheduledAt?: string | Date // ISO date string or Date object priority?: number // Allow any additional fields that users might have in their email collection diff --git a/src/sendEmail.ts b/src/sendEmail.ts index 6ca74f5..91cca46 100644 --- a/src/sendEmail.ts +++ b/src/sendEmail.ts @@ -100,6 +100,23 @@ export const sendEmail = async 0 ? validated[0] : undefined } + // Normalize Date objects to ISO strings for consistent database storage + if (emailData.scheduledAt instanceof Date) { + emailData.scheduledAt = emailData.scheduledAt.toISOString() + } + if (emailData.sentAt instanceof Date) { + emailData.sentAt = emailData.sentAt.toISOString() + } + if (emailData.lastAttemptAt instanceof Date) { + emailData.lastAttemptAt = emailData.lastAttemptAt.toISOString() + } + if (emailData.createdAt instanceof Date) { + emailData.createdAt = emailData.createdAt.toISOString() + } + if (emailData.updatedAt instanceof Date) { + emailData.updatedAt = emailData.updatedAt.toISOString() + } + // Create the email in the collection with proper typing const email = await payload.create({ collection: collectionSlug,