import { QueryKey, useQuery, UseQueryOptions } from 'react-query';

import { vacationsKeys } from 'src/pages/dashboard/Vacations/queries';

import { getBlockedDates } from 'src/services/vacationsService';
import { BlockedDate } from 'src/types/vacations';

type TQueryFnData = Awaited<ReturnType<typeof getBlockedDates>>;

export const useBlockedDates = (
  policyId: number,
  options: UseQueryOptions<TQueryFnData, null, BlockedDate[]> = {},
) => {
  return useQuery(
    vacationsKeys.blockedDates(policyId) as QueryKey,
    () => getBlockedDates(policyId),
    {
      select: data => data.data,
      ...options,
    },
  );
};
