const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: parseInt(process.env.SMTP_PORT) || 587, secure: false, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } }); async function sendNotification(emails, subject, text) { if (!emails) return; const recipients = emails.split(',').map(e => e.trim()).filter(Boolean); if (recipients.length === 0) return; try { await transporter.sendMail({ from: process.env.SMTP_USER, to: recipients.join(','), subject, text }); console.log(`Уведомление отправлено на ${recipients.join(', ')}`); } catch (err) { console.error('Ошибка отправки письма:', err); } } async function notifyNewBooking(booking) { const subject = `Новая заявка №${booking.external_id} (${process.env.SERVICE_NAME})`; const text = `Поступила новая заявка на заселение.\n Имя: ${booking.name} Телефон: ${booking.phone_raw} Даты: с ${booking.checkin_date} по ${booking.checkout_date} Взрослых: ${booking.adults}, детей: ${booking.children} Ссылка: ${process.env.SERVICE_URL}/admin/bookings`; await sendNotification(process.env.EMAIL_NOTIFY_NEW, subject, text); } async function notifyBookingUpdate(booking, changes) { const subject = `Изменение заявки №${booking.external_id} (${process.env.SERVICE_NAME})`; const text = `Заявка №${booking.external_id} была изменена.\n Новый статус: ${booking.status} Комментарий: ${booking.comments || 'нет'} Изменения: ${JSON.stringify(changes, null, 2)} Ссылка: ${process.env.SERVICE_URL}/admin/bookings`; await sendNotification(process.env.EMAIL_NOTIFY_UPDATE, subject, text); } module.exports = { notifyNewBooking, notifyBookingUpdate };