/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const PartnerApplicationSubmittedEventEvent = { PartnerApplicationSubmitted: "partner.application_submitted", } as const; export type PartnerApplicationSubmittedEventEvent = ClosedEnum< typeof PartnerApplicationSubmittedEventEvent >; /** * The status of the partner's enrollment in the program. */ export const PartnerApplicationSubmittedEventStatus = { Pending: "pending", Approved: "approved", Rejected: "rejected", Invited: "invited", Declined: "declined", Deactivated: "deactivated", Banned: "banned", Archived: "archived", } as const; /** * The status of the partner's enrollment in the program. */ export type PartnerApplicationSubmittedEventStatus = ClosedEnum< typeof PartnerApplicationSubmittedEventStatus >; export type PartnerApplicationSubmittedEventPartner = { /** * The partner's unique ID on Dub. */ id: string; /** * The partner's full legal name. */ name: string; /** * If the partner profile type is a company, this is the partner's legal company name. */ companyName: string | null; /** * The partner's email address. Should be a unique value across Dub. */ email: string | null; /** * The partner's avatar image. */ image: string | null; /** * A brief description of the partner and their background. */ description?: string | null | undefined; /** * The partner's country (required for tax purposes). */ country: string | null; /** * The partner's group ID on Dub. */ groupId?: string | null | undefined; /** * The status of the partner's enrollment in the program. */ status: PartnerApplicationSubmittedEventStatus; /** * The partner's website URL (including the https protocol). */ website?: string | null | undefined; /** * The partner's YouTube channel username (e.g. `johndoe`). */ youtube?: string | null | undefined; /** * The partner's Twitter username (e.g. `johndoe`). */ twitter?: string | null | undefined; /** * The partner's LinkedIn username (e.g. `johndoe`). */ linkedin?: string | null | undefined; /** * The partner's Instagram username (e.g. `johndoe`). */ instagram?: string | null | undefined; /** * The partner's TikTok username (e.g. `johndoe`). */ tiktok?: string | null | undefined; }; export type ApplicationFormData = { label: string; value: string | null; }; export type PartnerApplicationSubmittedEventData = { id: string; createdAt: string; partner: PartnerApplicationSubmittedEventPartner; applicationFormData: Array | null; }; /** * Triggered when a partner submits an application to join a program. */ export type PartnerApplicationSubmittedEvent = { id: string; event: PartnerApplicationSubmittedEventEvent; createdAt: string; data: PartnerApplicationSubmittedEventData; }; /** @internal */ export const PartnerApplicationSubmittedEventEvent$inboundSchema: z.ZodNativeEnum = z.nativeEnum( PartnerApplicationSubmittedEventEvent, ); /** @internal */ export const PartnerApplicationSubmittedEventEvent$outboundSchema: z.ZodNativeEnum = PartnerApplicationSubmittedEventEvent$inboundSchema; /** @internal */ export const PartnerApplicationSubmittedEventStatus$inboundSchema: z.ZodNativeEnum = z.nativeEnum( PartnerApplicationSubmittedEventStatus, ); /** @internal */ export const PartnerApplicationSubmittedEventStatus$outboundSchema: z.ZodNativeEnum = PartnerApplicationSubmittedEventStatus$inboundSchema; /** @internal */ export const PartnerApplicationSubmittedEventPartner$inboundSchema: z.ZodType< PartnerApplicationSubmittedEventPartner, z.ZodTypeDef, unknown > = z.object({ id: z.string(), name: z.string(), companyName: z.nullable(z.string()), email: z.nullable(z.string()), image: z.nullable(z.string()), description: z.nullable(z.string()).optional(), country: z.nullable(z.string()), groupId: z.nullable(z.string()).optional(), status: PartnerApplicationSubmittedEventStatus$inboundSchema, website: z.nullable(z.string()).optional(), youtube: z.nullable(z.string()).optional(), twitter: z.nullable(z.string()).optional(), linkedin: z.nullable(z.string()).optional(), instagram: z.nullable(z.string()).optional(), tiktok: z.nullable(z.string()).optional(), }); /** @internal */ export type PartnerApplicationSubmittedEventPartner$Outbound = { id: string; name: string; companyName: string | null; email: string | null; image: string | null; description?: string | null | undefined; country: string | null; groupId?: string | null | undefined; status: string; website?: string | null | undefined; youtube?: string | null | undefined; twitter?: string | null | undefined; linkedin?: string | null | undefined; instagram?: string | null | undefined; tiktok?: string | null | undefined; }; /** @internal */ export const PartnerApplicationSubmittedEventPartner$outboundSchema: z.ZodType< PartnerApplicationSubmittedEventPartner$Outbound, z.ZodTypeDef, PartnerApplicationSubmittedEventPartner > = z.object({ id: z.string(), name: z.string(), companyName: z.nullable(z.string()), email: z.nullable(z.string()), image: z.nullable(z.string()), description: z.nullable(z.string()).optional(), country: z.nullable(z.string()), groupId: z.nullable(z.string()).optional(), status: PartnerApplicationSubmittedEventStatus$outboundSchema, website: z.nullable(z.string()).optional(), youtube: z.nullable(z.string()).optional(), twitter: z.nullable(z.string()).optional(), linkedin: z.nullable(z.string()).optional(), instagram: z.nullable(z.string()).optional(), tiktok: z.nullable(z.string()).optional(), }); export function partnerApplicationSubmittedEventPartnerToJSON( partnerApplicationSubmittedEventPartner: PartnerApplicationSubmittedEventPartner, ): string { return JSON.stringify( PartnerApplicationSubmittedEventPartner$outboundSchema.parse( partnerApplicationSubmittedEventPartner, ), ); } export function partnerApplicationSubmittedEventPartnerFromJSON( jsonString: string, ): SafeParseResult< PartnerApplicationSubmittedEventPartner, SDKValidationError > { return safeParse( jsonString, (x) => PartnerApplicationSubmittedEventPartner$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PartnerApplicationSubmittedEventPartner' from JSON`, ); } /** @internal */ export const ApplicationFormData$inboundSchema: z.ZodType< ApplicationFormData, z.ZodTypeDef, unknown > = z.object({ label: z.string(), value: z.nullable(z.string()), }); /** @internal */ export type ApplicationFormData$Outbound = { label: string; value: string | null; }; /** @internal */ export const ApplicationFormData$outboundSchema: z.ZodType< ApplicationFormData$Outbound, z.ZodTypeDef, ApplicationFormData > = z.object({ label: z.string(), value: z.nullable(z.string()), }); export function applicationFormDataToJSON( applicationFormData: ApplicationFormData, ): string { return JSON.stringify( ApplicationFormData$outboundSchema.parse(applicationFormData), ); } export function applicationFormDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ApplicationFormData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ApplicationFormData' from JSON`, ); } /** @internal */ export const PartnerApplicationSubmittedEventData$inboundSchema: z.ZodType< PartnerApplicationSubmittedEventData, z.ZodTypeDef, unknown > = z.object({ id: z.string(), createdAt: z.string(), partner: z.lazy(() => PartnerApplicationSubmittedEventPartner$inboundSchema), applicationFormData: z.nullable( z.array(z.lazy(() => ApplicationFormData$inboundSchema)), ), }); /** @internal */ export type PartnerApplicationSubmittedEventData$Outbound = { id: string; createdAt: string; partner: PartnerApplicationSubmittedEventPartner$Outbound; applicationFormData: Array | null; }; /** @internal */ export const PartnerApplicationSubmittedEventData$outboundSchema: z.ZodType< PartnerApplicationSubmittedEventData$Outbound, z.ZodTypeDef, PartnerApplicationSubmittedEventData > = z.object({ id: z.string(), createdAt: z.string(), partner: z.lazy(() => PartnerApplicationSubmittedEventPartner$outboundSchema), applicationFormData: z.nullable( z.array(z.lazy(() => ApplicationFormData$outboundSchema)), ), }); export function partnerApplicationSubmittedEventDataToJSON( partnerApplicationSubmittedEventData: PartnerApplicationSubmittedEventData, ): string { return JSON.stringify( PartnerApplicationSubmittedEventData$outboundSchema.parse( partnerApplicationSubmittedEventData, ), ); } export function partnerApplicationSubmittedEventDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PartnerApplicationSubmittedEventData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PartnerApplicationSubmittedEventData' from JSON`, ); } /** @internal */ export const PartnerApplicationSubmittedEvent$inboundSchema: z.ZodType< PartnerApplicationSubmittedEvent, z.ZodTypeDef, unknown > = z.object({ id: z.string(), event: PartnerApplicationSubmittedEventEvent$inboundSchema, createdAt: z.string(), data: z.lazy(() => PartnerApplicationSubmittedEventData$inboundSchema), }); /** @internal */ export type PartnerApplicationSubmittedEvent$Outbound = { id: string; event: string; createdAt: string; data: PartnerApplicationSubmittedEventData$Outbound; }; /** @internal */ export const PartnerApplicationSubmittedEvent$outboundSchema: z.ZodType< PartnerApplicationSubmittedEvent$Outbound, z.ZodTypeDef, PartnerApplicationSubmittedEvent > = z.object({ id: z.string(), event: PartnerApplicationSubmittedEventEvent$outboundSchema, createdAt: z.string(), data: z.lazy(() => PartnerApplicationSubmittedEventData$outboundSchema), }); export function partnerApplicationSubmittedEventToJSON( partnerApplicationSubmittedEvent: PartnerApplicationSubmittedEvent, ): string { return JSON.stringify( PartnerApplicationSubmittedEvent$outboundSchema.parse( partnerApplicationSubmittedEvent, ), ); } export function partnerApplicationSubmittedEventFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PartnerApplicationSubmittedEvent$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PartnerApplicationSubmittedEvent' from JSON`, ); }