import { useMutation, UseMutationOptions } from 'react-query';

import { AxiosResponse } from 'axios';

import { updateApprovalSteps } from 'src/services/vacationsService';
import { ApprovalStepParam } from 'src/types/vacations';

import { formatApprovalUsers } from '../../utils';

export const useApprovalUsersMutation = (
  options?: UseMutationOptions<
    AxiosResponse<ApprovalStepParam>,
    Error,
    ApprovalStepParam
  >,
) => {
  return useMutation((data: ApprovalStepParam) => {
    const formattedApprovalUsers = formatApprovalUsers(data.approvalUsers);
    return updateApprovalSteps({
      approvalUsers: formattedApprovalUsers,
      reminderDaysInterval: data.reminderDaysInterval
        ? Number(data.reminderDaysInterval)
        : null,
    });
  }, options);
};
