bb-api-platforma 0.1.244 → 0.1.246
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BetBoosterApi.d.ts +180 -0
- package/dist/BetBoosterApi.js +187 -0
- package/dist/BetBoosterApi.min.d.ts +269 -0
- package/dist/BetBoosterApi.min.js +1 -1
- package/dist/BetBoosterApi.min.js.map +1 -1
- package/dist/BetBoosterOfficeApi.d.ts +136 -16
- package/dist/BetBoosterOfficeApi.js +140 -16
- package/dist/Types.d.ts +49 -0
- package/package.json +2 -2
package/dist/BetBoosterApi.d.ts
CHANGED
|
@@ -1971,4 +1971,184 @@ export declare class BetBoosterApi {
|
|
|
1971
1971
|
status: number;
|
|
1972
1972
|
statusText: string;
|
|
1973
1973
|
}>;
|
|
1974
|
+
/**
|
|
1975
|
+
* Copies (clones) an existing betslip with the given list of odds items
|
|
1976
|
+
* and returns updated betslip data from the server, including actual odds,
|
|
1977
|
+
* limitations, and betslip type.
|
|
1978
|
+
*
|
|
1979
|
+
* @param oddsList - Array of betslip odds items to clone.
|
|
1980
|
+
*
|
|
1981
|
+
* @remarks
|
|
1982
|
+
* Endpoint: `POST /betting/CopyBetslip` (API v2)
|
|
1983
|
+
*
|
|
1984
|
+
* @example
|
|
1985
|
+
* **Request payload:**
|
|
1986
|
+
* ```json
|
|
1987
|
+
* {
|
|
1988
|
+
* "Bets": [
|
|
1989
|
+
* {
|
|
1990
|
+
* "ErrorMessage": 0,
|
|
1991
|
+
* "Min": 0,
|
|
1992
|
+
* "Max": 0,
|
|
1993
|
+
* "MinCurrencyUnit": 0.01,
|
|
1994
|
+
* "IsRound": false,
|
|
1995
|
+
* "IsReinvested": false,
|
|
1996
|
+
* "MinAdd": 0,
|
|
1997
|
+
* "MaxAdd": 0,
|
|
1998
|
+
* "Odds": 3.07,
|
|
1999
|
+
* "IsLive": false,
|
|
2000
|
+
* "LinesID": 2970079,
|
|
2001
|
+
* "BetVarID": 1,
|
|
2002
|
+
* "HandSize": null,
|
|
2003
|
+
* "Add1": null,
|
|
2004
|
+
* "Add2": null,
|
|
2005
|
+
* "Score": "",
|
|
2006
|
+
* "NameSport": "Football",
|
|
2007
|
+
* "NameCountry": "Europe",
|
|
2008
|
+
* "NameTurnir": "UEFA Champions League",
|
|
2009
|
+
* "NameTeam1": "Real Madrid",
|
|
2010
|
+
* "NameTeam2": "Bayern Munich",
|
|
2011
|
+
* "DateEvent": "2026-04-07T22:00:00+03:00",
|
|
2012
|
+
* "NameBetShort": "1",
|
|
2013
|
+
* "NameBetLong": "Team 1 wins",
|
|
2014
|
+
* "SportId": 5
|
|
2015
|
+
* }
|
|
2016
|
+
* ],
|
|
2017
|
+
* "Culture": "en-US"
|
|
2018
|
+
* }
|
|
2019
|
+
* ```
|
|
2020
|
+
*
|
|
2021
|
+
* **Response:**
|
|
2022
|
+
* ```json
|
|
2023
|
+
* {
|
|
2024
|
+
* "Ok": true,
|
|
2025
|
+
* "Error": null,
|
|
2026
|
+
* "Data": {
|
|
2027
|
+
* "Bets": [
|
|
2028
|
+
* {
|
|
2029
|
+
* "LinesID": 2970079,
|
|
2030
|
+
* "Odds": 3.07,
|
|
2031
|
+
* "OddsOld": 3.05,
|
|
2032
|
+
* "ErrorMessage": 0,
|
|
2033
|
+
* "IsLive": false
|
|
2034
|
+
* }
|
|
2035
|
+
* ],
|
|
2036
|
+
* "Limitations": {
|
|
2037
|
+
* "Min": null,
|
|
2038
|
+
* "Max": null,
|
|
2039
|
+
* "MaxOddForMulty": 250
|
|
2040
|
+
* },
|
|
2041
|
+
* "BetslipType": 0
|
|
2042
|
+
* }
|
|
2043
|
+
* }
|
|
2044
|
+
* ```
|
|
2045
|
+
*/
|
|
2046
|
+
cloneStoredBetslip(oddsList: I.TBetslipOddsList[]): Promise<{
|
|
2047
|
+
data: I.TBetslipResponse | null;
|
|
2048
|
+
error: string | null;
|
|
2049
|
+
status: number;
|
|
2050
|
+
statusText: string;
|
|
2051
|
+
}>;
|
|
2052
|
+
/**
|
|
2053
|
+
* Получает сохранённый купон по его идентификатору.
|
|
2054
|
+
*
|
|
2055
|
+
* @param savedCouponId - Уникальный числовой идентификатор сохранённого купона.
|
|
2056
|
+
* @returns Данные сохранённого купона.
|
|
2057
|
+
*
|
|
2058
|
+
* @remarks
|
|
2059
|
+
* Endpoint: `GET /portfolio/getcoupon/:savedCouponId` (NV20)
|
|
2060
|
+
*
|
|
2061
|
+
* @example
|
|
2062
|
+
* ```ts
|
|
2063
|
+
* // Запрос
|
|
2064
|
+
* const coupon = await api.getSavedCoupon(12345);
|
|
2065
|
+
*
|
|
2066
|
+
* // Ответ (строка с данными купона)
|
|
2067
|
+
* // "{ ... serialized coupon data ... }"
|
|
2068
|
+
* ```
|
|
2069
|
+
*/
|
|
2070
|
+
getSavedCoupon(savedCouponId: number): Promise<{
|
|
2071
|
+
data: any;
|
|
2072
|
+
error: string | null;
|
|
2073
|
+
status: number;
|
|
2074
|
+
statusText: string;
|
|
2075
|
+
}>;
|
|
2076
|
+
/**
|
|
2077
|
+
* Создаёт новый сохранённый купон на основе переданных данных и списка кодов.
|
|
2078
|
+
*
|
|
2079
|
+
* @param couponData - Объект {@link I.ICouponRequest} с данными купона (коэффициенты, домен, партнёр и т.д.).
|
|
2080
|
+
* @param savedCodesList - Массив строковых кодов, привязываемых к купону.
|
|
2081
|
+
* @returns Результат создания купона.
|
|
2082
|
+
*
|
|
2083
|
+
* @remarks
|
|
2084
|
+
* Endpoint: `POST /portfolio/createcoupon` (NV20)
|
|
2085
|
+
*
|
|
2086
|
+
* @example
|
|
2087
|
+
* ```ts
|
|
2088
|
+
* // Payload запроса
|
|
2089
|
+
* const payload = {
|
|
2090
|
+
* data: {
|
|
2091
|
+
* odds: [
|
|
2092
|
+
* {
|
|
2093
|
+
* ErrorMessage: 0,
|
|
2094
|
+
* Min: 10,
|
|
2095
|
+
* Max: 1000,
|
|
2096
|
+
* MinCurrencyUnit: 1,
|
|
2097
|
+
* IsRound: false,
|
|
2098
|
+
* IsReinvested: false,
|
|
2099
|
+
* MinAdd: 0,
|
|
2100
|
+
* MaxAdd: 0,
|
|
2101
|
+
* Odds: 1.85,
|
|
2102
|
+
* IsLive: false,
|
|
2103
|
+
* LinesID: 456789,
|
|
2104
|
+
* BetVarID: 1,
|
|
2105
|
+
* NameSport: "Football",
|
|
2106
|
+
* NameTeam1: "Team A",
|
|
2107
|
+
* NameTeam2: "Team B",
|
|
2108
|
+
* NameBetShort: "1"
|
|
2109
|
+
* }
|
|
2110
|
+
* ],
|
|
2111
|
+
* domain: "example.com",
|
|
2112
|
+
* partner: "partner1"
|
|
2113
|
+
* },
|
|
2114
|
+
* codes: ["ABC123", "DEF456"]
|
|
2115
|
+
* };
|
|
2116
|
+
*
|
|
2117
|
+
* const result = await api.createSavedCoupon(payload.data, payload.codes);
|
|
2118
|
+
* ```
|
|
2119
|
+
*/
|
|
2120
|
+
createSavedCoupon(couponData: I.ICouponRequest, savedCodesList: string[]): Promise<{
|
|
2121
|
+
data: any;
|
|
2122
|
+
error: string | null;
|
|
2123
|
+
status: number;
|
|
2124
|
+
statusText: string;
|
|
2125
|
+
}>;
|
|
2126
|
+
/**
|
|
2127
|
+
* Получает список сохранённых купонов по массиву кодов.
|
|
2128
|
+
*
|
|
2129
|
+
* @param savedCodesList - Массив строковых кодов для поиска соответствующих купонов.
|
|
2130
|
+
* @returns Массив найденных купонов.
|
|
2131
|
+
*
|
|
2132
|
+
* @remarks
|
|
2133
|
+
* Endpoint: `POST /portfolio/getcoupons` (NV20)
|
|
2134
|
+
*
|
|
2135
|
+
* @example
|
|
2136
|
+
* ```ts
|
|
2137
|
+
* // Payload запроса
|
|
2138
|
+
* const payload = {
|
|
2139
|
+
* codes: ["ABC123", "DEF456"]
|
|
2140
|
+
* };
|
|
2141
|
+
*
|
|
2142
|
+
* const coupons = await api.getCoupons(["ABC123", "DEF456"]);
|
|
2143
|
+
*
|
|
2144
|
+
* // Ответ — массив объектов купонов
|
|
2145
|
+
* // [{ id: 1, odds: [...], domain: "example.com", ... }, ...]
|
|
2146
|
+
* ```
|
|
2147
|
+
*/
|
|
2148
|
+
getCoupons(savedCodesList: string[]): Promise<{
|
|
2149
|
+
data: any;
|
|
2150
|
+
error: string | null;
|
|
2151
|
+
status: number;
|
|
2152
|
+
statusText: string;
|
|
2153
|
+
}>;
|
|
1974
2154
|
}
|
package/dist/BetBoosterApi.js
CHANGED
|
@@ -3515,4 +3515,191 @@ export class BetBoosterApi {
|
|
|
3515
3515
|
const urlApk = this.url(`${handledPath}/${filename}`, api.DIRECT);
|
|
3516
3516
|
return this.responseHandlerDataData(urlApk, status, statusText);
|
|
3517
3517
|
}
|
|
3518
|
+
/**
|
|
3519
|
+
* Copies (clones) an existing betslip with the given list of odds items
|
|
3520
|
+
* and returns updated betslip data from the server, including actual odds,
|
|
3521
|
+
* limitations, and betslip type.
|
|
3522
|
+
*
|
|
3523
|
+
* @param oddsList - Array of betslip odds items to clone.
|
|
3524
|
+
*
|
|
3525
|
+
* @remarks
|
|
3526
|
+
* Endpoint: `POST /betting/CopyBetslip` (API v2)
|
|
3527
|
+
*
|
|
3528
|
+
* @example
|
|
3529
|
+
* **Request payload:**
|
|
3530
|
+
* ```json
|
|
3531
|
+
* {
|
|
3532
|
+
* "Bets": [
|
|
3533
|
+
* {
|
|
3534
|
+
* "ErrorMessage": 0,
|
|
3535
|
+
* "Min": 0,
|
|
3536
|
+
* "Max": 0,
|
|
3537
|
+
* "MinCurrencyUnit": 0.01,
|
|
3538
|
+
* "IsRound": false,
|
|
3539
|
+
* "IsReinvested": false,
|
|
3540
|
+
* "MinAdd": 0,
|
|
3541
|
+
* "MaxAdd": 0,
|
|
3542
|
+
* "Odds": 3.07,
|
|
3543
|
+
* "IsLive": false,
|
|
3544
|
+
* "LinesID": 2970079,
|
|
3545
|
+
* "BetVarID": 1,
|
|
3546
|
+
* "HandSize": null,
|
|
3547
|
+
* "Add1": null,
|
|
3548
|
+
* "Add2": null,
|
|
3549
|
+
* "Score": "",
|
|
3550
|
+
* "NameSport": "Football",
|
|
3551
|
+
* "NameCountry": "Europe",
|
|
3552
|
+
* "NameTurnir": "UEFA Champions League",
|
|
3553
|
+
* "NameTeam1": "Real Madrid",
|
|
3554
|
+
* "NameTeam2": "Bayern Munich",
|
|
3555
|
+
* "DateEvent": "2026-04-07T22:00:00+03:00",
|
|
3556
|
+
* "NameBetShort": "1",
|
|
3557
|
+
* "NameBetLong": "Team 1 wins",
|
|
3558
|
+
* "SportId": 5
|
|
3559
|
+
* }
|
|
3560
|
+
* ],
|
|
3561
|
+
* "Culture": "en-US"
|
|
3562
|
+
* }
|
|
3563
|
+
* ```
|
|
3564
|
+
*
|
|
3565
|
+
* **Response:**
|
|
3566
|
+
* ```json
|
|
3567
|
+
* {
|
|
3568
|
+
* "Ok": true,
|
|
3569
|
+
* "Error": null,
|
|
3570
|
+
* "Data": {
|
|
3571
|
+
* "Bets": [
|
|
3572
|
+
* {
|
|
3573
|
+
* "LinesID": 2970079,
|
|
3574
|
+
* "Odds": 3.07,
|
|
3575
|
+
* "OddsOld": 3.05,
|
|
3576
|
+
* "ErrorMessage": 0,
|
|
3577
|
+
* "IsLive": false
|
|
3578
|
+
* }
|
|
3579
|
+
* ],
|
|
3580
|
+
* "Limitations": {
|
|
3581
|
+
* "Min": null,
|
|
3582
|
+
* "Max": null,
|
|
3583
|
+
* "MaxOddForMulty": 250
|
|
3584
|
+
* },
|
|
3585
|
+
* "BetslipType": 0
|
|
3586
|
+
* }
|
|
3587
|
+
* }
|
|
3588
|
+
* ```
|
|
3589
|
+
*/
|
|
3590
|
+
async cloneStoredBetslip(oddsList) {
|
|
3591
|
+
const url = this.url(`/betting/CopyBetslip`, api.LBC);
|
|
3592
|
+
const payload = {
|
|
3593
|
+
Bets: oddsList,
|
|
3594
|
+
Culture: this.locale,
|
|
3595
|
+
};
|
|
3596
|
+
const { data, status, statusText } = await this.request(url).POST(payload).exec();
|
|
3597
|
+
return this.responseHandlerDataData(data, status, statusText);
|
|
3598
|
+
}
|
|
3599
|
+
/**
|
|
3600
|
+
* Получает сохранённый купон по его идентификатору.
|
|
3601
|
+
*
|
|
3602
|
+
* @param savedCouponId - Уникальный числовой идентификатор сохранённого купона.
|
|
3603
|
+
* @returns Данные сохранённого купона.
|
|
3604
|
+
*
|
|
3605
|
+
* @remarks
|
|
3606
|
+
* Endpoint: `GET /portfolio/getcoupon/:savedCouponId` (NV20)
|
|
3607
|
+
*
|
|
3608
|
+
* @example
|
|
3609
|
+
* ```ts
|
|
3610
|
+
* // Запрос
|
|
3611
|
+
* const coupon = await api.getSavedCoupon(12345);
|
|
3612
|
+
*
|
|
3613
|
+
* // Ответ (строка с данными купона)
|
|
3614
|
+
* // "{ ... serialized coupon data ... }"
|
|
3615
|
+
* ```
|
|
3616
|
+
*/
|
|
3617
|
+
async getSavedCoupon(savedCouponId) {
|
|
3618
|
+
const url = this.url(`/portfolio/getcoupon/${savedCouponId}`, api.NV20);
|
|
3619
|
+
const { data, status, statusText } = await this.request(url).exec();
|
|
3620
|
+
return this.responseHandlerDataData(data, status, statusText);
|
|
3621
|
+
}
|
|
3622
|
+
/**
|
|
3623
|
+
* Создаёт новый сохранённый купон на основе переданных данных и списка кодов.
|
|
3624
|
+
*
|
|
3625
|
+
* @param couponData - Объект {@link I.ICouponRequest} с данными купона (коэффициенты, домен, партнёр и т.д.).
|
|
3626
|
+
* @param savedCodesList - Массив строковых кодов, привязываемых к купону.
|
|
3627
|
+
* @returns Результат создания купона.
|
|
3628
|
+
*
|
|
3629
|
+
* @remarks
|
|
3630
|
+
* Endpoint: `POST /portfolio/createcoupon` (NV20)
|
|
3631
|
+
*
|
|
3632
|
+
* @example
|
|
3633
|
+
* ```ts
|
|
3634
|
+
* // Payload запроса
|
|
3635
|
+
* const payload = {
|
|
3636
|
+
* data: {
|
|
3637
|
+
* odds: [
|
|
3638
|
+
* {
|
|
3639
|
+
* ErrorMessage: 0,
|
|
3640
|
+
* Min: 10,
|
|
3641
|
+
* Max: 1000,
|
|
3642
|
+
* MinCurrencyUnit: 1,
|
|
3643
|
+
* IsRound: false,
|
|
3644
|
+
* IsReinvested: false,
|
|
3645
|
+
* MinAdd: 0,
|
|
3646
|
+
* MaxAdd: 0,
|
|
3647
|
+
* Odds: 1.85,
|
|
3648
|
+
* IsLive: false,
|
|
3649
|
+
* LinesID: 456789,
|
|
3650
|
+
* BetVarID: 1,
|
|
3651
|
+
* NameSport: "Football",
|
|
3652
|
+
* NameTeam1: "Team A",
|
|
3653
|
+
* NameTeam2: "Team B",
|
|
3654
|
+
* NameBetShort: "1"
|
|
3655
|
+
* }
|
|
3656
|
+
* ],
|
|
3657
|
+
* domain: "example.com",
|
|
3658
|
+
* partner: "partner1"
|
|
3659
|
+
* },
|
|
3660
|
+
* codes: ["ABC123", "DEF456"]
|
|
3661
|
+
* };
|
|
3662
|
+
*
|
|
3663
|
+
* const result = await api.createSavedCoupon(payload.data, payload.codes);
|
|
3664
|
+
* ```
|
|
3665
|
+
*/
|
|
3666
|
+
async createSavedCoupon(couponData, savedCodesList) {
|
|
3667
|
+
const url = this.url(`/portfolio/createcoupon`, api.NV20);
|
|
3668
|
+
const payload = {
|
|
3669
|
+
data: couponData,
|
|
3670
|
+
codes: savedCodesList,
|
|
3671
|
+
};
|
|
3672
|
+
const { data, status, statusText } = await this.request(url).POST(payload).exec();
|
|
3673
|
+
return this.responseHandlerDataData(data, status, statusText);
|
|
3674
|
+
}
|
|
3675
|
+
/**
|
|
3676
|
+
* Получает список сохранённых купонов по массиву кодов.
|
|
3677
|
+
*
|
|
3678
|
+
* @param savedCodesList - Массив строковых кодов для поиска соответствующих купонов.
|
|
3679
|
+
* @returns Массив найденных купонов.
|
|
3680
|
+
*
|
|
3681
|
+
* @remarks
|
|
3682
|
+
* Endpoint: `POST /portfolio/getcoupons` (NV20)
|
|
3683
|
+
*
|
|
3684
|
+
* @example
|
|
3685
|
+
* ```ts
|
|
3686
|
+
* // Payload запроса
|
|
3687
|
+
* const payload = {
|
|
3688
|
+
* codes: ["ABC123", "DEF456"]
|
|
3689
|
+
* };
|
|
3690
|
+
*
|
|
3691
|
+
* const coupons = await api.getCoupons(["ABC123", "DEF456"]);
|
|
3692
|
+
*
|
|
3693
|
+
* // Ответ — массив объектов купонов
|
|
3694
|
+
* // [{ id: 1, odds: [...], domain: "example.com", ... }, ...]
|
|
3695
|
+
* ```
|
|
3696
|
+
*/
|
|
3697
|
+
async getCoupons(savedCodesList) {
|
|
3698
|
+
const url = this.url(`/portfolio/getcoupons`, api.NV20);
|
|
3699
|
+
const payload = {
|
|
3700
|
+
codes: savedCodesList,
|
|
3701
|
+
};
|
|
3702
|
+
const { data, status, statusText } = await this.request(url).POST(payload).exec();
|
|
3703
|
+
return this.responseHandlerDataData(data, status, statusText);
|
|
3704
|
+
}
|
|
3518
3705
|
}
|
|
@@ -778,6 +778,95 @@ export type RedisDictionaryParams = {
|
|
|
778
778
|
/** Применяется только для справочников */
|
|
779
779
|
minutes?: number;
|
|
780
780
|
};
|
|
781
|
+
export type TBetslipOddsList = {
|
|
782
|
+
ErrorMessage: number;
|
|
783
|
+
Min: number;
|
|
784
|
+
Max: number;
|
|
785
|
+
MinCurrencyUnit: number;
|
|
786
|
+
IsRound: boolean;
|
|
787
|
+
IsReinvested: boolean;
|
|
788
|
+
MinAdd: number;
|
|
789
|
+
MaxAdd: number;
|
|
790
|
+
Odds: number;
|
|
791
|
+
IsLive: boolean;
|
|
792
|
+
Amount?: number;
|
|
793
|
+
LinesID?: number;
|
|
794
|
+
HandSize?: string | number | null;
|
|
795
|
+
BetVarID?: number;
|
|
796
|
+
Add1?: number | null;
|
|
797
|
+
Add2?: number | null;
|
|
798
|
+
Score?: string;
|
|
799
|
+
OddsOld?: number;
|
|
800
|
+
HandSizeOld?: number;
|
|
801
|
+
NameSport?: string;
|
|
802
|
+
NameCountry?: string;
|
|
803
|
+
NameTurnir?: string;
|
|
804
|
+
NameTeam1?: string;
|
|
805
|
+
NameTeam2?: string;
|
|
806
|
+
PriceNum?: number;
|
|
807
|
+
DateEvent?: string | null;
|
|
808
|
+
NameBetShort?: string;
|
|
809
|
+
NameBetLong?: string;
|
|
810
|
+
Comment?: string;
|
|
811
|
+
SportId?: number;
|
|
812
|
+
DateEventLive?: string | null;
|
|
813
|
+
BonusType?: number;
|
|
814
|
+
BetIdentifier?: string | null;
|
|
815
|
+
};
|
|
816
|
+
export type TBetslipResponse = {
|
|
817
|
+
Bets: TBetslipOddsList[];
|
|
818
|
+
Limitations: {
|
|
819
|
+
Min: number | null;
|
|
820
|
+
Max: number | null;
|
|
821
|
+
MaxOddForMulty: number;
|
|
822
|
+
};
|
|
823
|
+
BetslipType: EBetslipType;
|
|
824
|
+
};
|
|
825
|
+
/** Одна позиция ставки в купоне */
|
|
826
|
+
export interface ICouponOdd {
|
|
827
|
+
ErrorMessage: number;
|
|
828
|
+
Min: number;
|
|
829
|
+
Max: number;
|
|
830
|
+
MinCurrencyUnit: number;
|
|
831
|
+
IsRound: boolean;
|
|
832
|
+
IsReinvested: boolean;
|
|
833
|
+
MinAdd: number;
|
|
834
|
+
MaxAdd: number;
|
|
835
|
+
Odds: number;
|
|
836
|
+
IsLive: boolean;
|
|
837
|
+
Amount?: number;
|
|
838
|
+
LinesID?: number;
|
|
839
|
+
HandSize?: number | null;
|
|
840
|
+
BetVarID?: number;
|
|
841
|
+
Add1?: number | null;
|
|
842
|
+
Add2?: number | null;
|
|
843
|
+
Score?: string;
|
|
844
|
+
OddsOld?: number;
|
|
845
|
+
HandSizeOld?: number;
|
|
846
|
+
NameSport?: string;
|
|
847
|
+
NameCountry?: string;
|
|
848
|
+
NameTurnir?: string;
|
|
849
|
+
NameTeam1?: string;
|
|
850
|
+
NameTeam2?: string;
|
|
851
|
+
PriceNum?: number;
|
|
852
|
+
/** Дата события в формате ISO 8601 с часовым поясом, например "2026-04-07T22:00:00+03:00" */
|
|
853
|
+
DateEvent?: string;
|
|
854
|
+
NameBetShort?: string;
|
|
855
|
+
NameBetLong?: string;
|
|
856
|
+
Comment?: string;
|
|
857
|
+
SportId?: number;
|
|
858
|
+
DateEventLive?: string | null;
|
|
859
|
+
BonusType?: number;
|
|
860
|
+
BetIdentifier?: string | null;
|
|
861
|
+
}
|
|
862
|
+
/** Входящий запрос на сохранение купона */
|
|
863
|
+
export interface ICouponRequest {
|
|
864
|
+
odds: ICouponOdd[];
|
|
865
|
+
domain: string;
|
|
866
|
+
partner: string;
|
|
867
|
+
id?: number;
|
|
868
|
+
code?: string;
|
|
869
|
+
}
|
|
781
870
|
export declare function routeNameId(id: number | string, text?: string): string;
|
|
782
871
|
export declare function clearPhone(draftPhoneNumber: number | string, prefix?: string, suffix?: string): string;
|
|
783
872
|
export declare class BetBoosterApi {
|
|
@@ -2749,6 +2838,186 @@ export declare class BetBoosterApi {
|
|
|
2749
2838
|
status: number;
|
|
2750
2839
|
statusText: string;
|
|
2751
2840
|
}>;
|
|
2841
|
+
/**
|
|
2842
|
+
* Copies (clones) an existing betslip with the given list of odds items
|
|
2843
|
+
* and returns updated betslip data from the server, including actual odds,
|
|
2844
|
+
* limitations, and betslip type.
|
|
2845
|
+
*
|
|
2846
|
+
* @param oddsList - Array of betslip odds items to clone.
|
|
2847
|
+
*
|
|
2848
|
+
* @remarks
|
|
2849
|
+
* Endpoint: `POST /betting/CopyBetslip` (API v2)
|
|
2850
|
+
*
|
|
2851
|
+
* @example
|
|
2852
|
+
* **Request payload:**
|
|
2853
|
+
* ```json
|
|
2854
|
+
* {
|
|
2855
|
+
* "Bets": [
|
|
2856
|
+
* {
|
|
2857
|
+
* "ErrorMessage": 0,
|
|
2858
|
+
* "Min": 0,
|
|
2859
|
+
* "Max": 0,
|
|
2860
|
+
* "MinCurrencyUnit": 0.01,
|
|
2861
|
+
* "IsRound": false,
|
|
2862
|
+
* "IsReinvested": false,
|
|
2863
|
+
* "MinAdd": 0,
|
|
2864
|
+
* "MaxAdd": 0,
|
|
2865
|
+
* "Odds": 3.07,
|
|
2866
|
+
* "IsLive": false,
|
|
2867
|
+
* "LinesID": 2970079,
|
|
2868
|
+
* "BetVarID": 1,
|
|
2869
|
+
* "HandSize": null,
|
|
2870
|
+
* "Add1": null,
|
|
2871
|
+
* "Add2": null,
|
|
2872
|
+
* "Score": "",
|
|
2873
|
+
* "NameSport": "Football",
|
|
2874
|
+
* "NameCountry": "Europe",
|
|
2875
|
+
* "NameTurnir": "UEFA Champions League",
|
|
2876
|
+
* "NameTeam1": "Real Madrid",
|
|
2877
|
+
* "NameTeam2": "Bayern Munich",
|
|
2878
|
+
* "DateEvent": "2026-04-07T22:00:00+03:00",
|
|
2879
|
+
* "NameBetShort": "1",
|
|
2880
|
+
* "NameBetLong": "Team 1 wins",
|
|
2881
|
+
* "SportId": 5
|
|
2882
|
+
* }
|
|
2883
|
+
* ],
|
|
2884
|
+
* "Culture": "en-US"
|
|
2885
|
+
* }
|
|
2886
|
+
* ```
|
|
2887
|
+
*
|
|
2888
|
+
* **Response:**
|
|
2889
|
+
* ```json
|
|
2890
|
+
* {
|
|
2891
|
+
* "Ok": true,
|
|
2892
|
+
* "Error": null,
|
|
2893
|
+
* "Data": {
|
|
2894
|
+
* "Bets": [
|
|
2895
|
+
* {
|
|
2896
|
+
* "LinesID": 2970079,
|
|
2897
|
+
* "Odds": 3.07,
|
|
2898
|
+
* "OddsOld": 3.05,
|
|
2899
|
+
* "ErrorMessage": 0,
|
|
2900
|
+
* "IsLive": false
|
|
2901
|
+
* }
|
|
2902
|
+
* ],
|
|
2903
|
+
* "Limitations": {
|
|
2904
|
+
* "Min": null,
|
|
2905
|
+
* "Max": null,
|
|
2906
|
+
* "MaxOddForMulty": 250
|
|
2907
|
+
* },
|
|
2908
|
+
* "BetslipType": 0
|
|
2909
|
+
* }
|
|
2910
|
+
* }
|
|
2911
|
+
* ```
|
|
2912
|
+
*/
|
|
2913
|
+
cloneStoredBetslip(oddsList: TBetslipOddsList[]): Promise<{
|
|
2914
|
+
data: TBetslipResponse | null;
|
|
2915
|
+
error: string | null;
|
|
2916
|
+
status: number;
|
|
2917
|
+
statusText: string;
|
|
2918
|
+
}>;
|
|
2919
|
+
/**
|
|
2920
|
+
* Получает сохранённый купон по его идентификатору.
|
|
2921
|
+
*
|
|
2922
|
+
* @param savedCouponId - Уникальный числовой идентификатор сохранённого купона.
|
|
2923
|
+
* @returns Данные сохранённого купона.
|
|
2924
|
+
*
|
|
2925
|
+
* @remarks
|
|
2926
|
+
* Endpoint: `GET /portfolio/getcoupon/:savedCouponId` (NV20)
|
|
2927
|
+
*
|
|
2928
|
+
* @example
|
|
2929
|
+
* ```ts
|
|
2930
|
+
* // Запрос
|
|
2931
|
+
* const coupon = await api.getSavedCoupon(12345);
|
|
2932
|
+
*
|
|
2933
|
+
* // Ответ (строка с данными купона)
|
|
2934
|
+
* // "{ ... serialized coupon data ... }"
|
|
2935
|
+
* ```
|
|
2936
|
+
*/
|
|
2937
|
+
getSavedCoupon(savedCouponId: number): Promise<{
|
|
2938
|
+
data: any;
|
|
2939
|
+
error: string | null;
|
|
2940
|
+
status: number;
|
|
2941
|
+
statusText: string;
|
|
2942
|
+
}>;
|
|
2943
|
+
/**
|
|
2944
|
+
* Создаёт новый сохранённый купон на основе переданных данных и списка кодов.
|
|
2945
|
+
*
|
|
2946
|
+
* @param couponData - Объект {@link I.ICouponRequest} с данными купона (коэффициенты, домен, партнёр и т.д.).
|
|
2947
|
+
* @param savedCodesList - Массив строковых кодов, привязываемых к купону.
|
|
2948
|
+
* @returns Результат создания купона.
|
|
2949
|
+
*
|
|
2950
|
+
* @remarks
|
|
2951
|
+
* Endpoint: `POST /portfolio/createcoupon` (NV20)
|
|
2952
|
+
*
|
|
2953
|
+
* @example
|
|
2954
|
+
* ```ts
|
|
2955
|
+
* // Payload запроса
|
|
2956
|
+
* const payload = {
|
|
2957
|
+
* data: {
|
|
2958
|
+
* odds: [
|
|
2959
|
+
* {
|
|
2960
|
+
* ErrorMessage: 0,
|
|
2961
|
+
* Min: 10,
|
|
2962
|
+
* Max: 1000,
|
|
2963
|
+
* MinCurrencyUnit: 1,
|
|
2964
|
+
* IsRound: false,
|
|
2965
|
+
* IsReinvested: false,
|
|
2966
|
+
* MinAdd: 0,
|
|
2967
|
+
* MaxAdd: 0,
|
|
2968
|
+
* Odds: 1.85,
|
|
2969
|
+
* IsLive: false,
|
|
2970
|
+
* LinesID: 456789,
|
|
2971
|
+
* BetVarID: 1,
|
|
2972
|
+
* NameSport: "Football",
|
|
2973
|
+
* NameTeam1: "Team A",
|
|
2974
|
+
* NameTeam2: "Team B",
|
|
2975
|
+
* NameBetShort: "1"
|
|
2976
|
+
* }
|
|
2977
|
+
* ],
|
|
2978
|
+
* domain: "example.com",
|
|
2979
|
+
* partner: "partner1"
|
|
2980
|
+
* },
|
|
2981
|
+
* codes: ["ABC123", "DEF456"]
|
|
2982
|
+
* };
|
|
2983
|
+
*
|
|
2984
|
+
* const result = await api.createSavedCoupon(payload.data, payload.codes);
|
|
2985
|
+
* ```
|
|
2986
|
+
*/
|
|
2987
|
+
createSavedCoupon(couponData: ICouponRequest, savedCodesList: string[]): Promise<{
|
|
2988
|
+
data: any;
|
|
2989
|
+
error: string | null;
|
|
2990
|
+
status: number;
|
|
2991
|
+
statusText: string;
|
|
2992
|
+
}>;
|
|
2993
|
+
/**
|
|
2994
|
+
* Получает список сохранённых купонов по массиву кодов.
|
|
2995
|
+
*
|
|
2996
|
+
* @param savedCodesList - Массив строковых кодов для поиска соответствующих купонов.
|
|
2997
|
+
* @returns Массив найденных купонов.
|
|
2998
|
+
*
|
|
2999
|
+
* @remarks
|
|
3000
|
+
* Endpoint: `POST /portfolio/getcoupons` (NV20)
|
|
3001
|
+
*
|
|
3002
|
+
* @example
|
|
3003
|
+
* ```ts
|
|
3004
|
+
* // Payload запроса
|
|
3005
|
+
* const payload = {
|
|
3006
|
+
* codes: ["ABC123", "DEF456"]
|
|
3007
|
+
* };
|
|
3008
|
+
*
|
|
3009
|
+
* const coupons = await api.getCoupons(["ABC123", "DEF456"]);
|
|
3010
|
+
*
|
|
3011
|
+
* // Ответ — массив объектов купонов
|
|
3012
|
+
* // [{ id: 1, odds: [...], domain: "example.com", ... }, ...]
|
|
3013
|
+
* ```
|
|
3014
|
+
*/
|
|
3015
|
+
getCoupons(savedCodesList: string[]): Promise<{
|
|
3016
|
+
data: any;
|
|
3017
|
+
error: string | null;
|
|
3018
|
+
status: number;
|
|
3019
|
+
statusText: string;
|
|
3020
|
+
}>;
|
|
2752
3021
|
}
|
|
2753
3022
|
|
|
2754
3023
|
export {};
|