1 | import { OddType, LBType, TimeType, OddFormat, PivotBias, PivotType, StringMap, IBetEvent, IBetRecord, IBetEventState, IBetMatch, PartitionKey } from "@jayesol/jayeson.lib.record";
|
2 | import { IndexedSnapshot } from "./data_structure";
|
3 | export interface ObjectMap<T> {
|
4 | [index: string]: T;
|
5 | }
|
6 | export interface Aggregatable<T> {
|
7 | aggregateInsert(t: T): any;
|
8 | aggregateUpdate(t: T): any;
|
9 | aggregateDelete(t: T): boolean;
|
10 | isEmpty(): boolean;
|
11 | }
|
12 | export interface Buildable<T> {
|
13 | build(): T;
|
14 | }
|
15 | export interface Mergeable<T> {
|
16 | merge(t: T): any;
|
17 | }
|
18 | export interface ParentOf<T> {
|
19 | insertChild(t: T): string;
|
20 | updateChild(t: T): any;
|
21 | deleteChild(t: T): string;
|
22 | }
|
23 | export 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 | }
|
28 | export interface IBetMatchBuilder extends Aggregatable<IBetMatch>, ParentOf<IBetEvent>, Buildable<IBetMatch> {
|
29 | replaceEvent(evt: IBetEvent): any;
|
30 | reset(key: PartitionKey): IBetMatchBuilder;
|
31 | }
|
32 | export interface IBetEventBuilder extends Aggregatable<IBetEvent>, ParentOf<IBetRecord>, Buildable<IBetEvent> {
|
33 | reset(key: PartitionKey): any;
|
34 | }
|
35 | export interface IBetEventStateBuilder extends Mergeable<IBetEventState>, Buildable<IBetEventState> {
|
36 | }
|
37 | export interface IBetRecordBuilder extends Mergeable<IBetRecord>, Buildable<IBetRecord> {
|
38 | }
|
39 | export declare class Const {
|
40 | static readonly AGGREGATE_KEY: string;
|
41 | static readonly SEPARATOR: string;
|
42 | static generateKey(rec: IBetRecord): string;
|
43 | }
|
44 | export 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 | */
|
112 | export 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 | }
|