import { NextResponse } from "next/server";
import { requireRole } from "@/lib/auth";
import { getReferralDiscountPct, setReferralDiscountPct } from "@/lib/referral";

/** Central panel → referral program setting: the discount percentage applied
 *  to the first package purchase of institutions that registered with a
 *  subscriber's referral code (default 15%). */

export async function GET() {
  const session = await requireRole("SUPER_ADMIN");
  if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
  return NextResponse.json({ discountPct: await getReferralDiscountPct() });
}

export async function PUT(req: Request) {
  const session = await requireRole("SUPER_ADMIN");
  if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });

  try {
    const body = await req.json();
    const n = Number(body.discountPct);
    if (!Number.isFinite(n) || n < 0) {
      return NextResponse.json({ error: "INVALID_PCT" }, { status: 400 });
    }
    const saved = await setReferralDiscountPct(n);
    return NextResponse.json({ ok: true, discountPct: saved });
  } catch {
    return NextResponse.json({ error: "Could not save referral discount" }, { status: 500 });
  }
}
