/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { RFCDate } from "../../types/rfcdate.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { PaySchedulePreviewPayPeriod, PaySchedulePreviewPayPeriod$inboundSchema, } from "./payschedulepreviewpayperiod.js"; /** * Preview of pay schedule dates for the next 18 months. Use this to show partners expected pay dates, pay period boundaries, and payroll deadlines before they create or change a pay schedule. See [Preview pay schedule dates](https://docs.gusto.com/embedded-payroll/reference/get-v1-companies-company_id-pay_schedules-preview) for usage. * * @remarks * * - **pay_periods**: One entry per pay period in the range; each includes check_date, start_date, end_date, and run_payroll_by. * - **holidays**: Observed bank holidays (ISO date strings) that may affect payroll timing. */ export type PaySchedulePreview = { /** * A list of pay periods for the previewed pay schedule (default range is 18 months from today, or up to end_date when provided). */ payPeriods?: Array | undefined; /** * A list of dates for bank closures (ISO date strings); may affect payroll processing. */ holidays?: Array | undefined; }; /** @internal */ export const PaySchedulePreview$inboundSchema: z.ZodType< PaySchedulePreview, z.ZodTypeDef, unknown > = z.object({ pay_periods: z.array(PaySchedulePreviewPayPeriod$inboundSchema).optional(), holidays: z.array(z.string().transform(v => new RFCDate(v))).optional(), }).transform((v) => { return remap$(v, { "pay_periods": "payPeriods", }); }); export function paySchedulePreviewFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PaySchedulePreview$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PaySchedulePreview' from JSON`, ); }