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

58 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-10-06 22:54:24 +00:00
import { z } from 'zod';
import { URL_REGEX } from '@documenso/lib/constants/url-regex';
import { RecipientRole } from '@documenso/prisma/client';
2023-10-06 22:54:24 +00:00
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({
email: z.string().email(),
name: z.string(),
role: z.nativeEnum(RecipientRole),
}),
)
.optional(),
2023-10-06 22:54:24 +00:00
});
export const ZSetSettingsForTemplateMutationSchema = z.object({
templateId: z.number(),
meta: z.object({
subject: z.string().optional(),
message: z.string().optional(),
timezone: z.string().optional(),
dateFormat: z.string().optional(),
redirectUrl: z
.string()
.optional()
.refine((value) => value === undefined || value === '' || URL_REGEX.test(value), {
message: 'Please enter a valid URL',
}),
}),
});
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>;