import { NextRequest, NextResponse } from "next/server";
import prisma from "@/lib/db";
import { getSession } from "@/lib/auth";

export async function GET() {
    try {
        const cats = await prisma.category.findMany({
            include: {
                _count: { select: { projects: true, articles: true } }
            },
            orderBy: { name: "asc" }
        });
        return NextResponse.json(cats);
    } catch (e) { return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); }
}

export async function POST(req: NextRequest) {
    const session = await getSession();
    if (!session) return NextResponse.json({ error: "Non autorisé" }, { status: 401 });

    try {
        const { name } = await req.json();
        if (!name) return NextResponse.json({ error: "Le nom est requis" }, { status: 400 });

        const cat = await prisma.category.create({ data: { name } });
        return NextResponse.json(cat, { status: 201 });
    } catch (e) {
        return NextResponse.json({ error: "Erreur serveur (ce nom existe peut-être déjà)" }, { status: 500 });
    }
}
