@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
85 lines • 4.39 kB
JavaScript
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