@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
48 lines (47 loc) • 1.81 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const joi = require("joi");
const address_1 = require("../address/address");
exports.order = joi.object().keys({
customer_token: joi.string(),
customer_id: joi.number(),
customer: joi.alternatives().try(joi.number(), joi.string(), joi.object().keys({
id: joi.number(),
token: joi.string()
}).unknown()),
client_details: joi.object(),
ip: joi.string(),
buyer_accepts_marketing: joi.boolean(),
shipping_address: address_1.address,
billing_address: address_1.address,
processing_method: joi.string(),
cart_token: joi.string(),
cart_id: joi.number(),
cart: joi.alternatives().try(joi.number(), joi.string(), joi.object().keys({
id: joi.number(),
token: joi.string()
}).unknown()),
subscription_token: joi.string(),
subscription: joi.alternatives().try(joi.number(), joi.string(), joi.object().keys({
id: joi.number(),
token: joi.string()
}).unknown()),
currency: joi.string(),
email: joi.string(),
tags: joi.array().items(joi.string()),
payment_kind: joi.string().valid(['manual', 'immediate']),
transaction_kind: joi.string().valid(['authorize', 'sale']),
fulfillment_service: joi.string(),
fulfillment_kind: joi.string().valid(['manual', 'immediate']),
payment_details: joi.array().items(joi.object().keys({
gateway: joi.string().required(),
token: joi.string(),
source: joi.alternatives().try(joi.number(), joi.string(), joi.object().keys({
id: joi.string(),
gateway: joi.string().required(),
foreign_id: joi.any(),
foreign_key: joi.any()
}).unknown()),
amount: joi.number()
}).unknown())
});