// Backend minimal Node.js pour traiter le formulaire de contact Hugo
// Place ce fichier à la racine du projet ou dans un dossier backend/
// Nécessite: npm install express nodemailer cors


require('dotenv').config();
const express = require('express');
const nodemailer = require('nodemailer');
const cors = require('cors');
const multer = require('multer');
const upload = multer();
const app = express();
const PORT = process.env.PORT || 3001;

// Middleware
app.use(cors());
// NE PAS utiliser express.urlencoded/json pour /contact, sinon req.body sera vide avec FormData

// Configurer le transporteur SMTP depuis .env
const transporter = nodemailer.createTransport({
  host: process.env.SMTP_HOST,
  port: parseInt(process.env.SMTP_PORT, 10),
  secure: process.env.SMTP_SECURE === 'true',
  auth: {
    user: process.env.SMTP_USER,
    pass: process.env.SMTP_PASS
  }
});

app.post('/contact', upload.none(), async (req, res) => {
  // Vérification de la présence de req.body
  if (!req.body) {
    console.log(req.body);
    return res.status(400).send('Aucune donnée reçue.');
  }
  // Anti-robot honeypot
  if (req.body.website && req.body.website.trim() !== '') {
    return res.status(400).send('Bot détecté.');
  }
  const { email, sujet, message } = req.body;
  if (!email || !sujet || !message) {
    return res.status(400).send('Champs manquants.');
  }
  try {
    await transporter.sendMail({
      from: process.env.SMTP_USER,
      to: process.env.SMTP_USER,
      replyTo: email,
      subject: `Contact site: ${sujet}`,
      text: `Email: ${email}\nSujet: ${sujet}\nMessage:\n${message}`
    });
    res.status(200).send('Message envoyé !');
  } catch (err) {
    res.status(500).send("Erreur d'envoi: " + err.message);
  }
});

app.listen(PORT, () => {
  console.log(`Serveur contact en écoute sur http://localhost:${PORT}`);
});
