import { NextResponse } from "next/server";
import { prisma } from "@/lib/prisma";
import { requireRole } from "@/lib/auth";

/** Own institution + its branches (child institutions such as Primary School,
    High School) — used to target an exam at a specific branch. */
export async function GET() {
  const session = await requireRole("INSTITUTION_ADMIN");
  if (!session || !session.institutionId) {
    return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
  }

  const [institution, branches] = await Promise.all([
    prisma.institution.findUnique({
      where: { id: session.institutionId },
      select: { id: true, name: true, type: true },
    }),
    prisma.institution.findMany({
      where: { parentId: session.institutionId },
      select: { id: true, name: true, type: true, status: true },
      orderBy: { name: "asc" },
    }),
  ]);
  if (!institution) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });

  return NextResponse.json({ institution, branches });
}
