import { NextRequest, NextResponse } from "next/server";
import prisma from "@/lib/db";
import { getSession } from "@/lib/auth";
import { sendNotificationEmail } from "@/lib/mail";

export async function GET() {
    const session = await getSession();
    if (!session) return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
    try {
        const quotes = await (prisma as any).quoteRequest.findMany({
            include: { service: true },
            orderBy: { createdAt: "desc" }
        });
        return NextResponse.json(quotes);
    } catch { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}

export async function POST(req: NextRequest) {
    try {
        const data = await req.json();
        const quote = await (prisma as any).quoteRequest.create({ data });

        // Notification Email
        await sendNotificationEmail(
            `Nouvelle demande de devis: ${data.firstName} ${data.lastName}`,
            `<h3>Vous avez reçu une nouvelle demande de devis</h3>
             <p><strong>Client:</strong> ${data.firstName} ${data.lastName}</p>
             <p><strong>Email:</strong> ${data.email}</p>
             <p><strong>Téléphone:</strong> ${data.phone}</p>
             <p><strong>Budget estimé:</strong> ${data.budget || 'Non spécifié'}</p>
             <p><strong>Détails du projet:</strong><br/>${data.details}</p>`
        );

        return NextResponse.json(quote, { status: 201 });
    } catch { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}
