import nodemailer from 'nodemailer';

const transporter = nodemailer.createTransport({
  service: 'Gmail',
  auth: {
    user: process.env.EMAIL_USER, 
    pass: process.env.EMAIL_PASS, 
  },
});
 
const sendActivationEmail = async (email, activationCode) => {
  const mailOptions = {
    from: process.env.EMAIL_USER,
    to: email,
    subject: 'Account Activation',
    text: `Activate your account by clicking the following link: ${process.env.BASE_URL}/activate/${activationCode}`,
  };
  await transporter.sendMail(mailOptions);
};

const sendPasswordResetEmail = async (email, resetToken) => {
  const resetLink = `${process.env.BASE_URL}/reset-password/${resetToken}`;
  const mailOptions = {
    from: process.env.EMAIL_USER,
    to: email,
    subject: 'Passwort zurücksetzen',
    html: `
      <div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
        <h2 style="color: #333;">Passwort zurücksetzen</h2>
        <p>Du hast eine Anfrage zum Zurücksetzen deines Passworts gestellt.</p>
        <p>Klicke auf den folgenden Link, um ein neues Passwort zu vergeben:</p>
        <p style="margin: 20px 0;">
          <a href="${resetLink}" 
             style="background-color: #4CAF50; color: white; padding: 12px 24px; text-decoration: none; border-radius: 4px; display: inline-block;">
            Passwort zurücksetzen
          </a>
        </p>
        <p style="color: #666; font-size: 14px;">
          Dieser Link ist <strong>1 Stunde</strong> gültig.<br>
          Falls du diese Anfrage nicht gestellt hast, ignoriere diese E-Mail einfach.
        </p>
        <hr style="border: none; border-top: 1px solid #eee; margin: 20px 0;">
        <p style="color: #999; font-size: 12px;">
          Falls der Button nicht funktioniert, kopiere diesen Link in deinen Browser:<br>
          <a href="${resetLink}">${resetLink}</a>
        </p>
      </div>
    `,
  };
  await transporter.sendMail(mailOptions);
};

export { sendActivationEmail, sendPasswordResetEmail };
