/** * Schemas de validação para Chat usando Zod */ import sanitizeHtml from "sanitize-html"; import { z } from "zod"; // Schema para criar chat export const createChatSchema = z.object({ listing_id: z.number().int().positive(), buyer_message: z.string().max(1000).optional(), }); // Schema para enviar mensagem export const sendMessageSchema = z.object({ content: z .string() .min(1, "Mensagem não pode estar vazia") .max(1000, "Mensagem muito longa (máximo 1000 caracteres)") .transform((val) => sanitizeHtml(val.trim(), { allowedTags: [], allowedAttributes: {} }), ), }); // Schema para query params de mensagens export const getMessagesSchema = z.object({ page: z.coerce.number().int().positive().default(1), limit: z.coerce.number().int().positive().max(100).default(50), });