import { NextRequest, NextResponse } from "next/server";
import { requireAuth } from "@/lib/admin/auth";
import { db } from "@/lib/admin/db";
import { resolveAuthorFromUser } from "@/lib/admin/authors";

export const dynamic = "force-dynamic";

/**
 * GET /api/admin/authors
 * Returns all active administrators and sub-administrators eligible to author articles.
 */
export async function GET(req: NextRequest) {
  try {
    // Require valid admin session (accessible to both Main Admin and Sub-Admins)
    await requireAuth(req);

    const users = await db.getUsers();
    const activeUsers = users.filter((u) => u.status === "ACTIVE");
    const authors = activeUsers.map(resolveAuthorFromUser);

    return NextResponse.json({ authors });
  } catch (err: any) {
    console.error("[GET /api/admin/authors] Error:", err);
    return NextResponse.json(
      { error: err.message || "Failed to load authors directory." },
      { status: err.status || 500 }
    );
  }
}
