UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

85 lines 4.39 kB
import { z } from 'zod'; import { BaseResponseSchema } from '../../../core/schemas'; // Extended sort params for items service export const SortParamsSchema = z.object({ orderBy: z.string().optional(), sortBy: z.string().optional(), sortOrder: z.enum(['asc', 'desc']).optional(), }); /** Product - key field only, passthrough for API flexibility */ export const ProductSchema = z.object({ invMastUid: z.coerce.number() }).passthrough(); /** Product detail - key field only, passthrough for API flexibility */ export const ProductDetailSchema = z.object({ invMastUid: z.coerce.number() }).passthrough(); /** Product lookup - key field only, passthrough for API flexibility */ export const ProductLookupSchema = z.object({ invMastUid: z.coerce.number() }).passthrough(); // Parameter schemas for product endpoints export const ProductSearchParamsSchema = z.object({ q: z.string(), limit: z.coerce.number().int().positive().optional(), offset: z.coerce.number().int().min(0).optional(), statusCd: z.coerce.number().optional(), onlineCd: z.coerce.number().optional(), orderBy: z.string().optional(), displayOnWebFlag: z.string().optional(), brandId: z.string().optional(), categoryPath: z.string().optional(), minPrice: z.coerce.number().optional(), maxPrice: z.coerce.number().optional(), inStock: z.boolean().optional(), }); export const ProductListParamsSchema = z.object({ limit: z.coerce.number().int().positive().optional(), offset: z.coerce.number().int().min(0).optional(), statusCd: z.coerce.number().optional(), onlineCd: z.coerce.number().optional(), orderBy: z.string().optional(), displayOnWebFlag: z.string().optional(), q: z.string().optional(), brandId: z.string().optional(), categoryPath: z.string().optional(), minPrice: z.coerce.number().optional(), maxPrice: z.coerce.number().optional(), inStock: z.boolean().optional(), }); export const ProductDetailParamsSchema = z.object({ invMastUid: z.coerce.number(), includeCategories: z.boolean().optional(), includeAttributes: z.boolean().optional(), includeImages: z.boolean().optional(), includeAccessories: z.boolean().optional(), includeAlternateCodes: z.boolean().optional(), includeStock: z.boolean().optional(), }); export const ProductLookupParamsSchema = z.object({ q: z.string(), // REQUIRED parameter per OpenAPI spec limit: z.coerce.number().int().positive().optional(), offset: z.coerce.number().int().min(0).optional(), statusCd: z.coerce.number().optional(), onlineCd: z.coerce.number().optional(), orderBy: z.string().optional(), }); export const ProductPreCacheParamsSchema = z.object({ invMastUid: z.coerce.number(), }); /** Alternate code - key field only, passthrough for API flexibility */ export const AlternateCodeSchema = z.object({ alternateCodeUid: z.number() }).passthrough(); /** Accessory - key field only, passthrough for API flexibility */ export const AccessorySchema = z.object({ accessoryUid: z.number() }).passthrough(); /** Bin info - key field only, passthrough for API flexibility */ export const BinInfoSchema = z.object({ invBinUid: z.coerce.number() }).passthrough(); /** Stock location - key field only, passthrough for API flexibility */ export const StockLocationSchema = z.object({ locationId: z.number() }).passthrough(); /** Stock summary - passthrough for API flexibility */ export const StockSummarySchema = z.object({}).passthrough(); /** Stock details - passthrough for API flexibility */ export const StockDetailsSchema = z.object({}).passthrough(); // Response schemas using BaseResponseSchema (8-field format) export const ProductResponseSchema = BaseResponseSchema(ProductSchema); export const ProductDetailResponseSchema = BaseResponseSchema(ProductDetailSchema); export const ProductListResponseSchema = BaseResponseSchema(z.array(ProductSchema)); export const ProductLookupResponseSchema = BaseResponseSchema(z.array(ProductLookupSchema)); export const ProductPreCacheResponseSchema = BaseResponseSchema(z.boolean()); export const AccessoryListResponseSchema = BaseResponseSchema(z.array(AccessorySchema)); export const BinInfoListResponseSchema = BaseResponseSchema(z.array(BinInfoSchema)); export const StockDetailsResponseSchema = BaseResponseSchema(StockDetailsSchema); //# sourceMappingURL=invMast.js.map