Portalweb/src/features/orders/schemas/api-responses.schema.ts

56 lines
1.8 KiB
TypeScript

import { z } from 'zod';
import { storeSchema } from './store.schema';
import { customerSchema } from './customer.schema';
import { sellerSchema } from './seller.schema';
import { partnerSchema } from './partner.schema';
import { productSchema } from './product.schema';
import { createApiSchema } from './api-response.schema';
/**
* Schema Zod para validar um pedido (Order).
* Usa z.any() pois Order tem muitos campos opcionais e variações.
*/
const orderSchema = z.any();
/**
* Schema para validar a resposta da API ao buscar um pedido específico.
* Formato: { success: boolean, data: Order }
*/
export const orderResponseSchema = createApiSchema(orderSchema);
/**
* Schema para validar a resposta da API ao buscar pedidos.
* Formato: { success: boolean, data: Order[] }
*/
export const ordersResponseSchema = createApiSchema(z.array(orderSchema));
/**
* Schema para validar a resposta da API ao buscar lojas.
* Formato: { success: boolean, data: Store[] }
*/
export const storesResponseSchema = createApiSchema(z.array(storeSchema));
/**
* Schema para validar a resposta da API ao buscar clientes.
* Formato: { success: boolean, data: Customer[] }
*/
export const customersResponseSchema = createApiSchema(z.array(customerSchema));
/**
* Schema para validar a resposta da API ao buscar vendedores.
* Formato: { success: boolean, data: Seller[] }
*/
export const sellersResponseSchema = createApiSchema(z.array(sellerSchema));
/**
* Schema para validar a resposta da API ao buscar parceiros.
* Formato: { success: boolean, data: Partner[] }
*/
export const partnersResponseSchema = createApiSchema(z.array(partnerSchema));
/**
* Schema para validar a resposta da API ao buscar produtos.
* Formato: { success: boolean, data: Product[] }
*/
export const productsResponseSchema = createApiSchema(z.array(productSchema));