@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
37 lines (36 loc) • 1.27 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const joi = require("joi");
const address_1 = require("../address/address");
exports.checkout = joi.object().keys({
shop: joi.object(),
shop_id: joi.number(),
ip: joi.string(),
client_details: joi.object(),
cart_token: joi.string(),
cart: joi.object().keys({
id: joi.number()
}).unknown(),
customer: joi.object().keys({
id: joi.number()
}).unknown(),
email: joi.string(),
first_name: joi.string(),
last_name: joi.string(),
shipping_address: address_1.address,
billing_address: address_1.address,
payment_details: joi.array().items(joi.object().keys({
gateway: joi.string().required(),
token: joi.string(),
source: joi.alternatives().try(joi.string(), joi.object().keys({
id: joi.any(),
gateway: joi.string().required(),
foreign_id: joi.any(),
foreign_key: joi.any()
}).unknown()),
amount: joi.number()
}).unknown()),
payment_kind: joi.string().valid(['manual', 'immediate']),
transaction_kind: joi.string().valid(['authorize', 'sale']),
fulfillment_kind: joi.string().valid(['immediate', 'manual'])
}).unknown();