/* * 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 { RFCDate } from "../../types/rfcdate.js"; /** * The signatory's home address. */ export type SignatoryCreateRequestHomeAddress = { street1: string; street2?: string | undefined; city: string; state: string; zip: string; country?: string | undefined; }; /** * Request body for creating a signatory with complete information. All listed required fields must be provided. */ export type SignatoryCreateRequest = { /** * The signatory's first name. */ firstName: string; middleInitial?: string | undefined; /** * The signatory's last name. */ lastName: string; /** * The signatory's title (e.g. CEO, President). */ title: string; /** * The signatory's phone number. */ phone: string; /** * The signatory's date of birth. */ birthday: RFCDate; /** * The signatory's email address. */ email: string; /** * The signatory's SSN. */ ssn: string; /** * The signatory's home address. */ homeAddress: SignatoryCreateRequestHomeAddress; }; /** @internal */ export type SignatoryCreateRequestHomeAddress$Outbound = { street_1: string; street_2?: string | undefined; city: string; state: string; zip: string; country: string; }; /** @internal */ export const SignatoryCreateRequestHomeAddress$outboundSchema: z.ZodType< SignatoryCreateRequestHomeAddress$Outbound, z.ZodTypeDef, SignatoryCreateRequestHomeAddress > = z.object({ street1: z.string(), street2: z.string().optional(), city: z.string(), state: z.string(), zip: z.string(), country: z.string().default("USA"), }).transform((v) => { return remap$(v, { street1: "street_1", street2: "street_2", }); }); export function signatoryCreateRequestHomeAddressToJSON( signatoryCreateRequestHomeAddress: SignatoryCreateRequestHomeAddress, ): string { return JSON.stringify( SignatoryCreateRequestHomeAddress$outboundSchema.parse( signatoryCreateRequestHomeAddress, ), ); } /** @internal */ export type SignatoryCreateRequest$Outbound = { first_name: string; middle_initial?: string | undefined; last_name: string; title: string; phone: string; birthday: string; email: string; ssn: string; home_address: SignatoryCreateRequestHomeAddress$Outbound; }; /** @internal */ export const SignatoryCreateRequest$outboundSchema: z.ZodType< SignatoryCreateRequest$Outbound, z.ZodTypeDef, SignatoryCreateRequest > = z.object({ firstName: z.string(), middleInitial: z.string().optional(), lastName: z.string(), title: z.string(), phone: z.string(), birthday: z.instanceof(RFCDate).transform(v => v.toString()), email: z.string(), ssn: z.string(), homeAddress: z.lazy(() => SignatoryCreateRequestHomeAddress$outboundSchema), }).transform((v) => { return remap$(v, { firstName: "first_name", middleInitial: "middle_initial", lastName: "last_name", homeAddress: "home_address", }); }); export function signatoryCreateRequestToJSON( signatoryCreateRequest: SignatoryCreateRequest, ): string { return JSON.stringify( SignatoryCreateRequest$outboundSchema.parse(signatoryCreateRequest), ); }