Added interface for fetching user actions.
This commit is contained in:
parent
f25f21a050
commit
20a8920a30
49
src/interface/actions.ts
Normal file
49
src/interface/actions.ts
Normal file
@ -0,0 +1,49 @@
|
||||
export enum ActionSide {
|
||||
Buy,
|
||||
Sell,
|
||||
}
|
||||
|
||||
export class Action {
|
||||
readonly symbol: string;
|
||||
readonly quantity: number;
|
||||
readonly side: ActionSide;
|
||||
readonly pricePerShare: number;
|
||||
|
||||
constructor(symbol: string, quantity: number, side: ActionSide, pricePerShare: number) {
|
||||
this.symbol = symbol;
|
||||
this.quantity = quantity;
|
||||
this.side = side;
|
||||
this.pricePerShare = pricePerShare;
|
||||
}
|
||||
}
|
||||
|
||||
export enum ActionDateType {
|
||||
On,
|
||||
After,
|
||||
Before,
|
||||
}
|
||||
|
||||
export class ActionDateOptions {
|
||||
readonly date: Date;
|
||||
readonly dateType: ActionDateType;
|
||||
|
||||
constructor(date: Date, dateType: ActionDateType) {
|
||||
this.date = date;
|
||||
this.dateType = dateType;
|
||||
}
|
||||
}
|
||||
|
||||
export class ActionFetchOptions {
|
||||
readonly pageSize?: number;
|
||||
readonly dateOptions?: ActionDateOptions;
|
||||
}
|
||||
|
||||
export interface ActionFetchResponse {
|
||||
readonly actions: Action[];
|
||||
|
||||
readonly fetchNextPage?: () => Promise<ActionFetchResponse>;
|
||||
}
|
||||
|
||||
export interface ActionProvider {
|
||||
readonly fetchActions: (options: ActionFetchOptions) => Promise<ActionFetchResponse>;
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
import { PortfolioProvider } from "./portfolio";
|
||||
import { QuoteProvider } from "./quote";
|
||||
import { ActionProvider } from "./actions";
|
||||
|
||||
/**
|
||||
* Represents an exchange, which provides access to a portfolio provider and a quote provider.
|
||||
@ -16,6 +17,11 @@ export interface Exchange {
|
||||
*/
|
||||
readonly quoteProvider: QuoteProvider;
|
||||
|
||||
/**
|
||||
* The action provider for the exchange.
|
||||
*/
|
||||
readonly actionProvider: ActionProvider;
|
||||
|
||||
/**
|
||||
* The name of the exchange.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user