@benshi.ai/js-sdk
Version:
Benshi SDK
243 lines (209 loc) • 5.91 kB
text/typescript
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes
export const ECommerceTypes = t.enumtype({
"Cancel": "cancel_checkout",
"Cart": "cart",
"Checkout": "checkout",
"Delivery": "delivery",
"Item": "item",
"List": "list",
"Rate": "rate",
"ScheduleDelivery": "schedule_delivery",
});
export const ItemAction = t.enumtype({
"View": "view",
"Detail": "detail",
"Impression": "impression",
"AddFavorite": "add_favorite",
"RemoveFavorite": "remove_favorite",
"AddReminder": "add_reminder",
"RemoveReminder": "remove_reminder",
"RemoveReminderAuto": "remove_reminder_auto",
});
export const ItemType = t.enumtype({
"Blood": "blood",
"Book": "book",
"Clothing": "clothing",
"Drug": "drug",
"Electronics": "electronics",
"MedicalEquipment": "medical_equipment",
"Misc": "misc",
"Oxygen": "oxygen",
});
export const StockStatus = t.enumtype({
"InStock": "in_stock",
"LowStock": "low_stock",
"OutOfStock": "out_of_stock",
});
export const TypedItem = t.iface([], {
"id": "string",
"type": "ItemType",
});
export const BaseItemDetail = t.iface([], {
"id": "string",
"quantity": "number",
"price": "number",
"currency": "CurrencyCode",
"stock_status": t.opt("StockStatus"),
"promo_id": t.opt("string"),
});
export const MetaBloodItemDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "Blood"),
"meta": "BloodMeta",
}));
export const MetaOxygenItemDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "Oxygen"),
"meta": "OxygenMeta",
}));
export const DrugItemDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "Drug"),
}));
export const BloodItemDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "Blood"),
}));
export const OxygenItemDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "Oxygen"),
}));
export const MedicalEquipmentDetail = t.intersection("BaseItemDetail", t.iface([], {
"type": t.enumlit("ItemType", "MedicalEquipment"),
}));
export const MetaItemDetail = t.union("MetaBloodItemDetail", "MetaOxygenItemDetail", "DrugItemDetail", "MedicalEquipmentDetail");
export const ItemDetail = t.union("BloodItemDetail", "OxygenItemDetail", "DrugItemDetail", "MedicalEquipmentDetail");
export const ItemProperties = t.iface([], {
"action": "ItemAction",
"item": "ItemDetail",
"search_id": t.opt("string"),
"meta": t.opt("any"),
});
export const InternalItemProperties = t.iface(["ItemProperties"], {
"usd_rate": "number",
});
export const CartAction = t.enumtype({
"AddItem": "add_item",
"RemoveItem": "remove_item",
});
export const CartProperties = t.iface([], {
"id": "string",
"action": "CartAction",
"item": "ItemDetail",
"cart_price": "number",
"currency": "CurrencyCode",
"meta": t.opt("any"),
});
export const InternalCartProperties = t.iface(["CartProperties"], {
"usd_rate": "number",
});
export const ListAction = t.enumtype({
"Add": "add_item",
"Discard": "discard",
"Edit": "edit_item",
"Remove": "remove_item",
"View": "view",
});
export const ListType = t.enumtype({
"Cart": "cart",
"Favourite": "favourite",
"Order": "order",
"Reminder": "reminder",
});
export const CheckoutProperties = t.iface([], {
"id": "string",
"is_successful": "boolean",
"cart_price": "number",
"currency": "CurrencyCode",
"items": t.array("MetaItemDetail"),
"cart_id": "string",
"meta": t.opt("any"),
});
export const InternalCheckoutProperties = t.iface(["CheckoutProperties"], {
"usd_rate": "number",
});
export const DeliveryAction = t.enumtype({
"Delivered": "delivered",
});
export const DeliveryProperties = t.iface([], {
"id": "string",
"action": "DeliveryAction",
"order_id": "string",
"meta": t.opt("any"),
});
export const DrugProperties = t.iface([], {
"market_id": "string",
"name": "string",
"description": t.opt("string"),
"supplier_id": "string",
"supplier_name": "string",
"producer": t.opt("string"),
"packaging": t.opt("string"),
"active_ingredients": t.array("string"),
"drug_form": t.opt("string"),
"drug_strength": t.opt("string"),
"atc_anatomical_group": t.opt("string"),
"otc_or_ethical": t.opt("string"),
});
export const InternalDrugProperties = t.iface(["DrugProperties"], {
"id": "string",
});
export const CancelType = t.enumtype({
"Cart": "cart",
"Order": "order",
});
export const CancelCheckoutProperties = t.iface([], {
"id": "string",
"type": "CancelType",
"items": t.array("TypedItem"),
"reason": "string",
"meta": t.opt("any"),
});
export const ScheduleDeliveryAction = t.enumtype({
"Schedule": "schedule",
"Update": "update",
});
export const ScheduleDeliveryProperties = t.iface([], {
"order_id": "string",
"is_urgent": "boolean",
"action": "ScheduleDeliveryAction",
"ts": t.opt("string"),
"meta": t.opt("any"),
});
export const InternalScheduleDeliveryProperties = t.iface(["ScheduleDeliveryProperties"], {
"ts": "string",
});
const exportedTypeSuite: t.ITypeSuite = {
ECommerceTypes,
ItemAction,
ItemType,
StockStatus,
TypedItem,
BaseItemDetail,
MetaBloodItemDetail,
MetaOxygenItemDetail,
DrugItemDetail,
BloodItemDetail,
OxygenItemDetail,
MedicalEquipmentDetail,
MetaItemDetail,
ItemDetail,
ItemProperties,
InternalItemProperties,
CartAction,
CartProperties,
InternalCartProperties,
ListAction,
ListType,
CheckoutProperties,
InternalCheckoutProperties,
DeliveryAction,
DeliveryProperties,
DrugProperties,
InternalDrugProperties,
CancelType,
CancelCheckoutProperties,
ScheduleDeliveryAction,
ScheduleDeliveryProperties,
InternalScheduleDeliveryProperties,
};
export default exportedTypeSuite;