import { NextResponse } from "next/server";
import nodemailer from "nodemailer";

export async function POST(req: Request) {
    try {
        const { name, company, email, phone, message } = await req.json();

        // Configuración de transporte (SMTP)
        // El usuario debería configurar estas variables en su .env
        const transporter = nodemailer.createTransport({
            host: process.env.EMAIL_HOST || "smtp.gmail.com",
            port: parseInt(process.env.EMAIL_PORT || "587"),
            secure: process.env.EMAIL_SECURE === "true", // true para 465, false para otros
            auth: {
                user: process.env.EMAIL_USER, // Tu correo
                pass: process.env.EMAIL_PASS, // Tu contraseña de aplicación
            },
        });

        const mailOptions = {
            from: `"Consulta Web" <${process.env.EMAIL_USER}>`,
            replyTo: email,
            to: "ventas@dreinet.com",
            subject: `Consulta Web: ${name} - ${company}`,
            text: `
                Nombre: ${name}
                Empresa: ${company}
                Email: ${email}
                WhatsApp: ${phone}
                
                Mensaje:
                ${message}
            `,
            html: `
                <div style="font-family: sans-serif; max-width: 600px; margin: auto; border: 1px solid #eee; padding: 20px; border-radius: 10px;">
                    <h2 style="color: #3b82f6;">Consulta Web: ${name}</h2>
                    <p><strong>Nombre:</strong> ${name}</p>
                    <p><strong>Empresa:</strong> ${company}</p>
                    <p><strong>Email:</strong> ${email}</p>
                    <p><strong>WhatsApp:</strong> <a href="https://wa.me/${phone}">+${phone}</a></p>
                    <hr style="border: 0; border-top: 1px solid #eee; margin: 20px 0;">
                    <p><strong>Mensaje:</strong></p>
                    <p style="white-space: pre-wrap;">${message}</p>
                </div>
            `,
        };

        // Si no hay configuración de email, simulamos éxito en desarrollo
        if (!process.env.EMAIL_USER || !process.env.EMAIL_PASS) {
            console.log("-----------------------------------------");
            console.log("SIMULACIÓN DE ENVÍO DE EMAIL (Sin Configuración)");
            console.log("Para: ventas@dreinet.com");
            console.log("De:", email);
            console.log("Mensaje:", message);
            console.log("-----------------------------------------");

            // Simulamos un pequeño delay
            await new Promise(resolve => setTimeout(resolve, 1000));

            return NextResponse.json({
                success: true,
                message: "Simulated success (Config missing)"
            });
        }

        await transporter.sendMail(mailOptions);

        return NextResponse.json({ success: true });
    } catch (error: any) {
        console.error("Error sending email:", error);
        return NextResponse.json(
            { error: "Error enviando el mensaje: " + error.message },
            { status: 500 }
        );
    }
}
