import { NextRequest } from "next/server";
import { fail, ok } from "@/server/http";
import { affiliateDashboardRange, requireAffiliate, getAffiliateDashboard } from "@/server/affiliation/service";

export const dynamic = "force-dynamic";

export async function GET(request: NextRequest) {
  try {
    const { user } = await requireAffiliate(request);
    const dashboard = await getAffiliateDashboard(user.id, affiliateDashboardRange(request.nextUrl.searchParams));
    return ok(dashboard);
  } catch (error) {
    return fail(error);
  }
}
