34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
|
|
import { z } from 'zod';
|
||
|
|
|
||
|
|
import { baseListQuerySchema } from '@/lib/api/route-helpers';
|
||
|
|
import { DOCUMENT_TYPES, DOCUMENT_STATUSES } from '@/lib/constants';
|
||
|
|
|
||
|
|
export const createDocumentSchema = z.object({
|
||
|
|
interestId: z.string().optional(),
|
||
|
|
clientId: z.string().optional(),
|
||
|
|
documentType: z.enum(DOCUMENT_TYPES),
|
||
|
|
title: z.string().min(1).max(200),
|
||
|
|
notes: z.string().optional(),
|
||
|
|
});
|
||
|
|
|
||
|
|
export const updateDocumentSchema = z.object({
|
||
|
|
title: z.string().min(1).max(200).optional(),
|
||
|
|
notes: z.string().optional(),
|
||
|
|
status: z.enum(DOCUMENT_STATUSES).optional(),
|
||
|
|
});
|
||
|
|
|
||
|
|
export const listDocumentsSchema = baseListQuerySchema.extend({
|
||
|
|
interestId: z.string().optional(),
|
||
|
|
clientId: z.string().optional(),
|
||
|
|
documentType: z.string().optional(),
|
||
|
|
status: z.string().optional(),
|
||
|
|
});
|
||
|
|
|
||
|
|
export const uploadSignedSchema = z.object({
|
||
|
|
documentId: z.string().min(1),
|
||
|
|
});
|
||
|
|
|
||
|
|
export type CreateDocumentInput = z.infer<typeof createDocumentSchema>;
|
||
|
|
export type UpdateDocumentInput = z.infer<typeof updateDocumentSchema>;
|
||
|
|
export type ListDocumentsInput = z.infer<typeof listDocumentsSchema>;
|