Files
documenso/packages/trpc/api-contract/schema.ts
2023-12-08 13:28:34 +00:00

66 lines
1.5 KiB
TypeScript

import { z } from 'zod';
import { FieldType } from '@documenso/prisma/client';
export const GetDocumentsQuerySchema = z.object({
page: z.string().optional(),
perPage: z.string().optional(),
});
export const DeleteDocumentMutationSchema = z.string();
export const SuccessfulDocumentResponseSchema = z.object({
id: z.number(),
userId: z.number(),
title: z.string(),
status: z.string(),
documentDataId: z.string(),
createdAt: z.date(),
updatedAt: z.date(),
completedAt: z.date().nullable(),
});
export const SendDocumentForSigningMutationSchema = z.object({
signerEmail: z.string(),
signerName: z.string().optional(),
emailSubject: z.string().optional(),
emailBody: z.string().optional(),
fields: z.array(
z.object({
fieldType: z.nativeEnum(FieldType),
pageNumber: z.number(),
pageX: z.number(),
pageY: z.number(),
pageWidth: z.number(),
pageHeight: z.number(),
}),
),
});
export const UploadDocumentSuccessfulSchema = z.object({
url: z.string(),
key: z.string(),
});
export const CreateDocumentMutationSchema = z.object({
fileName: z.string(),
contentType: z.string().default('PDF'),
});
export const SuccessfulResponseSchema = z.object({
documents: SuccessfulDocumentResponseSchema.array(),
totalPages: z.number(),
});
export const SuccessfulSigningResponseSchema = z.object({
message: z.string(),
});
export const UnsuccessfulResponseSchema = z.object({
message: z.string(),
});
export const AuthorizationHeadersSchema = z.object({
authorization: z.string(),
});