@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
93 lines • 4.39 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
import { mysqlDatetimeSchema } from '../../../core/schema-utils';
// Item Variant Header Schema based on ItemVariantHdr.json
export const ItemVariantHeaderSchema = z.object({
itemVariantHdrUid: z.coerce.number(),
baseInvMastUid: z.coerce.number(),
baseItemId: z.string().max(40),
baseItemDesc: z.string().max(255).optional(),
variantGroupName: z.string().max(100),
variantGroupDescription: z.string().max(500).optional(),
variantType: z.string().max(50).optional(), // e.g., 'color', 'size', 'style'
isActive: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
dateCreated: mysqlDatetimeSchema().optional(),
dateLastModified: mysqlDatetimeSchema().optional(),
createdBy: z.string().max(255).optional(),
lastMaintainedBy: z.string().max(255).optional(),
});
// Item Variant Line Schema (individual variant items)
export const ItemVariantLineSchema = z.object({
itemVariantLineUid: z.coerce.number(),
itemVariantHdrUid: z.coerce.number(),
invMastUid: z.coerce.number(),
itemId: z.string().max(40),
itemDesc: z.string().max(255).optional(),
variantValue: z.string().max(100), // e.g., 'Red', 'Large', 'Premium'
variantDisplay: z.string().max(100).optional(),
colorCode: z.string().max(7).optional(), // hex color code
imageUrl: z.string().max(500).optional(),
priceDifference: z.number().optional(),
stockLevel: z.coerce.number().optional(),
isDefault: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
dateCreated: mysqlDatetimeSchema().optional(),
dateLastModified: mysqlDatetimeSchema().optional(),
});
// Complete Variant with Lines Schema
export const ItemVariantDetailSchema = ItemVariantHeaderSchema.extend({
variants: z.array(ItemVariantLineSchema).optional(),
});
// Create Variant Header Request Schema
export const CreateItemVariantHeaderRequestSchema = z.object({
baseInvMastUid: z.coerce.number(),
variantGroupName: z.string().max(100),
variantGroupDescription: z.string().max(500).optional(),
variantType: z.string().max(50).optional(),
isActive: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
});
// Update Variant Header Request Schema
export const UpdateItemVariantHeaderRequestSchema = z.object({
variantGroupName: z.string().max(100).optional(),
variantGroupDescription: z.string().max(500).optional(),
variantType: z.string().max(50).optional(),
isActive: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
});
// Create Variant Line Request Schema
export const CreateItemVariantLineRequestSchema = z.object({
invMastUid: z.coerce.number(),
variantValue: z.string().max(100),
variantDisplay: z.string().max(100).optional(),
colorCode: z.string().max(7).optional(),
imageUrl: z.string().max(500).optional(),
priceDifference: z.number().optional(),
isDefault: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
});
// Update Variant Line Request Schema
export const UpdateItemVariantLineRequestSchema = z.object({
variantValue: z.string().max(100).optional(),
variantDisplay: z.string().max(100).optional(),
colorCode: z.string().max(7).optional(),
imageUrl: z.string().max(500).optional(),
priceDifference: z.number().optional(),
isDefault: z.string().max(1).optional(),
displayOrder: z.coerce.number().optional(),
});
// Variant List Parameters Schema
export const ItemVariantListParamsSchema = BaseGetParamsSchema.extend({
baseInvMastUid: z.coerce.number().optional(),
variantType: z.string().optional(),
isActive: z.string().optional(),
orderBy: z.string().optional(),
});
// Response Schemas
export const ItemVariantHeaderResponseSchema = BaseResponseSchema(ItemVariantHeaderSchema);
export const ItemVariantHeaderListResponseSchema = BaseResponseSchema(z.array(ItemVariantHeaderSchema));
export const ItemVariantLineResponseSchema = BaseResponseSchema(ItemVariantLineSchema);
export const ItemVariantLineListResponseSchema = BaseResponseSchema(z.array(ItemVariantLineSchema));
export const ItemVariantDetailResponseSchema = BaseResponseSchema(ItemVariantDetailSchema);
//# sourceMappingURL=variants.js.map