// This file is auto-generated by @hey-api/openapi-ts import { type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; import { addKitToDeal, addKitToDealProduct, createBarcodeTemplate, createBoard, createClient, createDeal, createDealGroup, createDealProduct, createDealProductService, createDealService, createMarketplace, createProduct, createProject, createService, createServiceCategory, createServicesKit, createStatus, deleteBarcodeTemplate, deleteBoard, deleteClient, deleteDeal, deleteDealGroup, deleteDealProduct, deleteDealProductService, deleteDealService, deleteMarketplace, deleteProduct, deleteProject, deleteService, deleteServiceCategory, deleteServicesKit, deleteStatus, duplicateProductServices, getBarcodeTemplateAttributes, getBarcodeTemplates, getBarcodeTemplateSizes, getBaseMarketplaces, getBoards, getBuiltInModules, getClients, getDealProducts, getDeals, getDealServices, getMarketplaces, getProductBarcodePdf, getProducts, getProjects, getServiceCategories, getServices, getServicesKits, getStatuses, getStatusHistory, type Options, updateBarcodeTemplate, updateBoard, updateClient, updateDeal, updateDealGroup, updateDealProduct, updateDealProductService, updateDealService, updateDealsInGroup, updateMarketplace, updateProduct, updateProject, updateService, updateServiceCategory, updateServicesKit, updateStatus } from '../sdk.gen'; import type { AddKitToDealData, AddKitToDealError, AddKitToDealProductData, AddKitToDealProductError, AddKitToDealProductResponse, AddKitToDealResponse, CreateBarcodeTemplateData, CreateBarcodeTemplateError, CreateBarcodeTemplateResponse2, CreateBoardData, CreateBoardError, CreateBoardResponse2, CreateClientData, CreateClientError, CreateClientResponse2, CreateDealData, CreateDealError, CreateDealGroupData, CreateDealGroupError, CreateDealGroupResponse2, CreateDealProductData, CreateDealProductError, CreateDealProductResponse2, CreateDealProductServiceData, CreateDealProductServiceError, CreateDealProductServiceResponse, CreateDealResponse2, CreateDealServiceData, CreateDealServiceError, CreateDealServiceResponse2, CreateMarketplaceData, CreateMarketplaceError, CreateMarketplaceResponse2, CreateProductData, CreateProductError, CreateProductResponse2, CreateProjectData, CreateProjectError, CreateProjectResponse2, CreateServiceCategoryData, CreateServiceCategoryError, CreateServiceCategoryResponse2, CreateServiceData, CreateServiceError, CreateServiceResponse2, CreateServicesKitData, CreateServicesKitError, CreateServicesKitResponse2, CreateStatusData, CreateStatusError, CreateStatusResponse2, DeleteBarcodeTemplateData, DeleteBarcodeTemplateError, DeleteBarcodeTemplateResponse2, DeleteBoardData, DeleteBoardError, DeleteBoardResponse2, DeleteClientData, DeleteClientError, DeleteClientResponse2, DeleteDealData, DeleteDealError, DeleteDealGroupData, DeleteDealGroupError, DeleteDealGroupResponse2, DeleteDealProductData, DeleteDealProductError, DeleteDealProductResponse2, DeleteDealProductServiceData, DeleteDealProductServiceError, DeleteDealProductServiceResponse, DeleteDealResponse2, DeleteDealServiceData, DeleteDealServiceError, DeleteDealServiceResponse2, DeleteMarketplaceData, DeleteMarketplaceError, DeleteMarketplaceResponse2, DeleteProductData, DeleteProductError, DeleteProductResponse2, DeleteProjectData, DeleteProjectError, DeleteProjectResponse2, DeleteServiceCategoryData, DeleteServiceCategoryError, DeleteServiceCategoryResponse2, DeleteServiceData, DeleteServiceError, DeleteServiceResponse2, DeleteServicesKitData, DeleteServicesKitError, DeleteServicesKitResponse2, DeleteStatusData, DeleteStatusError, DeleteStatusResponse2, DuplicateProductServicesData, DuplicateProductServicesError, DuplicateProductServicesResponse, GetBarcodeTemplateAttributesData, GetBarcodeTemplatesData, GetBarcodeTemplateSizesData, GetBaseMarketplacesData, GetBoardsData, GetBuiltInModulesData, GetClientsData, GetDealProductsData, GetDealsData, GetDealsError, GetDealServicesData, GetDealsResponse2, GetMarketplacesData, GetProductBarcodePdfData, GetProductBarcodePdfError, GetProductBarcodePdfResponse2, GetProductsData, GetProductsError, GetProductsResponse2, GetProjectsData, GetServiceCategoriesData, GetServicesData, GetServicesKitsData, GetStatusesData, GetStatusHistoryData, UpdateBarcodeTemplateData, UpdateBarcodeTemplateError, UpdateBarcodeTemplateResponse2, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, UpdateClientData, UpdateClientError, UpdateClientResponse2, UpdateDealData, UpdateDealError, UpdateDealGroupData, UpdateDealGroupError, UpdateDealGroupResponse2, UpdateDealProductData, UpdateDealProductError, UpdateDealProductResponse2, UpdateDealProductServiceData, UpdateDealProductServiceError, UpdateDealProductServiceResponse, UpdateDealResponse2, UpdateDealServiceData, UpdateDealServiceError, UpdateDealServiceResponse2, UpdateDealsInGroupData, UpdateDealsInGroupError, UpdateDealsInGroupResponse2, UpdateMarketplaceData, UpdateMarketplaceError, UpdateMarketplaceResponse2, UpdateProductData, UpdateProductError, UpdateProductResponse2, UpdateProjectData, UpdateProjectError, UpdateProjectResponse2, UpdateServiceCategoryData, UpdateServiceCategoryError, UpdateServiceCategoryResponse2, UpdateServiceData, UpdateServiceError, UpdateServiceResponse2, UpdateServicesKitData, UpdateServicesKitError, UpdateServicesKitResponse2, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen'; export type QueryKey = [ Pick & { _id: string; _infinite?: boolean; tags?: ReadonlyArray; } ]; const createQueryKey = (id: string, options?: TOptions, infinite?: boolean, tags?: ReadonlyArray): [ QueryKey[0] ] => { const params: QueryKey[0] = { _id: id, baseURL: options?.baseURL || (options?.client ?? client).getConfig().baseURL } as QueryKey[0]; if (infinite) { params._infinite = infinite; } if (tags) { params.tags = tags; } if (options?.body) { params.body = options.body; } if (options?.headers) { params.headers = options.headers; } if (options?.path) { params.path = options.path; } if (options?.query) { params.query = options.query; } return [ params ]; }; export const getBoardsQueryKey = (options: Options) => createQueryKey('getBoards', options); /** * Get Boards */ export const getBoardsOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBoards({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBoardsQueryKey(options) }); }; /** * Create Board */ export const createBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createBoard({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Board */ export const deleteBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteBoard({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Board */ export const updateBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateBoard({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getDealsQueryKey = (options?: Options) => createQueryKey('getDeals', options); /** * Get Deals */ export const getDealsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getDeals({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getDealsQueryKey(options) }); }; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; if (page.body) { params.body = { ...queryKey[0].body as any, ...page.body as any }; } if (page.headers) { params.headers = { ...queryKey[0].headers, ...page.headers }; } if (page.path) { params.path = { ...queryKey[0].path as any, ...page.path as any }; } if (page.query) { params.query = { ...queryKey[0].query as any, ...page.query as any }; } return params as unknown as typeof page; }; export const getDealsInfiniteQueryKey = (options?: Options): QueryKey> => createQueryKey('getDeals', options, true); /** * Get Deals */ export const getDealsInfiniteOptions = (options?: Options) => { return infiniteQueryOptions, InfiniteData, QueryKey>, number | null | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( // @ts-ignore { queryFn: async ({ pageParam, queryKey, signal }) => { // @ts-ignore const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { query: { page: pageParam } }; const params = createInfiniteParams(queryKey, page); const { data } = await getDeals({ ...options, ...params, signal, throwOnError: true }); return data; }, queryKey: getDealsInfiniteQueryKey(options) }); }; /** * Create Deal */ export const createDealMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createDeal({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Deal */ export const deleteDealMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteDeal({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Deal */ export const updateDealMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDeal({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Group */ export const deleteDealGroupMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteDealGroup({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Group */ export const updateDealGroupMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDealGroup({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Create Group */ export const createDealGroupMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createDealGroup({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Deals In Group */ export const updateDealsInGroupMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDealsInGroup({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getBuiltInModulesQueryKey = (options?: Options) => createQueryKey('getBuiltInModules', options); /** * Get Built In Modules */ export const getBuiltInModulesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBuiltInModules({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBuiltInModulesQueryKey(options) }); }; export const getClientsQueryKey = (options?: Options) => createQueryKey('getClients', options); /** * Get Clients */ export const getClientsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getClients({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getClientsQueryKey(options) }); }; /** * Create Client */ export const createClientMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createClient({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Product */ export const deleteClientMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteClient({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Client */ export const updateClientMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateClient({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getBarcodeTemplatesQueryKey = (options?: Options) => createQueryKey('getBarcodeTemplates', options); /** * Get Barcode Templates */ export const getBarcodeTemplatesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBarcodeTemplates({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBarcodeTemplatesQueryKey(options) }); }; /** * Create Barcode Template */ export const createBarcodeTemplateMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createBarcodeTemplate({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Barcode Template */ export const deleteBarcodeTemplateMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteBarcodeTemplate({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Barcode Template */ export const updateBarcodeTemplateMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateBarcodeTemplate({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getBarcodeTemplateAttributesQueryKey = (options?: Options) => createQueryKey('getBarcodeTemplateAttributes', options); /** * Get Barcode Template Attributes */ export const getBarcodeTemplateAttributesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBarcodeTemplateAttributes({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBarcodeTemplateAttributesQueryKey(options) }); }; export const getBarcodeTemplateSizesQueryKey = (options?: Options) => createQueryKey('getBarcodeTemplateSizes', options); /** * Get Barcode Template Sizes */ export const getBarcodeTemplateSizesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBarcodeTemplateSizes({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBarcodeTemplateSizesQueryKey(options) }); }; export const getDealProductsQueryKey = (options: Options) => createQueryKey('getDealProducts', options); /** * Get Deal Products */ export const getDealProductsOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getDealProducts({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getDealProductsQueryKey(options) }); }; /** * Create Deal Product */ export const createDealProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createDealProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Deal Product */ export const deleteDealProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteDealProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Deal Product */ export const updateDealProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDealProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Create Deal Product Service */ export const createDealProductServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createDealProductService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Deal Product Service */ export const deleteDealProductServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteDealProductService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Deal Product Service */ export const updateDealProductServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDealProductService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Copy Product Services */ export const duplicateProductServicesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await duplicateProductServices({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Add Kit To Deal Product */ export const addKitToDealProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await addKitToDealProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getDealServicesQueryKey = (options: Options) => createQueryKey('getDealServices', options); /** * Get Deal Services */ export const getDealServicesOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getDealServices({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getDealServicesQueryKey(options) }); }; /** * Create Deal Service */ export const createDealServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createDealService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Deal Service */ export const deleteDealServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteDealService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Deal Service */ export const updateDealServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateDealService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Add Kit To Deal */ export const addKitToDealMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await addKitToDeal({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getBaseMarketplacesQueryKey = (options?: Options) => createQueryKey('getBaseMarketplaces', options); /** * Get Base Marketplaces */ export const getBaseMarketplacesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBaseMarketplaces({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBaseMarketplacesQueryKey(options) }); }; export const getMarketplacesQueryKey = (options: Options) => createQueryKey('getMarketplaces', options); /** * Get Marketplaces */ export const getMarketplacesOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getMarketplaces({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getMarketplacesQueryKey(options) }); }; /** * Create Product */ export const createMarketplaceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createMarketplace({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Marketplace */ export const deleteMarketplaceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteMarketplace({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Marketplace */ export const updateMarketplaceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateMarketplace({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getProductsQueryKey = (options?: Options) => createQueryKey('getProducts', options); /** * Get Products */ export const getProductsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getProducts({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getProductsQueryKey(options) }); }; export const getProductsInfiniteQueryKey = (options?: Options): QueryKey> => createQueryKey('getProducts', options, true); /** * Get Products */ export const getProductsInfiniteOptions = (options?: Options) => { return infiniteQueryOptions, InfiniteData, QueryKey>, number | null | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( // @ts-ignore { queryFn: async ({ pageParam, queryKey, signal }) => { // @ts-ignore const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { query: { page: pageParam } }; const params = createInfiniteParams(queryKey, page); const { data } = await getProducts({ ...options, ...params, signal, throwOnError: true }); return data; }, queryKey: getProductsInfiniteQueryKey(options) }); }; /** * Create Product */ export const createProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Product */ export const deleteProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Product */ export const updateProductMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateProduct({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Get Product Barcode Pdf */ export const getProductBarcodePdfMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await getProductBarcodePdf({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getServicesQueryKey = (options?: Options) => createQueryKey('getServices', options); /** * Get Services */ export const getServicesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getServices({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getServicesQueryKey(options) }); }; /** * Create Service */ export const createServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Service */ export const deleteServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Service */ export const updateServiceMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateService({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getServiceCategoriesQueryKey = (options?: Options) => createQueryKey('getServiceCategories', options); /** * Get Services Categories */ export const getServiceCategoriesOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getServiceCategories({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getServiceCategoriesQueryKey(options) }); }; /** * Create Service Category */ export const createServiceCategoryMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createServiceCategory({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Service Category */ export const deleteServiceCategoryMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteServiceCategory({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Service Category */ export const updateServiceCategoryMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateServiceCategory({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getServicesKitsQueryKey = (options?: Options) => createQueryKey('getServicesKits', options); /** * Get Services Kits */ export const getServicesKitsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getServicesKits({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getServicesKitsQueryKey(options) }); }; /** * Create Services Kit */ export const createServicesKitMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createServicesKit({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Services Kit */ export const deleteServicesKitMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteServicesKit({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Services Kit */ export const updateServicesKitMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateServicesKit({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getProjectsQueryKey = (options?: Options) => createQueryKey('getProjects', options); /** * Get Projects */ export const getProjectsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getProjects({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getProjectsQueryKey(options) }); }; /** * Create Project */ export const createProjectMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createProject({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Project */ export const deleteProjectMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteProject({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Project */ export const updateProjectMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateProject({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getStatusesQueryKey = (options: Options) => createQueryKey('getStatuses', options); /** * Get Statuses */ export const getStatusesOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getStatuses({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getStatusesQueryKey(options) }); }; /** * Create Status */ export const createStatusMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await createStatus({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Status */ export const deleteStatusMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await deleteStatus({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Status */ export const updateStatusMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (fnOptions) => { const { data } = await updateStatus({ ...options, ...fnOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getStatusHistoryQueryKey = (options: Options) => createQueryKey('getStatusHistory', options); /** * Get Status History */ export const getStatusHistoryOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getStatusHistory({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getStatusHistoryQueryKey(options) }); };