@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
76 lines • 3.04 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
// Cart Header schemas - per CartHdr.json schema specification
export const CartHdrSchema = z.object({
cartHdrUid: z.number(),
customerId: z.number(),
contactId: z.number(),
userId: z.number(),
sessionId: z.string().optional(),
emailAddress: z.string().optional(),
dateCreated: z.string().optional(),
dateLastModified: z.string().optional(),
cartToken: z.string().nullable().optional(),
userCartNo: z.number(),
version: z.number().optional(),
statusCd: z.number().optional(),
processCd: z.number().optional(),
});
export const CartHdrListParamsSchema = BaseGetParamsSchema.extend({
userId: z.coerce.number(),
});
export const CartHdrLookupParamsSchema = BaseGetParamsSchema.extend({
userId: z.coerce.number(),
customerId: z.coerce.number(),
contactId: z.coerce.number(),
cartToken: z.string().optional(),
});
export const CartHdrListResponseSchema = BaseResponseSchema(z.array(CartHdrSchema));
export const CartHdrLookupResponseSchema = BaseResponseSchema(CartHdrSchema);
// Cart Line schemas - per CartLine.json schema specification
export const CartLineSchema = z.object({
cartHdrUid: z.number().optional(),
lineNo: z.number().min(0),
dateCreated: z.string().optional(),
dateLastModified: z.string().optional(),
invMastUid: z.number().min(1),
quantity: z.number().min(0).nullable().optional(),
unitOfMeasure: z.string().max(8).nullable().optional(),
lineNote: z.string().max(255).nullable().optional(),
key: z.string().max(255).nullable().optional(),
unitPrice: z.number().min(0).nullable().optional(),
itemId: z.string().max(40),
isAssembly: z.enum(['Y', 'N']),
invMastUidCount: z.number(),
});
export const CartLineAddRequestSchema = z
.array(z.object({
invMastUid: z.number().min(1),
quantity: z.number().min(0),
unitOfMeasure: z.string().min(1).max(8),
lineNote: z.string().max(255).optional(),
unitPrice: z.number().min(0).optional(),
lineNo: z.number().min(0).optional(),
key: z.string().max(255).optional(),
}))
.min(1);
export const CartLineUpdateRequestSchema = z
.array(z.object({
lineNo: z.number().min(0).optional(),
invMastUid: z.number().min(1).optional(),
quantity: z.number().min(0).optional(),
unitOfMeasure: z.string().min(1).max(8).optional(),
lineNote: z.string().max(255).optional(),
unitPrice: z.number().min(0).optional(),
key: z.string().max(255).optional(),
}))
.min(1);
export const CartLineListResponseSchema = BaseResponseSchema(z.array(CartLineSchema));
// Response schemas for different cart line operations
export const CartLineModifyResponseSchema = BaseResponseSchema(z.boolean());
// Specific response schema for delete line operation
export const CartLineDeleteResponseSchema = BaseResponseSchema(z.object({
success: z.boolean(),
message: z.string(),
}));
//# sourceMappingURL=cart.js.map