import { NextRequest, NextResponse } from "next/server";
import { hasPermission } from "@/lib/adminAuth";
import { listFolder, PHOTOGRAPHY_ROOT } from "@/lib/nextcloud";

export async function GET(req: NextRequest) {
  // Wird sowohl von der Auftragsseite als auch von der Kundendetailseite aus
  // geöffnet (Foto-Ordner-Zuweisung) — daher zählt hier wie bei den
  // zugehörigen Server-Actions sowohl orders- als auch clients-Berechtigung.
  if (!(await hasPermission("orders_view")) && !(await hasPermission("clients_view"))) {
    return new NextResponse("Unauthorized", { status: 401 });
  }

  const path = req.nextUrl.searchParams.get("path") || PHOTOGRAPHY_ROOT;
  try {
    const entries = await listFolder(path);
    return NextResponse.json({ path, entries: entries.filter((e) => e.isDirectory) });
  } catch (err) {
    return NextResponse.json({ error: err instanceof Error ? err.message : "Fehler" }, { status: 500 });
  }
}
