/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { InvalidateQueryFilters, QueryClient, useQuery, UseQueryResult, useSuspenseQuery, UseSuspenseQueryResult, } from "@tanstack/react-query"; import { GustoEmbeddedError } from "../models/errors/gustoembeddederror.js"; import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError, } from "../models/errors/httpclienterrors.js"; import { NotFoundErrorObject } from "../models/errors/notfounderrorobject.js"; import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; import { UnprocessableEntityError } from "../models/errors/unprocessableentityerror.js"; import { Frequency, GetV1CompaniesCompanyIdPaySchedulesPreviewHeaderXGustoAPIVersion, GetV1CompaniesCompanyIdPaySchedulesPreviewRequest, } from "../models/operations/getv1companiescompanyidpayschedulespreview.js"; import { RFCDate } from "../types/rfcdate.js"; import { useGustoEmbeddedContext } from "./_context.js"; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes, } from "./_types.js"; import { buildPaySchedulesGetPreviewQuery, PaySchedulesGetPreviewQueryData, prefetchPaySchedulesGetPreview, queryKeyPaySchedulesGetPreview, } from "./paySchedulesGetPreview.core.js"; export { buildPaySchedulesGetPreviewQuery, type PaySchedulesGetPreviewQueryData, prefetchPaySchedulesGetPreview, queryKeyPaySchedulesGetPreview, }; export type PaySchedulesGetPreviewQueryError = | NotFoundErrorObject | UnprocessableEntityError | GustoEmbeddedError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError; /** * Preview pay schedule dates * * @remarks * Provides a preview of a pay schedule with the specified parameters for the next 18 months. Use this before creating or updating a pay schedule to show expected check dates, pay period boundaries, and payroll deadlines. * * ### Related guides * - [Create a pay schedule](doc:create-a-pay-schedule) * - [Manage Pay Schedules via API](doc:manage-pay-schedules-api) * * scope: `pay_schedules:write` */ export function usePaySchedulesGetPreview( request: GetV1CompaniesCompanyIdPaySchedulesPreviewRequest, options?: QueryHookOptions< PaySchedulesGetPreviewQueryData, PaySchedulesGetPreviewQueryError >, ): UseQueryResult< PaySchedulesGetPreviewQueryData, PaySchedulesGetPreviewQueryError > { const client = useGustoEmbeddedContext(); return useQuery({ ...buildPaySchedulesGetPreviewQuery( client, request, options, ), ...options, }); } /** * Preview pay schedule dates * * @remarks * Provides a preview of a pay schedule with the specified parameters for the next 18 months. Use this before creating or updating a pay schedule to show expected check dates, pay period boundaries, and payroll deadlines. * * ### Related guides * - [Create a pay schedule](doc:create-a-pay-schedule) * - [Manage Pay Schedules via API](doc:manage-pay-schedules-api) * * scope: `pay_schedules:write` */ export function usePaySchedulesGetPreviewSuspense( request: GetV1CompaniesCompanyIdPaySchedulesPreviewRequest, options?: SuspenseQueryHookOptions< PaySchedulesGetPreviewQueryData, PaySchedulesGetPreviewQueryError >, ): UseSuspenseQueryResult< PaySchedulesGetPreviewQueryData, PaySchedulesGetPreviewQueryError > { const client = useGustoEmbeddedContext(); return useSuspenseQuery({ ...buildPaySchedulesGetPreviewQuery( client, request, options, ), ...options, }); } export function setPaySchedulesGetPreviewData( client: QueryClient, queryKeyBase: [ companyId: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyIdPaySchedulesPreviewHeaderXGustoAPIVersion | undefined; frequency: Frequency; anchorPayDate: RFCDate; anchorEndOfPayPeriod: RFCDate; day1?: number | undefined; day2?: number | undefined; endDate?: RFCDate | undefined; }, ], data: PaySchedulesGetPreviewQueryData, ): PaySchedulesGetPreviewQueryData | undefined { const key = queryKeyPaySchedulesGetPreview(...queryKeyBase); return client.setQueryData(key, data); } export function invalidatePaySchedulesGetPreview( client: QueryClient, queryKeyBase: TupleToPrefixes< [ companyId: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyIdPaySchedulesPreviewHeaderXGustoAPIVersion | undefined; frequency: Frequency; anchorPayDate: RFCDate; anchorEndOfPayPeriod: RFCDate; day1?: number | undefined; day2?: number | undefined; endDate?: RFCDate | undefined; }, ] >, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: [ "@gusto/embedded-api", "paySchedules", "getPreview", ...queryKeyBase, ], }); } export function invalidateAllPaySchedulesGetPreview( client: QueryClient, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: ["@gusto/embedded-api", "paySchedules", "getPreview"], }); }