import { z } from "zod"; const protocoloSchema = z.object({ Id: z.number().int().positive(), Codigo: z.string().min(1), Status: z.number().int() }); const clienteSchema = z.object({ Id: z.number().int().positive(), Nome: z.string().min(1), Foto: z.string().nullish(), Wid: z.string().nullish(), Ultima2: z.string().nullish(), Ultimacliente2: z.string().nullish(), Deadmensage2: z.boolean().nullish() }).passthrough(); const mensagemSchema = z.object({ Id: z.number().int().positive(), Body: z.string().nullish(), Resposta: z.number().int().nullish(), Timestamp: z.string().datetime({ offset: true }).nullish(), Tipodemidia: z.string().nullish(), Midia: z.string().nullish(), Autor: z.string().nullish(), Citacao: z.string().nullish() }).passthrough(); export const atendimentoPayloadSchema = z.object({ status: z.boolean().optional(), Protocolo: protocoloSchema, Cliente: clienteSchema, Mensagens: z.array(mensagemSchema).default([]) }).passthrough(); export const atendimentoBodySchema = z.object({ setor: z.string().min(1).max(100).optional(), atendimento: atendimentoPayloadSchema }); export const atendimentoUrlSchema = z.object({ url: z.string().url().startsWith("https://"), setor: z.string().min(1).max(100).optional() }); export const protocolosAbertosSchema = z.object({ status: z.boolean().optional(), Total: z.number().int().optional(), Protocolos: z.array( z.object({ Id: z.number().int().positive(), Codigo: z.string().min(1), Abertura: z.string().datetime({ offset: true }).nullish(), Cliente: z.object({ Id: z.number().int().positive(), Nome: z.string().min(1), Telefone: z.string().nullish(), Wid: z.string().nullish() }).passthrough() }).passthrough() ) }).passthrough(); export const protocoloMensagensSchema = z.object({ status: z.boolean().optional(), Mensagens: z.array(mensagemSchema).default([]) }).passthrough(); export const atendimentoSyncSchema = z.object({ pagina: z.number().int().positive().optional(), limite: z.number().int().positive().max(200).optional(), inicio: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(), fim: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional() }); export const atendimentoSyncAllSchema = z.object({ limite: z.number().int().positive().max(200).optional(), maxPaginas: z.number().int().positive().max(100).optional() }); export const atendimentoAvaliarSchema = z.object({ limite: z.number().int().positive().max(200).optional() });