UNPKG

4.27 kBTypeScriptView Raw
1import { OddType, LBType, TimeType, OddFormat, PivotBias, PivotType, StringMap, IBetEvent, IBetRecord, IBetEventState, IBetMatch, PartitionKey } from "@jayesol/jayeson.lib.record";
2import { IndexedSnapshot } from "./data_structure";
3export interface ObjectMap<T> {
4 [index: string]: T;
5}
6export interface Aggregatable<T> {
7 aggregateInsert(t: T): any;
8 aggregateUpdate(t: T): any;
9 aggregateDelete(t: T): boolean;
10 isEmpty(): boolean;
11}
12export interface Buildable<T> {
13 build(): T;
14}
15export interface Mergeable<T> {
16 merge(t: T): any;
17}
18export interface ParentOf<T> {
19 insertChild(t: T): string;
20 updateChild(t: T): any;
21 deleteChild(t: T): string;
22}
23export interface IIndexedSnapshotBuilder extends ParentOf<IBetMatch>, Buildable<IndexedSnapshot> {
24 reset(key: PartitionKey): IIndexedSnapshotBuilder;
25 markPartitionAsUpdated(key: PartitionKey, time?: number): any;
26 replaceMatch(build: IBetMatch): any;
27}
28export interface IBetMatchBuilder extends Aggregatable<IBetMatch>, ParentOf<IBetEvent>, Buildable<IBetMatch> {
29 replaceEvent(evt: IBetEvent): any;
30 reset(key: PartitionKey): IBetMatchBuilder;
31}
32export interface IBetEventBuilder extends Aggregatable<IBetEvent>, ParentOf<IBetRecord>, Buildable<IBetEvent> {
33 reset(key: PartitionKey): any;
34}
35export interface IBetEventStateBuilder extends Mergeable<IBetEventState>, Buildable<IBetEventState> {
36}
37export interface IBetRecordBuilder extends Mergeable<IBetRecord>, Buildable<IBetRecord> {
38}
39export declare class Const {
40 static readonly AGGREGATE_KEY: string;
41 static readonly SEPARATOR: string;
42 static generateKey(rec: IBetRecord): string;
43}
44export declare abstract class B2RecordBuilder implements IBetRecordBuilder {
45 protected _eventId: string;
46 protected _matchId: string;
47 protected _id: number;
48 protected _oddType: OddType;
49 protected _lbType: LBType;
50 protected _timetype: TimeType;
51 protected _sportbook: string;
52 protected _meta: StringMap;
53 protected _oddFormat: OddFormat;
54 protected _rateOver: number;
55 protected _rateUnder: number;
56 protected _rateEqual: number;
57 protected _pivotValue: number;
58 protected _pivotType: PivotType;
59 protected _pivotBias: PivotBias;
60 protected _rateOverId: string;
61 protected _rateUnderId: string;
62 protected _rateEqualId: string;
63 protected _isSwapped: boolean;
64 constructor(rec: IBetRecord);
65 eventId(): string;
66 matchId(): string;
67 id(): number;
68 oddType(): OddType;
69 lbType(): LBType;
70 timetype(): TimeType;
71 sportbook(): string;
72 meta(): StringMap;
73 oddFormat(): OddFormat;
74 rateOver(): number;
75 rateUnder(): number;
76 rateEqual(): number;
77 pivotValue(): number;
78 pivotType(): PivotType;
79 pivotBias(): PivotBias;
80 rateOverId(): string;
81 rateUnderId(): string;
82 rateEqualId(): string;
83 isSwapped(): boolean;
84 setEventId(eventId: string): void;
85 setMatchId(matchId: string): void;
86 setId(id: number): void;
87 setOddType(oddType: OddType): void;
88 setLbType(lbType: LBType): void;
89 setTimeType(timetype: TimeType): void;
90 setSportbook(sportbook: string): void;
91 setMeta(meta: StringMap): void;
92 setOddFormat(oddFormat: OddFormat): void;
93 setRateOver(rateOver: number): void;
94 setRateUnder(rateUnder: number): void;
95 setRateEqual(rateEqual: number): void;
96 setPivotValue(pivotValue: number): void;
97 setPivotType(pivotType: PivotType): void;
98 setPivotBias(pivotBias: PivotBias): void;
99 setRateOverId(rateOverId: string): void;
100 setRateUnderId(rateUnderId: string): void;
101 setRateEqualId(rateEqualId: string): void;
102 setSwapped(isSwapped: boolean): void;
103 build(): IBetRecord;
104 merge(rec: IBetRecord): void;
105 mergeFrom(record: IBetRecord): void;
106}
107/**
108 * TODO:
109 * Fix use SoccerMatch interface instead of
110 * Implementation to check type
111 */
112export declare class BuilderProvider {
113 static getMatchBuilder(match: IBetMatch): IBetMatchBuilder;
114 static getEventBuilder(event: IBetEvent): IBetEventBuilder;
115 static getRecordBuilder(record: IBetRecord): IBetRecordBuilder;
116 static getEventStateBuilder(state: IBetEventState): IBetEventStateBuilder;
117 static getSnapshotBuilder(parentSs: IndexedSnapshot): IIndexedSnapshotBuilder;
118}