42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
|
|
import { z } from 'zod';
|
||
|
|
import { storeSchema } from './store.schema';
|
||
|
|
import { customerSchema } from './customer.schema';
|
||
|
|
import { sellerSchema } from './seller.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));
|