import type { Request, Response, NextFunction } from 'express';
import { ContactService, type ContactPayload } from '../services/contact.service';
import { validateContact } from '../utils/validators';

export const ContactController = {
  async create(req: Request, res: Response, next: NextFunction) {
    try {
      const errors = validateContact(req.body);
      if (errors.length > 0) {
        return res.status(400).json({ errors });
      }

      const payload = req.body as ContactPayload;
      await ContactService.sendContactMessage(payload);

      res.status(201).json({ success: true, message: 'Message envoyé avec succès' });
    } catch (err) {
      console.error('Erreur envoi email contact:', err);
      next(err);
    }
  },
};