import { NextRequest, NextResponse } from 'next/server';
import { sendUniversalEmailV2, EmailDataV2 } from '@/lib/emailTemplateService';

/**
 * POST /api/emails/contact-support
 * 
 * Route API pour envoyer un message de contact au support Odentas
 * Utilise le système universel d'emails v2
 */
export async function POST(request: NextRequest) {
  console.log('=== API Contact Support ===');
  
  try {
    // 1. Récupération et validation des données
    const data = await request.json();
    console.log('📦 Données reçues:', {
      name: data.name,
      email: data.email,
      messageLength: data.message?.length || 0
    });

    const { name, email, message } = data;

    // Validation des champs requis
    if (!name || !email || !message) {
      console.error('❌ Champs requis manquants');
      return NextResponse.json(
        { 
          error: 'Tous les champs sont requis',
          success: false
        },
        { status: 400 }
      );
    }

    // Validation format email
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (!emailRegex.test(email)) {
      console.error('❌ Format email invalide');
      return NextResponse.json(
        { 
          error: 'Format d\'email invalide',
          success: false
        },
        { status: 400 }
      );
    }

    // 2. Préparation des données de l'email
    const emailData: EmailDataV2 = {
      name: name,
      email: email,
      message: message,
      submittedAt: new Date().toLocaleString('fr-FR', {
        dateStyle: 'long',
        timeStyle: 'short'
      })
    };

    console.log('📧 Préparation de l\'envoi de l\'email au support');

    // 3. Envoi de l'email via le système universel v2
    const messageId = await sendUniversalEmailV2({
      type: 'contact-support',
      toEmail: 'paie@odentas.fr',
      data: emailData,
    });

    console.log('✅ Email de contact envoyé avec succès:', {
      messageId,
      from: email,
      name: name
    });

    // 4. Retour du succès
    return NextResponse.json({
      success: true,
      messageId
    });

  } catch (error) {
    console.error('❌ Erreur lors de l\'envoi de l\'email de contact:', error);
    
    return NextResponse.json(
      { 
        error: 'Échec de l\'envoi du message',
        success: false,
        message: error instanceof Error ? error.message : 'Unknown error'
      },
      { status: 500 }
    );
  }
}
