UNPKG

@fabrix/spool-cart

Version:

Spool - eCommerce Spool for Fabrix

73 lines (72 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const joi = require("joi"); const variant_1 = require("./variant"); const image_1 = require("./image"); const tags_1 = require("../tag/tags"); const metadata_1 = require("../metadata/metadata"); const associations_1 = require("../association/associations"); exports.product = joi.object().keys({ id: joi.any(), sku: joi.string(), option: joi.object(), property_pricing: joi.object().pattern(/[\s\S]*/, joi.object().keys({ name: joi.string().required(), group: joi.string().allow('', null).optional(), price: joi.number().required(), image: joi.string().allow('', null).optional(), multi_select: joi.boolean() })), host: joi.string(), handle: joi.string(), title: joi.string(), seo_title: joi.string(), body: joi.string(), seo_description: joi.string(), type: joi.string(), tags: tags_1.tags, price: joi.number(), compare_at_price: joi.number(), currency: joi.string(), collections: joi.array(), associations: associations_1.associations, fulfillment_service: joi.string(), metadata: metadata_1.metadata, published: joi.boolean(), published_scope: joi.string(), available: joi.boolean(), requires_shipping: joi.boolean(), requires_tax: joi.boolean(), requires_subscription: joi.boolean(), subscription_interval: joi.number(), subscription_unit: joi.string().valid('0', 'd', 'w', 'ww', 'm', 'mm', 'y', 'yy'), inventory_management: joi.boolean(), inventory_quantity: joi.number(), inventory_lead_time: joi.number(), images: joi.array().items(image_1.image), tax_code: joi.string(), weight: joi.number(), weight_unit: joi.string().valid('g', 'kg', 'oz', 'lb'), variants: joi.array().items(variant_1.variant), vendors: joi.array().items(joi.string()), average_shipping: joi.number(), google: joi.object().keys({ g_product_category: joi.string(), g_gender: joi.string(), g_age_group: joi.string(), g_mpn: joi.string(), g_adwords_grouping: joi.string(), g_adwords_label: joi.string(), g_condition: joi.string(), g_custom_product: joi.string(), g_custom_label_0: joi.string(), g_custom_label_1: joi.string(), g_custom_label_2: joi.string(), g_custom_label_3: joi.string(), g_custom_label_4: joi.string(), }), amazon: joi.object(), client_details: joi.object(), ip: joi.string(), shop_id: joi.number() });