import { NextRequest, NextResponse } from "next/server";
import prisma from "@/lib/db";
import { getSession } from "@/lib/auth";

export async function GET(_: NextRequest, { params }: { params: Promise<{ id: string }> }) {
    const { id } = await params;
    try {
        const service = await (prisma as any).service.findUnique({ where: { id } });
        if (!service) return NextResponse.json({ error: "Non trouvé" }, { status: 404 });
        return NextResponse.json(service);
    } catch { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}

export async function PUT(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
    const session = await getSession();
    if (!session) return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
    const { id } = await params;
    try {
        const data = await req.json();
        const service = await (prisma as any).service.update({ where: { id }, data });
        return NextResponse.json(service);
    } catch { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}

export async function DELETE(_: NextRequest, { params }: { params: Promise<{ id: string }> }) {
    const session = await getSession();
    if (!session) return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
    const { id } = await params;
    try {
        await (prisma as any).service.delete({ where: { id } });
        return NextResponse.json({ success: true });
    } catch { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}
