const nodemailer = require('nodemailer'); const logger = require('../utils/logger'); class EmailService { constructor() { this.transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: process.env.SMTP_PORT, secure: false, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASSWORD } }); } async sendReportEmail(to, order, report) { const mailOptions = { from: `"Landvex AI" <${process.env.SMTP_USER}>`, to, subject: `Din marknadsrapport är klar - ${order.productName}`, html: `

Din marknadsintelligensrapport är klar!

Hej,

Din marknadsrapport för ${order.productName} har genererats och är nu tillgänglig.

Sammanfattning

${report.executiveSummary || 'Rapporten innehåller en komplett marknadsanalys.'}

Visa rapport

Rapport-ID: ${report.id}
Genererad: ${new Date(report.generatedAt).toLocaleString('sv-SE')}


Landvex AI - Data-driven marknadsintelligens
www.landvex.ai

` }; try { await this.transporter.sendMail(mailOptions); logger.info(`Report email sent to ${to}`); } catch (error) { logger.error('Failed to send email:', error); throw error; } } async sendStatusUpdate(to, order) { const mailOptions = { from: `"Landvex AI" <${process.env.SMTP_USER}>`, to, subject: `Uppdatering om din beställning - ${order.productName}`, html: `

Statusuppdatering

Hej,

Din beställning för ${order.productName} har uppdaterats.

Status: ${this.translateStatus(order.status)}

Framsteg: ${order.progress}%

${order.progressMessage ? `

Info: ${order.progressMessage}

` : ''}

Du får ett nytt meddelande när rapporten är klar.


Landvex AI - Data-driven marknadsintelligens

` }; try { await this.transporter.sendMail(mailOptions); logger.info(`Status update sent to ${to}`); } catch (error) { logger.error('Failed to send status email:', error); } } translateStatus(status) { const translations = { pending: 'Väntar på start', data_collection: 'Samlar in data', analysis: 'Analyserar data', report_generation: 'Genererar rapport', completed: 'Klar', failed: 'Misslyckades' }; return translations[status] || status; } } module.exports = new EmailService();