// Email service for Spanglish platform // Supports multiple email providers: Resend, SMTP (Nodemailer) // // This module is a thin facade. The implementation is split across ./email/*: // - transport: provider config, SMTP, low-level sendEmail, diagnostics // - formatting: common variables, timezone, date/time/currency helpers // - templateService: template DB access, seeding, template/custom send + logging // - bookingEmails: booking confirmation // - paymentEmails: receipt, instructions, rejection, reminder, payment config // - bulkEmails: event-wide queued sends import { sendEmail, getProviderInfo, testConnection } from './email/transport.js'; import { getCommonVariables, getSiteTimezone, formatDate, formatTime, formatCurrency, } from './email/formatting.js'; import { getTemplate, seedDefaultTemplates, sendTemplateEmail, sendCustomEmail, resendFromLog, } from './email/templateService.js'; import { sendBookingConfirmation } from './email/bookingEmails.js'; import { sendPaymentReceipt, getPaymentConfig, sendPaymentInstructions, sendPaymentRejectionEmail, sendPaymentReminder, } from './email/paymentEmails.js'; import { queueEventEmails } from './email/bulkEmails.js'; export const emailService = { // Diagnostics getProviderInfo, testConnection, // Formatting / variables getCommonVariables, getSiteTimezone, formatDate, formatTime, formatCurrency, // Templates + core sending getTemplate, seedDefaultTemplates, sendTemplateEmail, sendCustomEmail, resendFromLog, // Domain senders sendBookingConfirmation, sendPaymentReceipt, getPaymentConfig, sendPaymentInstructions, sendPaymentRejectionEmail, sendPaymentReminder, // Bulk queueEventEmails, }; // Export the main sendEmail function for direct use export { sendEmail }; export default emailService;