import { createCoreAPIClient } from "../coreClient";
import type { CoreAPIPagination } from "../types";
import type { MembershipAccountType } from "./models";

const coreClient = createCoreAPIClient();

export async function searchMembershipAccountType(
  page = 1,
  pageSize = 15,
  search?: string,
  init?: RequestInit,
) {
  const params = new URLSearchParams();
  params.set("page", page.toString());
  params.set("pageSize", pageSize.toString());
  if (search) {
    params.set("searchTerm", search);
  }

  const response = await coreClient<{
    account_types: MembershipAccountType[];
    pagination: CoreAPIPagination;
  }>(`/v1/admin/memberships/account-types?${params.toString()}`, init);
  return response;
}

export async function getMembershipAccountType(id: string, init?: RequestInit) {
  const response = await coreClient<MembershipAccountType>(
    `/v1/admin/memberships/account-types/${id}`,
    init,
  );
  return response;
}
