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(),
|
2024-02-20 19:11:12 +00:00
|
|
|
recipients: z
|
|
|
|
|
.array(
|
|
|
|
|
z.object({
|
2024-05-07 15:04:12 +07:00
|
|
|
id: z.number(),
|
2024-02-20 19:11:12 +00:00
|
|
|
email: z.string().email(),
|
2024-05-07 15:04:12 +07:00
|
|
|
name: z.string().optional(),
|
2024-02-20 19:11:12 +00:00
|
|
|
}),
|
|
|
|
|
)
|
2024-05-07 15:04:12 +07:00
|
|
|
.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>;
|