| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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()
- });
|