import { priceDetails } from "@qite/tide-client";
import {
  BookingPackageBookRequest,
  BookingPackageRequest,
  BookingPriceDetails,
} from "@qite/tide-client/build/types";
import { ApiSettingsState } from "../../../shared/types";
import { buildTideClientConfig } from "../../../shared/utils/tide-api-utils";

const fetchPriceDetails = async (
  apiSettings: ApiSettingsState,
  request: BookingPackageRequest<BookingPackageBookRequest>,
  signal: AbortSignal,
  languageCode?: string
): Promise<BookingPriceDetails> => {
  const tideClientConfig = buildTideClientConfig(apiSettings);
  return await priceDetails(tideClientConfig, request, signal, languageCode);
};

const priceDetailsApi = {
  fetchPriceDetails,
};

export default priceDetailsApi;
