@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
100 lines • 4.5 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
import { OnlineStatusSchema, StatusCdSchema } from './common';
// Items list schemas
export const ItemsListParamsSchema = BaseGetParamsSchema.extend({
itemId: z.string().optional(),
online: OnlineStatusSchema.optional(),
statusCd: StatusCdSchema.optional(),
});
// Item document structure for list endpoints (snake_case naming)
export const ItemDocumentSchema = z.object({
inv_mast_uid: z.number(),
item_id: z.string().nullable().optional(),
online: OnlineStatusSchema,
item_desc: z.string().nullable().optional(),
extended_desc: z.string().nullable().optional(),
display_desc: z.string().nullable().optional(),
class_id1: z.string().nullable().optional(),
class_id2: z.string().nullable().optional(),
class_id3: z.string().nullable().optional(),
class_id4: z.string().nullable().optional(),
class_id5: z.string().nullable().optional(),
price1: z.number().nullable().optional(),
price2: z.number().nullable().optional(),
price3: z.number().nullable().optional(),
price4: z.number().nullable().optional(),
price5: z.number().nullable().optional(),
price6: z.number().nullable().optional(),
price7: z.number().nullable().optional(),
price8: z.number().nullable().optional(),
price9: z.number().nullable().optional(),
price10: z.number().nullable().optional(),
keywords: z.string().nullable().optional(),
brand_name: z.string().nullable().optional(),
manufacturer_name: z.string().nullable().optional(),
part_number: z.string().nullable().optional(),
unspsc_code: z.string().nullable().optional(),
upc_or_ean_id: z.string().nullable().optional(),
supplier_name: z.string().nullable().optional(),
qty_shipped_in_past_12_months: z.number().nullable().optional(),
order_in_past_12_months: z.number().nullable().optional(),
customer_part_numbers: z.union([z.array(z.string()), z.string()]).optional(),
supplier_part_numbers: z.string().nullable().optional(),
alternate_codes: z.string().nullable().optional(),
stock_status: z.union([z.literal('in_stock'), z.literal('out_of_stock')]),
item_categories: z.array(z.number()).optional(),
item_category_tree: z.array(z.string()).optional(),
category_score: z.number().optional(),
attributes: z
.array(z.object({
name_string: z.string(),
value_string: z.string(),
value_original: z.string().nullable().optional(),
}))
.optional(),
user_defined_fields: z
.array(z.object({
name_string: z.string(),
value_string: z.string(),
}))
.optional(),
tags: z.array(z.string()).optional(),
names: z.array(z.string()).optional(),
combo: z.string(),
combo_hash: z.string(),
});
export const ItemsListDataSchema = z.array(ItemDocumentSchema);
export const ItemsListResponseSchema = BaseResponseSchema(ItemsListDataSchema);
// Individual item schemas (camelCase naming)
export const ItemDetailSchema = z.object({
invMastUid: z.number(),
itemId: z.string().max(40).nullable().optional(),
online: OnlineStatusSchema,
updateCd: z.number(),
doc: z.string().nullable().optional(),
indexCd: z.number(),
statusCd: z.number(),
processCd: z.number(),
indexStatusCd: z.number(),
dateCreated: z.string(), // ISO 8601 format
dateLastModified: z.string(), // ISO 8601 format
classId5: z.string().max(8).nullable().optional(),
dateLastChecked: z.string(), // ISO 8601 format
embeddingCd: z.number(),
docHash: z.string().max(64).nullable().optional(),
indexHash: z.string().max(64).nullable().optional(),
location: z.string().max(65).nullable().optional(),
uuid: z.string().max(36).nullable().optional(),
});
export const ItemDetailResponseSchema = BaseResponseSchema(ItemDetailSchema);
// Item update request schema
export const ItemUpdateRequestSchema = z.object({
statusCd: z.union([z.literal(700), z.literal(704), z.literal(705)]).optional(),
processCd: z.union([z.literal(700), z.literal(704), z.literal(705), z.literal(1185)]).optional(),
});
// Item update/refresh response schemas
export const ItemOperationResponseSchema = BaseResponseSchema(ItemDetailSchema);
// Refresh response schemas (same structure as item detail)
export const ItemRefreshResponseSchema = BaseResponseSchema(ItemDetailSchema);
//# sourceMappingURL=items.js.map