UNPKG

@pfantato/printful-ts

Version:

Typescript SDK to integrate with Printful

44 lines (43 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderItem = exports.ProductTemplateOrderItem = exports.CatalogOrderItem = exports.WarehouseOrderItem = exports.BaseOrderItem = exports.OrderItemSource = void 0; const zod_1 = require("zod"); const common_1 = require("@printful-ts/schemas/common"); const placements_list_schema_1 = require("./placements-list.schema"); const product_options_schema_1 = require("./product-options.schema"); exports.OrderItemSource = zod_1.z.enum([ 'catalog', 'product_template', 'warehouse', ]); exports.BaseOrderItem = zod_1.z.object({ id: zod_1.z.number(), source: exports.OrderItemSource, external_id: zod_1.z.string().nullable(), quantity: zod_1.z.number(), retail_price: zod_1.z.string(), name: zod_1.z.string(), _links: zod_1.z.object({ self: common_1.HateoasLink, }), }); exports.WarehouseOrderItem = exports.BaseOrderItem.extend({ source: zod_1.z.literal(exports.OrderItemSource.enum.warehouse), warehouse_product_variant_id: zod_1.z.number(), }); exports.CatalogOrderItem = exports.BaseOrderItem.extend({ source: zod_1.z.literal(exports.OrderItemSource.enum.catalog), catalog_variant_id: zod_1.z.number(), placements: zod_1.z.array(placements_list_schema_1.PlacementsList), product_options: zod_1.z.array(product_options_schema_1.ProductOptions), }); exports.ProductTemplateOrderItem = exports.BaseOrderItem.extend({ source: zod_1.z.literal(exports.OrderItemSource.enum.product_template), product_template_id: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]), catalog_variant_id: zod_1.z.number(), }); exports.OrderItem = zod_1.z.discriminatedUnion('source', [ exports.WarehouseOrderItem, exports.CatalogOrderItem, exports.ProductTemplateOrderItem, ]);