import { z } from 'zod'; const recipientSchema = z .object({ clientId: z.string().min(1).optional(), email: z.string().email().optional(), interestId: z.string().min(1).optional(), }) .refine((v) => v.clientId !== undefined || v.email !== undefined, { message: 'recipient.clientId or recipient.email is required', }); export const sendBerthPdfSchema = z.object({ berthId: z.string().min(1), recipient: recipientSchema, customBodyMarkdown: z.string().max(50_000).optional(), }); export const sendBrochureSchema = z.object({ brochureId: z.string().min(1).optional(), recipient: recipientSchema, customBodyMarkdown: z.string().max(50_000).optional(), }); export const previewBodySchema = z.object({ documentKind: z.enum(['berth_pdf', 'brochure']), recipient: recipientSchema, berthId: z.string().min(1).optional(), brochureId: z.string().min(1).optional(), customBodyMarkdown: z.string().max(50_000).optional(), }); export const listSendsQuerySchema = z.object({ clientId: z.string().min(1).optional(), interestId: z.string().min(1).optional(), berthId: z.string().min(1).optional(), limit: z.coerce.number().int().min(1).max(500).optional(), }); export type SendBerthPdfInput = z.infer; export type SendBrochureInput = z.infer; export type PreviewBodyInput = z.infer; export type ListSendsQuery = z.infer;