mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-10-23 18:23:15 +02:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
|
/**
|
||
|
* Represents a Limit or Buy Order on the stock market. Does not represent
|
||
|
* a Market Order since those are just executed immediately
|
||
|
*/
|
||
|
import { Stock } from "./Stock";
|
||
|
import { OrderTypes } from "./data/OrderTypes";
|
||
|
import { PositionTypes } from "./data/PositionTypes";
|
||
|
|
||
|
import {
|
||
|
Generic_fromJSON,
|
||
|
Generic_toJSON,
|
||
|
Reviver
|
||
|
} from "../../utils/JSONReviver";
|
||
|
|
||
|
export class Order {
|
||
|
/**
|
||
|
* Initializes a Order from a JSON save state
|
||
|
*/
|
||
|
static fromJSON(value: any): Order {
|
||
|
return Generic_fromJSON(Order, value.data);
|
||
|
}
|
||
|
|
||
|
readonly pos: PositionTypes;
|
||
|
readonly price: number;
|
||
|
readonly shares: number;
|
||
|
readonly stock: Stock;
|
||
|
readonly type: OrderTypes;
|
||
|
|
||
|
constructor(stk: Stock = new Stock(), shares: number=0, price: number=0, typ: OrderTypes=OrderTypes.LimitBuy, pos: PositionTypes=PositionTypes.Long) {
|
||
|
this.stock = stk;
|
||
|
this.shares = shares;
|
||
|
this.price = price;
|
||
|
this.type = typ;
|
||
|
this.pos = pos;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Serialize the Order to a JSON save state.
|
||
|
*/
|
||
|
toJSON(): any {
|
||
|
return Generic_toJSON("Order", this);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Reviver.constructors.Order = Order;
|