chatbot-template/app/(chat)/api/chat/schema.ts

30 lines
792 B
TypeScript
Raw Normal View History

import { z } from 'zod';
const textPartSchema = z.object({
text: z.string().min(1).max(2000),
type: z.enum(['text']),
});
export const postRequestBodySchema = z.object({
id: z.string().uuid(),
message: z.object({
id: z.string().uuid(),
createdAt: z.coerce.date(),
role: z.enum(['user']),
content: z.string().min(1).max(2000),
parts: z.array(textPartSchema),
experimental_attachments: z
.array(
z.object({
url: z.string().url(),
name: z.string().min(1).max(2000),
contentType: z.enum(['image/png', 'image/jpg', 'image/jpeg']),
}),
)
.optional(),
}),
selectedChatModel: z.enum(['chat-model', 'chat-model-reasoning']),
});
export type PostRequestBody = z.infer<typeof postRequestBodySchema>;