import { createCoreAPIClient } from "@/lib/features/coreClient";
import type { CoreAPIPagination } from "../../types";
import type { CuratedEventsBooking } from "./types";

const coreClient = createCoreAPIClient();

// Curated-event bookings live in Core's curated-events module. Core2 exposes a
// super-admin-guarded passthrough rather than duplicating the implementation.
export async function searchCuratedEventBookings(
  page = 1,
  pageSize = 50,
  membershipNumber?: string,
  headers?: HeadersInit,
) {
  const params = new URLSearchParams();
  params.set("page", page.toString());
  params.set("pageSize", pageSize.toString());
  if (membershipNumber) {
    params.set("membershipNumber", membershipNumber);
  }

  try {
    const response = await coreClient<{
      bookings: CuratedEventsBooking[];
      pagination: CoreAPIPagination;
    }>(`/v1/admin-console/members/curated-bookings?${params.toString()}`, {
      headers,
    });
    return response;
  } catch (error) {
    return {
      success: false,
      message:
        (error as Error).message ?? "Failed fetching curated event bookings",
      data: null,
    };
  }
}
