@1amageek/tradable
Version:
Cloud Firestore model framework for TypeScript - Google
58 lines (57 loc) • 2.99 kB
TypeScript
import * as FirebaseFirestore from '@google-cloud/firestore';
import { UserProtocol, SKUProtocol, TradeTransactionProtocol, OrderItemProtocol, OrderProtocol, TradeDelegate, InventoryStockProtocol } from "./index";
export declare class StockTransaction<Order extends OrderProtocol<OrderItem>, OrderItem extends OrderItemProtocol, User extends UserProtocol<Order, OrderItem, TradeTransaction>, InventoryStock extends InventoryStockProtocol, SKU extends SKUProtocol<InventoryStock>, TradeTransaction extends TradeTransactionProtocol> {
private _User;
private _InventoryStock;
private _SKU;
private _TradeTransaction;
inventoryStocks: InventoryStock[];
commitBlock?: () => TradeTransaction[];
constructor(user: {
new (id?: string, value?: {
[key: string]: any;
}): User;
}, inventoryStock: {
new (id?: string, value?: {
[key: string]: any;
}): InventoryStock;
}, sku: {
new (id?: string, value?: {
[key: string]: any;
}): SKU;
}, tradeTransaction: {
new (id?: string, value?: {
[key: string]: any;
}): TradeTransaction;
});
commit(): Promise<TradeTransaction[]>;
}
export declare class StockManager<Order extends OrderProtocol<OrderItem>, OrderItem extends OrderItemProtocol, User extends UserProtocol<Order, OrderItem, TradeTransaction>, InventoryStock extends InventoryStockProtocol, SKU extends SKUProtocol<InventoryStock>, TradeTransaction extends TradeTransactionProtocol> {
private _User;
private _InventoryStock;
private _SKU;
private _TradeTransaction;
delegate: TradeDelegate;
constructor(user: {
new (id?: string, value?: {
[key: string]: any;
}): User;
}, inventoryStock: {
new (id?: string, value?: {
[key: string]: any;
}): InventoryStock;
}, sku: {
new (id?: string, value?: {
[key: string]: any;
}): SKU;
}, tradeTransaction: {
new (id?: string, value?: {
[key: string]: any;
}): TradeTransaction;
});
reserve(order: Order, orderItem: OrderItem, transaction: FirebaseFirestore.Transaction): Promise<void>;
trade(order: Order, transaction: FirebaseFirestore.Transaction): Promise<StockTransaction<Order, OrderItem, User, InventoryStock, SKU, TradeTransaction>[]>;
_trade(order: Order, orderItem: OrderItem, transaction: FirebaseFirestore.Transaction): Promise<StockTransaction<Order, OrderItem, User, InventoryStock, SKU, TradeTransaction>>;
cancel(order: Order, orderItem: OrderItem, transaction: FirebaseFirestore.Transaction): Promise<StockTransaction<Order, OrderItem, User, InventoryStock, SKU, TradeTransaction>>;
itemCancel(order: Order, orderItem: OrderItem, itemRef: FirebaseFirestore.DocumentReference, transaction: FirebaseFirestore.Transaction): Promise<StockTransaction<Order, OrderItem, User, InventoryStock, SKU, TradeTransaction>>;
}