Files
sign/packages/trpc/server/template-router/schema.ts

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-10-06 22:54:24 +00:00
import { z } from 'zod';
export const ZCreateTemplateMutationSchema = z.object({
2024-02-08 12:33:20 +11:00
title: z.string().min(1).trim(),
teamId: z.number().optional(),
2023-10-06 22:54:24 +00:00
templateDocumentDataId: z.string().min(1),
});
export const ZCreateDocumentFromTemplateMutationSchema = z.object({
templateId: z.number(),
2024-02-26 10:31:24 +11:00
teamId: z.number().optional(),
recipients: z
.array(
z.object({
id: z.number(),
email: z.string().email(),
name: z.string().optional(),
}),
)
.refine((recipients) => {
const emails = recipients.map((signer) => signer.email);
return new Set(emails).size === emails.length;
}, 'Recipients must have unique emails'),
sendDocument: z.boolean().optional(),
2023-10-06 22:54:24 +00:00
});
export const ZDuplicateTemplateMutationSchema = z.object({
templateId: z.number(),
2024-02-08 12:33:20 +11:00
teamId: z.number().optional(),
2023-10-06 22:54:24 +00:00
});
export const ZDeleteTemplateMutationSchema = z.object({
id: z.number().min(1),
});
export type TCreateTemplateMutationSchema = z.infer<typeof ZCreateTemplateMutationSchema>;
export type TCreateDocumentFromTemplateMutationSchema = z.infer<
typeof ZCreateDocumentFromTemplateMutationSchema
>;
export type TDuplicateTemplateMutationSchema = z.infer<typeof ZDuplicateTemplateMutationSchema>;
export type TDeleteTemplateMutationSchema = z.infer<typeof ZDeleteTemplateMutationSchema>;