trader-server
Version:
OData server for testing strategies, simulating and real trading.
93 lines (80 loc) • 2.27 kB
text/typescript
import { ObjectID } from "mongodb";
import { Edm } from "../../lib/index";
const toObjectID = _id => _id && !(_id instanceof ObjectID) ? ObjectID.createFromHexString(_id) : _id;
.Annotate({
term: "UI.DisplayName",
string: "StreamProduct"
})
export class StreamProduct {
.Key
.Computed
.String
.Convert(toObjectID)
.Annotate(
{ term: "UI.DisplayName", string: "StreamProduct identifier" },
{ term: "UI.ControlHint", string: "ReadOnly" }
)
_id: ObjectID
.String
.Required
.Convert(toObjectID)
CategoryId: ObjectID
.ForeignKey("CategoryId")
.Partner("StreamProduct")
.EntityType(Edm.ForwardRef(() => StreamCategory))
StreamCategory: StreamCategory
.Boolean
Discontinued: boolean
.String
.Annotate(
{ term: "UI.DisplayName", string: "StreamProduct title" },
{ term: "UI.ControlHint", string: "ShortText" }
)
Name: string
.String
.Annotate(
{ term: "UI.DisplayName", string: "StreamProduct English name" },
{ term: "UI.ControlHint", string: "ShortText" }
)
QuantityPerUnit: string
.Decimal
.Annotate({
term: "UI.DisplayName",
string: "Unit price of StreamProduct"
}, {
term: "UI.ControlHint",
string: "Decimal"
})
UnitPrice: number
}
.OpenType
.Annotate({
term: "UI.DisplayName",
string: "StreamCategory"
})
export class StreamCategory {
.Key
.Computed
.String
.Convert(toObjectID)
.Annotate(
{ term: "UI.DisplayName", string: "StreamCategory identifier" },
{ term: "UI.ControlHint", string: "ReadOnly" }
)
_id: ObjectID
.String
Description: string
.String
.Annotate(
{ term: "UI.DisplayName", string: "CategoryPromise name" },
{ term: "UI.ControlHint", string: "ShortText" }
)
Name: string
.ForeignKey("CategoryId")
.Partner("StreamCategory")
.Collection(Edm.EntityType(StreamProduct))
StreamProducts: StreamProduct[]
.Collection(Edm.String)
.Function
echo() { return ["echotest"]; }
}