UNPKG

@benshi.ai/js-sdk

Version:

Benshi SDK

243 lines (209 loc) 5.91 kB
/** * 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;