@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
54 lines • 2.21 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
import { SearchTypeSchema, OperatorSchema } from './common';
// Item search schemas
export const ItemSearchParamsSchema = BaseGetParamsSchema.extend({
q: z.string().min(1, 'Search query is required'),
searchType: SearchTypeSchema,
cacheSiteId: z.string().optional(),
cacheTtl: z.coerce.number().optional().default(0),
classId5ExcludeList: z.string().optional(),
classId5List: z.string().optional(),
fields: z.string().optional(),
filters: z.string().optional(),
from: z.coerce.number().optional(),
itemCategoryUidList: z.string().optional(),
operator: OperatorSchema,
parentCategoryUid: z.coerce.number().optional(),
size: z.coerce.number().optional(),
sort: z.string().optional(),
sourceFieldsList: z.string().optional(),
tags: z.string().optional(),
useBrandFolderDoc: z.union([z.literal('Y'), z.literal('N')]).default('N'),
});
export const SearchItemSchema = z.object({
invMastUid: z.number(),
itemId: z.string().max(40).nullable().optional(),
itemDesc: z.string().max(40).nullable().optional(),
score: z.number().nullable().optional(),
scoreInt: z.number(),
sourceFields: z.union([z.record(z.unknown()), z.array(z.unknown())]).optional(),
brandFolder: z
.object({
assets: z
.array(z.object({
id: z.union([z.string(), z.number()]).optional(),
name: z.string().nullable().optional(),
attachmentName: z.string().nullable().optional(),
cdnLink: z.string().nullable().optional(),
layout: z.record(z.unknown()).nullable().optional(),
}))
.optional(),
})
.optional(),
});
export const ItemSearchDataSchema = z.object({
items: z.array(SearchItemSchema),
totalResults: z.number(),
maxScore: z.number(),
took: z.number(),
queryStringUid: z.number().nullable().optional(),
queryStringRedirectLink: z.union([z.string(), z.boolean()]).optional(),
});
export const ItemSearchResponseSchema = BaseResponseSchema(ItemSearchDataSchema);
//# sourceMappingURL=search.js.map