import { NextRequest, NextResponse } from "next/server";
import db from "@/lib/db";
import { getLogger } from "@/utils/logger";

export const dynamic = "force-dynamic";

const logger = getLogger("/api/categories");


export async function GET(req: NextRequest) {
    try {

        const mainCategories = await db.categories.findMany({
            where: {
                category_type: 'MAIN_CATEGORY',
            },
            orderBy: {
                updated_on: 'asc',
            },
            include: {
                children: {
                    include: {
                        children: true,
                    }
                }
            }
        })

        return NextResponse.json({ data: mainCategories }, { status: 200 });

    } catch (error: any) {
        logger.error("Failed to fetch MAIN Categories", {
            error: error?.config?.data ?? error?.message ?? "Unknown error"
        })

        return new Response("Internal Server Error", { status: 500 });
    }
}