const nodemailer = require('nodemailer'); // Create transporter const transporter = nodemailer.createTransport({ host: process.env.EMAIL_HOST, port: process.env.EMAIL_PORT, secure: false, auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASSWORD } }); const sendVerificationEmail = async (email, token) => { const verificationUrl = `${process.env.FRONTEND_URL}/verify-email/${token}`; const mailOptions = { from: process.env.EMAIL_FROM, to: email, subject: 'Verify Your Email - Oversize Route Builder', html: `

Welcome to Oversize Route Builder

Verify Your Email Address

Thank you for registering! Please verify your email address to activate your account and start building compliant routes for your oversized loads.

Verify Email Address

Or copy and paste this link into your browser:

${verificationUrl}

This link will expire in 24 hours.

` }; try { await transporter.sendMail(mailOptions); console.log('Verification email sent to:', email); } catch (error) { console.error('Error sending verification email:', error); throw error; } }; const sendPasswordResetEmail = async (email, token) => { const resetUrl = `${process.env.FRONTEND_URL}/reset-password/${token}`; const mailOptions = { from: process.env.EMAIL_FROM, to: email, subject: 'Reset Your Password - Oversize Route Builder', html: `

Password Reset Request

Reset Your Password

We received a request to reset your password. Click the button below to create a new password:

Reset Password

Or copy and paste this link into your browser:

${resetUrl}

This link will expire in 1 hour.

If you didn't request a password reset, please ignore this email.

` }; try { await transporter.sendMail(mailOptions); console.log('Password reset email sent to:', email); } catch (error) { console.error('Error sending password reset email:', error); throw error; } }; const sendPermitProcessedEmail = async (email, permitNumber, state) => { const dashboardUrl = `${process.env.FRONTEND_URL}/dashboard/permits`; const mailOptions = { from: process.env.EMAIL_FROM, to: email, subject: `Permit ${permitNumber} Processed Successfully`, html: `

✓ Permit Processed

Your permit has been processed successfully!

Permit Number: ${permitNumber}

State: ${state}

Your route information has been extracted and is ready for viewing.

View in Dashboard

` }; try { await transporter.sendMail(mailOptions); console.log('Permit processed email sent to:', email); } catch (error) { console.error('Error sending permit processed email:', error); } }; module.exports = { sendVerificationEmail, sendPasswordResetEmail, sendPermitProcessedEmail };