@escapenavigator/types 2.1.0 → 2.1.2
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/cashbox/create-online-cashbox.dto.d.ts +1 -1
- package/dist/cashbox/create-online-cashbox.dto.js +5 -2
- package/dist/cashbox/enum/cashbox-type.enum.d.ts +2 -1
- package/dist/cashbox/enum/cashbox-type.enum.js +3 -1
- package/dist/openapi/orders/enum/payment-type.enum.d.ts +2 -1
- package/dist/openapi/orders/enum/payment-type.enum.js +1 -0
- package/dist/openapi/shared/openapi-create-payment.ro.d.ts +1 -1
- package/dist/openapi/shared/openapi-order-upselling.ro.d.ts +6 -0
- package/dist/openapi/shared/openapi-order-upselling.ro.js +4 -0
- package/dist/order/order.ro.d.ts +14 -0
- package/dist/order/order.ro.js +14 -0
- package/dist/order-group/order-group.ro.d.ts +6 -0
- package/dist/order-group/order-group.ro.js +6 -0
- package/dist/packages/order-package.ro.d.ts +20 -0
- package/dist/packages/order-package.ro.js +40 -0
- package/dist/packages/package-availability.dto.d.ts +7 -0
- package/dist/packages/package-availability.dto.js +7 -0
- package/dist/packages/package-availability.ro.d.ts +23 -0
- package/dist/packages/package-availability.ro.js +35 -1
- package/dist/packages/package-position.dto.js +3 -1
- package/dist/packages/part-of-day.enum.d.ts +12 -0
- package/dist/packages/part-of-day.enum.js +16 -0
- package/dist/profile/telephony/ro/telephony-call.ro.d.ts +5 -0
- package/dist/profile/telephony/ro/telephony-call.ro.js +20 -0
- package/dist/role/create-role.dto.d.ts +5 -0
- package/dist/role/create-role.dto.js +6 -0
- package/dist/role/role.ro.d.ts +5 -0
- package/dist/role/role.ro.js +4 -0
- package/dist/transaction/enum/transaction-source.enum.d.ts +2 -1
- package/dist/transaction/enum/transaction-source.enum.js +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { PrepaymentTypeEnum } from '../slot/enum/prepayment-type.enum';
|
|
|
2
2
|
import { CashboxTypeEnum } from './enum/cashbox-type.enum';
|
|
3
3
|
export declare class CreateOnlineCashboxDto {
|
|
4
4
|
title: string;
|
|
5
|
-
type: CashboxTypeEnum.PAYPAL | CashboxTypeEnum.STRIPE | CashboxTypeEnum.BS | CashboxTypeEnum.CLOUD_PAYMENTS | CashboxTypeEnum.YOOKASSA;
|
|
5
|
+
type: CashboxTypeEnum.PAYPAL | CashboxTypeEnum.STRIPE | CashboxTypeEnum.BS | CashboxTypeEnum.CLOUD_PAYMENTS | CashboxTypeEnum.YOOKASSA | CashboxTypeEnum.TBANK;
|
|
6
6
|
identificator?: string;
|
|
7
7
|
apiSecret?: string;
|
|
8
8
|
questroomsIds: number[];
|
|
@@ -32,13 +32,16 @@ __decorate([
|
|
|
32
32
|
(0, class_validator_1.ValidateIf)((o) => o.type === cashbox_type_enum_1.CashboxTypeEnum.PAYPAL ||
|
|
33
33
|
o.type === cashbox_type_enum_1.CashboxTypeEnum.BS ||
|
|
34
34
|
o.type === cashbox_type_enum_1.CashboxTypeEnum.CLOUD_PAYMENTS ||
|
|
35
|
-
o.type === cashbox_type_enum_1.CashboxTypeEnum.YOOKASSA
|
|
35
|
+
o.type === cashbox_type_enum_1.CashboxTypeEnum.YOOKASSA ||
|
|
36
|
+
o.type === cashbox_type_enum_1.CashboxTypeEnum.TBANK),
|
|
36
37
|
(0, is_not_blank_1.IsNotBlank)(),
|
|
37
38
|
(0, class_transformer_1.Expose)(),
|
|
38
39
|
__metadata("design:type", String)
|
|
39
40
|
], CreateOnlineCashboxDto.prototype, "identificator", void 0);
|
|
40
41
|
__decorate([
|
|
41
|
-
(0, class_validator_1.ValidateIf)((o) => o.type === cashbox_type_enum_1.CashboxTypeEnum.CLOUD_PAYMENTS ||
|
|
42
|
+
(0, class_validator_1.ValidateIf)((o) => o.type === cashbox_type_enum_1.CashboxTypeEnum.CLOUD_PAYMENTS ||
|
|
43
|
+
o.type === cashbox_type_enum_1.CashboxTypeEnum.YOOKASSA ||
|
|
44
|
+
o.type === cashbox_type_enum_1.CashboxTypeEnum.TBANK),
|
|
42
45
|
(0, is_not_blank_1.IsNotBlank)(),
|
|
43
46
|
(0, class_transformer_1.Expose)(),
|
|
44
47
|
__metadata("design:type", String)
|
|
@@ -7,7 +7,8 @@ export declare enum CashboxTypeEnum {
|
|
|
7
7
|
STRIPE = "stripe",
|
|
8
8
|
SQUARE = "square",
|
|
9
9
|
CLOUD_PAYMENTS = "cloudpayments",
|
|
10
|
-
YOOKASSA = "yookassa"
|
|
10
|
+
YOOKASSA = "yookassa",
|
|
11
|
+
TBANK = "tbank"
|
|
11
12
|
}
|
|
12
13
|
export declare const RU_ONLINE_CASHBOX_TYPES: CashboxTypeEnum[];
|
|
13
14
|
export declare const isRuOnlineCashboxType: (type: CashboxTypeEnum) => boolean;
|
|
@@ -12,10 +12,12 @@ var CashboxTypeEnum;
|
|
|
12
12
|
CashboxTypeEnum["SQUARE"] = "square";
|
|
13
13
|
CashboxTypeEnum["CLOUD_PAYMENTS"] = "cloudpayments";
|
|
14
14
|
CashboxTypeEnum["YOOKASSA"] = "yookassa";
|
|
15
|
+
CashboxTypeEnum["TBANK"] = "tbank";
|
|
15
16
|
})(CashboxTypeEnum || (exports.CashboxTypeEnum = CashboxTypeEnum = {}));
|
|
16
17
|
exports.RU_ONLINE_CASHBOX_TYPES = [
|
|
17
18
|
CashboxTypeEnum.CLOUD_PAYMENTS,
|
|
18
19
|
CashboxTypeEnum.YOOKASSA,
|
|
20
|
+
CashboxTypeEnum.TBANK,
|
|
19
21
|
];
|
|
20
|
-
const isRuOnlineCashboxType = (type) =>
|
|
22
|
+
const isRuOnlineCashboxType = (type) => exports.RU_ONLINE_CASHBOX_TYPES.includes(type);
|
|
21
23
|
exports.isRuOnlineCashboxType = isRuOnlineCashboxType;
|
|
@@ -10,4 +10,5 @@ var PaymentMethodEnum;
|
|
|
10
10
|
PaymentMethodEnum["CASH"] = "cash";
|
|
11
11
|
PaymentMethodEnum["CLOUD_PAYMENTS"] = "cloudpayments";
|
|
12
12
|
PaymentMethodEnum["YOOKASSA"] = "yookassa";
|
|
13
|
+
PaymentMethodEnum["TBANK"] = "tbank";
|
|
13
14
|
})(PaymentMethodEnum || (exports.PaymentMethodEnum = PaymentMethodEnum = {}));
|
|
@@ -6,5 +6,5 @@ export declare class OpenapiCreatePaymentRO {
|
|
|
6
6
|
type: 'order' | 'certificate' | 'navigatorCertificate';
|
|
7
7
|
token: string;
|
|
8
8
|
currency: ProfileCurrencyEnum;
|
|
9
|
-
provider?: 'stripe' | 'paypal' | 'square' | 'cloudpayments' | 'yookassa';
|
|
9
|
+
provider?: 'stripe' | 'paypal' | 'square' | 'cloudpayments' | 'yookassa' | 'tbank';
|
|
10
10
|
}
|
|
@@ -7,4 +7,10 @@ export declare class OpenapiOrderUpsellingRO {
|
|
|
7
7
|
count: number;
|
|
8
8
|
clientCanRemove: boolean;
|
|
9
9
|
nonRefundable: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Услуга — часть состава пакета. В `fixed`-режиме её `amount` = 0 (уже
|
|
12
|
+
* внутри цены пакета), в `discount` — по прайсу, но платить за неё
|
|
13
|
+
* отдельно клиент не выбирал: убрать её из заказа он не может.
|
|
14
|
+
*/
|
|
15
|
+
includedInPackage: boolean;
|
|
10
16
|
}
|
|
@@ -46,3 +46,7 @@ __decorate([
|
|
|
46
46
|
(0, class_transformer_1.Expose)(),
|
|
47
47
|
__metadata("design:type", Boolean)
|
|
48
48
|
], OpenapiOrderUpsellingRO.prototype, "nonRefundable", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_transformer_1.Expose)(),
|
|
51
|
+
__metadata("design:type", Boolean)
|
|
52
|
+
], OpenapiOrderUpsellingRO.prototype, "includedInPackage", void 0);
|
package/dist/order/order.ro.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { LoyaltyBonusRO } from '../loyalty/loyalty-bonus.ro';
|
|
|
3
3
|
import { OrderDiscountSourceEnum } from '../order-discount/enum/order-discount-source.enum';
|
|
4
4
|
import { OrderPenaltyTypeEnum } from '../order-penalty/enum/order-penalty-type.enum';
|
|
5
5
|
import { OrderProductRO } from '../order-product/order-product.ro';
|
|
6
|
+
import { OrderPackageRO } from '../packages/order-package.ro';
|
|
6
7
|
import { PromocodeKindEnum } from '../promocode/emun/promocode-kind.enum';
|
|
7
8
|
import { QuestroomCancelationTypeEnum } from '../questroom/enum/questroom-cancelation-type.enum';
|
|
8
9
|
import { Languages } from '../shared/enum/languages.enum';
|
|
@@ -102,6 +103,13 @@ declare class Upsellings extends RO {
|
|
|
102
103
|
title: string;
|
|
103
104
|
comment?: string;
|
|
104
105
|
amount: number;
|
|
106
|
+
/** Каталожный id услуги — по нему сверяется состав пакета. */
|
|
107
|
+
upsellingId: string;
|
|
108
|
+
/**
|
|
109
|
+
* Услуга входит в состав пакета: удалять её отдельной строкой нельзя,
|
|
110
|
+
* деньги берутся за пакет (см. `OrderPackageRO`).
|
|
111
|
+
*/
|
|
112
|
+
includedInPackage: boolean;
|
|
105
113
|
userId: number;
|
|
106
114
|
count: number;
|
|
107
115
|
nonRefundable: boolean;
|
|
@@ -245,6 +253,12 @@ export declare class OrderRO extends RO {
|
|
|
245
253
|
refundedAmount: number;
|
|
246
254
|
groupId?: number;
|
|
247
255
|
groupShare?: number;
|
|
256
|
+
/**
|
|
257
|
+
* Пакет, из которого собрана группа этого заказа. Денормализуется на
|
|
258
|
+
* чтении (`OrderService.findOneForModal`) — оператору нужно видеть «это
|
|
259
|
+
* пакет» в самой карточке брони, не открывая сделку.
|
|
260
|
+
*/
|
|
261
|
+
package?: OrderPackageRO;
|
|
248
262
|
/**
|
|
249
263
|
* Состав брони по категориям тарифа: `{ adult: 2, student: 1, kid: 2 }`.
|
|
250
264
|
* Вместе со снимком `categories` — источник истины для цены.
|
package/dist/order/order.ro.js
CHANGED
|
@@ -18,6 +18,7 @@ const loyalty_bonus_ro_1 = require("../loyalty/loyalty-bonus.ro");
|
|
|
18
18
|
const order_discount_source_enum_1 = require("../order-discount/enum/order-discount-source.enum");
|
|
19
19
|
const order_penalty_type_enum_1 = require("../order-penalty/enum/order-penalty-type.enum");
|
|
20
20
|
const order_product_ro_1 = require("../order-product/order-product.ro");
|
|
21
|
+
const order_package_ro_1 = require("../packages/order-package.ro");
|
|
21
22
|
const promocode_kind_enum_1 = require("../promocode/emun/promocode-kind.enum");
|
|
22
23
|
const questroom_cancelation_type_enum_1 = require("../questroom/enum/questroom-cancelation-type.enum");
|
|
23
24
|
const languages_enum_1 = require("../shared/enum/languages.enum");
|
|
@@ -245,6 +246,14 @@ __decorate([
|
|
|
245
246
|
(0, class_transformer_1.Expose)(),
|
|
246
247
|
__metadata("design:type", Number)
|
|
247
248
|
], Upsellings.prototype, "amount", void 0);
|
|
249
|
+
__decorate([
|
|
250
|
+
(0, class_transformer_1.Expose)(),
|
|
251
|
+
__metadata("design:type", String)
|
|
252
|
+
], Upsellings.prototype, "upsellingId", void 0);
|
|
253
|
+
__decorate([
|
|
254
|
+
(0, class_transformer_1.Expose)(),
|
|
255
|
+
__metadata("design:type", Boolean)
|
|
256
|
+
], Upsellings.prototype, "includedInPackage", void 0);
|
|
248
257
|
__decorate([
|
|
249
258
|
(0, class_transformer_1.Expose)(),
|
|
250
259
|
__metadata("design:type", Number)
|
|
@@ -561,6 +570,11 @@ __decorate([
|
|
|
561
570
|
(0, class_transformer_1.Expose)(),
|
|
562
571
|
__metadata("design:type", Number)
|
|
563
572
|
], OrderRO.prototype, "groupShare", void 0);
|
|
573
|
+
__decorate([
|
|
574
|
+
(0, class_transformer_1.Expose)(),
|
|
575
|
+
(0, class_transformer_1.Type)(() => order_package_ro_1.OrderPackageRO),
|
|
576
|
+
__metadata("design:type", order_package_ro_1.OrderPackageRO)
|
|
577
|
+
], OrderRO.prototype, "package", void 0);
|
|
564
578
|
__decorate([
|
|
565
579
|
(0, class_transformer_1.Expose)(),
|
|
566
580
|
__metadata("design:type", Object)
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Certificates, Discounts, OrderRO, Promocodes, Transactions } from '../order/order.ro';
|
|
2
|
+
import { OrderPackageRO } from '../packages/order-package.ro';
|
|
2
3
|
import { RO } from '../shared/ro-class';
|
|
3
4
|
export declare class OrderGroupRO extends RO {
|
|
4
5
|
code: string;
|
|
6
|
+
/**
|
|
7
|
+
* Пакет, из которого собрана сделка. `null`/отсутствует — обычная
|
|
8
|
+
* групповая бронь.
|
|
9
|
+
*/
|
|
10
|
+
package?: OrderPackageRO;
|
|
5
11
|
comment: string;
|
|
6
12
|
deleted: boolean;
|
|
7
13
|
clientId: number;
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.OrderGroupRO = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const order_ro_1 = require("../order/order.ro");
|
|
15
|
+
const order_package_ro_1 = require("../packages/order-package.ro");
|
|
15
16
|
const ro_class_1 = require("../shared/ro-class");
|
|
16
17
|
class OrderGroupRO extends ro_class_1.RO {
|
|
17
18
|
}
|
|
@@ -20,6 +21,11 @@ __decorate([
|
|
|
20
21
|
(0, class_transformer_1.Expose)(),
|
|
21
22
|
__metadata("design:type", String)
|
|
22
23
|
], OrderGroupRO.prototype, "code", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_transformer_1.Expose)(),
|
|
26
|
+
(0, class_transformer_1.Type)(() => order_package_ro_1.OrderPackageRO),
|
|
27
|
+
__metadata("design:type", order_package_ro_1.OrderPackageRO)
|
|
28
|
+
], OrderGroupRO.prototype, "package", void 0);
|
|
23
29
|
__decorate([
|
|
24
30
|
(0, class_transformer_1.Expose)(),
|
|
25
31
|
__metadata("design:type", String)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PackagePricingModeEnum } from './package-pricing-mode.enum';
|
|
2
|
+
/**
|
|
3
|
+
* Пакет как контекст заказа: минимум, которого хватает и админке, и виджету,
|
|
4
|
+
* чтобы показать «это пакет» и отличить услуги состава от обычных допов.
|
|
5
|
+
*
|
|
6
|
+
* Отдаётся на группе (`OrderGroupRO.package`) и на самом заказе
|
|
7
|
+
* (`OrderRO.package`) — оператор открывает и то, и другое.
|
|
8
|
+
*/
|
|
9
|
+
export declare class OrderPackageRO {
|
|
10
|
+
id: number;
|
|
11
|
+
/** Клиентское название, если оно задано, иначе внутреннее. */
|
|
12
|
+
title: string;
|
|
13
|
+
pricingMode: PackagePricingModeEnum;
|
|
14
|
+
/**
|
|
15
|
+
* Каталожные id услуг, входящих в состав пакета. Нужны, чтобы отличить
|
|
16
|
+
* услугу пакета от обычного допа в `discount`-режиме, где услуги состава
|
|
17
|
+
* стоят по прайсу и по цене от обычных не отличаются.
|
|
18
|
+
*/
|
|
19
|
+
includedUpsellingIds: number[];
|
|
20
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OrderPackageRO = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const package_pricing_mode_enum_1 = require("./package-pricing-mode.enum");
|
|
15
|
+
/**
|
|
16
|
+
* Пакет как контекст заказа: минимум, которого хватает и админке, и виджету,
|
|
17
|
+
* чтобы показать «это пакет» и отличить услуги состава от обычных допов.
|
|
18
|
+
*
|
|
19
|
+
* Отдаётся на группе (`OrderGroupRO.package`) и на самом заказе
|
|
20
|
+
* (`OrderRO.package`) — оператор открывает и то, и другое.
|
|
21
|
+
*/
|
|
22
|
+
class OrderPackageRO {
|
|
23
|
+
}
|
|
24
|
+
exports.OrderPackageRO = OrderPackageRO;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
__metadata("design:type", Number)
|
|
28
|
+
], OrderPackageRO.prototype, "id", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_transformer_1.Expose)(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], OrderPackageRO.prototype, "title", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_transformer_1.Expose)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], OrderPackageRO.prototype, "pricingMode", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_transformer_1.Expose)(),
|
|
39
|
+
__metadata("design:type", Array)
|
|
40
|
+
], OrderPackageRO.prototype, "includedUpsellingIds", void 0);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PartOfDayEnum } from './part-of-day.enum';
|
|
1
2
|
/** Явное распределение игроков по позициям (для splitMode=manual / perPosition). */
|
|
2
3
|
export declare class PackagePlayersByPositionDto {
|
|
3
4
|
positionId: string;
|
|
@@ -10,6 +11,12 @@ export declare class PackageAvailabilityQueryDto {
|
|
|
10
11
|
players?: number;
|
|
11
12
|
/** Игроки по позициям (для perPosition / ручного сплита). */
|
|
12
13
|
playersByPosition?: PackagePlayersByPositionDto[];
|
|
14
|
+
/**
|
|
15
|
+
* Оставить только варианты с началом в этой части дня. Фильтр серверный:
|
|
16
|
+
* список вариантов режется до `MAX_VARIANTS`, и клиентская фильтрация
|
|
17
|
+
* показывала бы часть дня неполной.
|
|
18
|
+
*/
|
|
19
|
+
partOfDay?: PartOfDayEnum;
|
|
13
20
|
}
|
|
14
21
|
/**
|
|
15
22
|
* Доступность на диапазон дат — питает подсветку календаря и открытие
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.PackageRangeAvailabilityQueryDto = exports.PackageAvailabilityQueryDto = exports.PackagePlayersByPositionDto = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
|
+
const part_of_day_enum_1 = require("./part-of-day.enum");
|
|
15
16
|
/** Явное распределение игроков по позициям (для splitMode=manual / perPosition). */
|
|
16
17
|
class PackagePlayersByPositionDto {
|
|
17
18
|
}
|
|
@@ -52,6 +53,12 @@ __decorate([
|
|
|
52
53
|
(0, class_transformer_1.Expose)(),
|
|
53
54
|
__metadata("design:type", Array)
|
|
54
55
|
], PackageAvailabilityQueryDto.prototype, "playersByPosition", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, class_validator_1.IsOptional)(),
|
|
58
|
+
(0, class_validator_1.IsEnum)(part_of_day_enum_1.PartOfDayEnum),
|
|
59
|
+
(0, class_transformer_1.Expose)(),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], PackageAvailabilityQueryDto.prototype, "partOfDay", void 0);
|
|
55
62
|
/**
|
|
56
63
|
* Доступность на диапазон дат — питает подсветку календаря и открытие
|
|
57
64
|
* конфигуратора на ближайшей рабочей дате. Отдаёт только «есть/нет» на день:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PackageTimingModeEnum } from './package-timing-mode.enum';
|
|
2
|
+
import { PartOfDayEnum } from './part-of-day.enum';
|
|
2
3
|
/** Почему пакет нельзя забронировать на дату. Виджет показывает свой текст на каждую. */
|
|
3
4
|
export type PackageUnavailableReason = 'noSlots' | 'capacity' | 'inactive';
|
|
4
5
|
/** Один конкретный слот-кандидат под позицию пакета. */
|
|
@@ -48,6 +49,20 @@ export declare class PackageCombinationRO {
|
|
|
48
49
|
gapMinutes: number;
|
|
49
50
|
price?: PackageComboPriceRO;
|
|
50
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Сводка по части дня. Считается по ПОЛНОМУ набору вариантов, до прореживания
|
|
54
|
+
* и обрезки, иначе счётчик в сегменте не совпадёт с тем, что клиент увидит,
|
|
55
|
+
* когда его выберет.
|
|
56
|
+
*/
|
|
57
|
+
export declare class PackagePartOfDayBucketRO {
|
|
58
|
+
part: PartOfDayEnum;
|
|
59
|
+
/** Сколько вариантов начинается в этой части дня. */
|
|
60
|
+
count: number;
|
|
61
|
+
/** Самый ранний старт в сегменте (HH:mm) — подсказка «с 17:15». */
|
|
62
|
+
firstStart: string;
|
|
63
|
+
/** Минимальная цена варианта в сегменте. Только для `pricingMode=discount`. */
|
|
64
|
+
minPrice?: number;
|
|
65
|
+
}
|
|
51
66
|
/** Кандидаты под одну позицию (для ручного подбора времени клиентом). */
|
|
52
67
|
export declare class PackagePositionOptionsRO {
|
|
53
68
|
positionId: string;
|
|
@@ -68,6 +83,14 @@ export declare class PackageAvailabilityRO {
|
|
|
68
83
|
* клиент не выбирал из полусотни почти одинаковых строк.
|
|
69
84
|
*/
|
|
70
85
|
combinations: PackageCombinationRO[];
|
|
86
|
+
/**
|
|
87
|
+
* Непустые части дня со счётчиками — сегментированный выбор в виджете.
|
|
88
|
+
* Считаются по всей дате независимо от `partOfDay` в запросе, поэтому
|
|
89
|
+
* клиент всегда видит, что есть в остальных сегментах.
|
|
90
|
+
*/
|
|
91
|
+
parts: PackagePartOfDayBucketRO[];
|
|
92
|
+
/** Часть дня, по которой отфильтрован `combinations`. */
|
|
93
|
+
partOfDay?: PartOfDayEnum;
|
|
71
94
|
}
|
|
72
95
|
/** Доступность пакета на одну дату — для подсветки календаря. */
|
|
73
96
|
export declare class PackageDateAvailabilityRO {
|
|
@@ -9,10 +9,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PackageRangeAvailabilityRO = exports.PackageDateAvailabilityRO = exports.PackageAvailabilityRO = exports.PackagePositionOptionsRO = exports.PackageCombinationRO = exports.PackageComboPriceRO = exports.PackageSlotOptionRO = void 0;
|
|
12
|
+
exports.PackageRangeAvailabilityRO = exports.PackageDateAvailabilityRO = exports.PackageAvailabilityRO = exports.PackagePositionOptionsRO = exports.PackagePartOfDayBucketRO = exports.PackageCombinationRO = exports.PackageComboPriceRO = exports.PackageSlotOptionRO = void 0;
|
|
13
13
|
/* eslint-disable max-classes-per-file */
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const package_timing_mode_enum_1 = require("./package-timing-mode.enum");
|
|
16
|
+
const part_of_day_enum_1 = require("./part-of-day.enum");
|
|
16
17
|
/** Один конкретный слот-кандидат под позицию пакета. */
|
|
17
18
|
class PackageSlotOptionRO {
|
|
18
19
|
}
|
|
@@ -118,6 +119,30 @@ __decorate([
|
|
|
118
119
|
(0, class_transformer_1.Type)(() => PackageComboPriceRO),
|
|
119
120
|
__metadata("design:type", PackageComboPriceRO)
|
|
120
121
|
], PackageCombinationRO.prototype, "price", void 0);
|
|
122
|
+
/**
|
|
123
|
+
* Сводка по части дня. Считается по ПОЛНОМУ набору вариантов, до прореживания
|
|
124
|
+
* и обрезки, иначе счётчик в сегменте не совпадёт с тем, что клиент увидит,
|
|
125
|
+
* когда его выберет.
|
|
126
|
+
*/
|
|
127
|
+
class PackagePartOfDayBucketRO {
|
|
128
|
+
}
|
|
129
|
+
exports.PackagePartOfDayBucketRO = PackagePartOfDayBucketRO;
|
|
130
|
+
__decorate([
|
|
131
|
+
(0, class_transformer_1.Expose)(),
|
|
132
|
+
__metadata("design:type", String)
|
|
133
|
+
], PackagePartOfDayBucketRO.prototype, "part", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, class_transformer_1.Expose)(),
|
|
136
|
+
__metadata("design:type", Number)
|
|
137
|
+
], PackagePartOfDayBucketRO.prototype, "count", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, class_transformer_1.Expose)(),
|
|
140
|
+
__metadata("design:type", String)
|
|
141
|
+
], PackagePartOfDayBucketRO.prototype, "firstStart", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
(0, class_transformer_1.Expose)(),
|
|
144
|
+
__metadata("design:type", Number)
|
|
145
|
+
], PackagePartOfDayBucketRO.prototype, "minPrice", void 0);
|
|
121
146
|
/** Кандидаты под одну позицию (для ручного подбора времени клиентом). */
|
|
122
147
|
class PackagePositionOptionsRO {
|
|
123
148
|
}
|
|
@@ -164,6 +189,15 @@ __decorate([
|
|
|
164
189
|
(0, class_transformer_1.Type)(() => PackageCombinationRO),
|
|
165
190
|
__metadata("design:type", Array)
|
|
166
191
|
], PackageAvailabilityRO.prototype, "combinations", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
(0, class_transformer_1.Expose)(),
|
|
194
|
+
(0, class_transformer_1.Type)(() => PackagePartOfDayBucketRO),
|
|
195
|
+
__metadata("design:type", Array)
|
|
196
|
+
], PackageAvailabilityRO.prototype, "parts", void 0);
|
|
197
|
+
__decorate([
|
|
198
|
+
(0, class_transformer_1.Expose)(),
|
|
199
|
+
__metadata("design:type", String)
|
|
200
|
+
], PackageAvailabilityRO.prototype, "partOfDay", void 0);
|
|
167
201
|
/** Доступность пакета на одну дату — для подсветки календаря. */
|
|
168
202
|
class PackageDateAvailabilityRO {
|
|
169
203
|
}
|
|
@@ -43,7 +43,9 @@ __decorate([
|
|
|
43
43
|
__metadata("design:type", String)
|
|
44
44
|
], PackagePositionDto.prototype, "selection", void 0);
|
|
45
45
|
__decorate([
|
|
46
|
+
(0, class_validator_1.ValidateIf)((o) => { var _a; return o.kind === package_position_kind_enum_1.PackagePositionKindEnum.QUESTROOM && !((_a = o.questroomTypes) === null || _a === void 0 ? void 0 : _a.length); }),
|
|
46
47
|
(0, class_validator_1.IsArray)(),
|
|
48
|
+
(0, class_validator_1.ArrayNotEmpty)(),
|
|
47
49
|
(0, class_validator_1.IsInt)({ each: true }),
|
|
48
50
|
(0, class_transformer_1.Transform)(({ value }) => (Array.isArray(value) ? value.map((v) => +v) : [])),
|
|
49
51
|
(0, class_transformer_1.Expose)(),
|
|
@@ -57,7 +59,7 @@ __decorate([
|
|
|
57
59
|
__metadata("design:type", Array)
|
|
58
60
|
], PackagePositionDto.prototype, "questroomTypes", void 0);
|
|
59
61
|
__decorate([
|
|
60
|
-
(0, class_validator_1.
|
|
62
|
+
(0, class_validator_1.ValidateIf)((o) => o.kind === package_position_kind_enum_1.PackagePositionKindEnum.UPSELLING),
|
|
61
63
|
(0, class_validator_1.IsInt)(),
|
|
62
64
|
(0, class_transformer_1.Expose)(),
|
|
63
65
|
__metadata("design:type", Number)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Часть дня для грубой фильтрации вариантов времени.
|
|
3
|
+
*
|
|
4
|
+
* Границы фиксированы (`packages/utils/dist/part-of-day`), т.к. клиент мыслит
|
|
5
|
+
* «утро/день/вечер», а не часами: любая настройка на профиль сделала бы
|
|
6
|
+
* подписи в виджете непредсказуемыми.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum PartOfDayEnum {
|
|
9
|
+
MORNING = "morning",
|
|
10
|
+
DAY = "day",
|
|
11
|
+
EVENING = "evening"
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartOfDayEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Часть дня для грубой фильтрации вариантов времени.
|
|
6
|
+
*
|
|
7
|
+
* Границы фиксированы (`packages/utils/dist/part-of-day`), т.к. клиент мыслит
|
|
8
|
+
* «утро/день/вечер», а не часами: любая настройка на профиль сделала бы
|
|
9
|
+
* подписи в виджете непредсказуемыми.
|
|
10
|
+
*/
|
|
11
|
+
var PartOfDayEnum;
|
|
12
|
+
(function (PartOfDayEnum) {
|
|
13
|
+
PartOfDayEnum["MORNING"] = "morning";
|
|
14
|
+
PartOfDayEnum["DAY"] = "day";
|
|
15
|
+
PartOfDayEnum["EVENING"] = "evening";
|
|
16
|
+
})(PartOfDayEnum || (exports.PartOfDayEnum = PartOfDayEnum = {}));
|
|
@@ -16,4 +16,9 @@ export declare class TelephonyCallRO extends RO {
|
|
|
16
16
|
orderCode: string | null;
|
|
17
17
|
orderUtcDate: string | null;
|
|
18
18
|
orderGroupId: number | null;
|
|
19
|
+
ordersCount: number;
|
|
20
|
+
certificatesCount: number;
|
|
21
|
+
leadsCount: number;
|
|
22
|
+
openLeadsCount: number;
|
|
23
|
+
latestLeadId: number | null;
|
|
19
24
|
}
|
|
@@ -73,3 +73,23 @@ __decorate([
|
|
|
73
73
|
(0, class_transformer_1.Expose)(),
|
|
74
74
|
__metadata("design:type", Number)
|
|
75
75
|
], TelephonyCallRO.prototype, "orderGroupId", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, class_transformer_1.Expose)(),
|
|
78
|
+
__metadata("design:type", Number)
|
|
79
|
+
], TelephonyCallRO.prototype, "ordersCount", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, class_transformer_1.Expose)(),
|
|
82
|
+
__metadata("design:type", Number)
|
|
83
|
+
], TelephonyCallRO.prototype, "certificatesCount", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, class_transformer_1.Expose)(),
|
|
86
|
+
__metadata("design:type", Number)
|
|
87
|
+
], TelephonyCallRO.prototype, "leadsCount", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, class_transformer_1.Expose)(),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], TelephonyCallRO.prototype, "openLeadsCount", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, class_transformer_1.Expose)(),
|
|
94
|
+
__metadata("design:type", Number)
|
|
95
|
+
], TelephonyCallRO.prototype, "latestLeadId", void 0);
|
|
@@ -8,6 +8,11 @@ export declare class CreateRoleDto {
|
|
|
8
8
|
accessToClientsSection: boolean;
|
|
9
9
|
canUseChat: boolean;
|
|
10
10
|
accessToLeadsSection: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Карточки входящих звонков и заявок. `true` по умолчанию, чтобы
|
|
13
|
+
* существующие роли не потеряли всплывашки; owner тоже ставит сам.
|
|
14
|
+
*/
|
|
15
|
+
canSeeIncomingLeadCards: boolean;
|
|
11
16
|
accessToMarketingSection: boolean;
|
|
12
17
|
accessToFinanceSection: boolean;
|
|
13
18
|
accessToStatisticSection: boolean;
|
|
@@ -69,6 +69,12 @@ __decorate([
|
|
|
69
69
|
(0, class_transformer_1.Expose)(),
|
|
70
70
|
__metadata("design:type", Boolean)
|
|
71
71
|
], CreateRoleDto.prototype, "accessToLeadsSection", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_validator_1.IsBoolean)(),
|
|
74
|
+
(0, class_transformer_1.Transform)(({ value }) => (value !== undefined ? value : true)),
|
|
75
|
+
(0, class_transformer_1.Expose)(),
|
|
76
|
+
__metadata("design:type", Boolean)
|
|
77
|
+
], CreateRoleDto.prototype, "canSeeIncomingLeadCards", void 0);
|
|
72
78
|
__decorate([
|
|
73
79
|
(0, class_validator_1.IsBoolean)(),
|
|
74
80
|
(0, class_transformer_1.Transform)(({ value }) => (value !== undefined ? value : false)),
|
package/dist/role/role.ro.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export declare class RoleRO extends RoleLightRO {
|
|
|
7
7
|
accessToClientsSection: boolean;
|
|
8
8
|
canUseChat: boolean;
|
|
9
9
|
accessToLeadsSection: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Всплывающие карточки входящих: звонок и новая заявка.
|
|
12
|
+
* Не следует из `totalAccess` — владелец настраивает отдельно.
|
|
13
|
+
*/
|
|
14
|
+
canSeeIncomingLeadCards: boolean;
|
|
10
15
|
accessToMarketingSection: boolean;
|
|
11
16
|
accessToFinanceSection: boolean;
|
|
12
17
|
accessToStatisticSection: boolean;
|
package/dist/role/role.ro.js
CHANGED
|
@@ -43,6 +43,10 @@ __decorate([
|
|
|
43
43
|
(0, class_transformer_1.Expose)(),
|
|
44
44
|
__metadata("design:type", Boolean)
|
|
45
45
|
], RoleRO.prototype, "accessToLeadsSection", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, class_transformer_1.Expose)(),
|
|
48
|
+
__metadata("design:type", Boolean)
|
|
49
|
+
], RoleRO.prototype, "canSeeIncomingLeadCards", void 0);
|
|
46
50
|
__decorate([
|
|
47
51
|
(0, class_transformer_1.Expose)(),
|
|
48
52
|
__metadata("design:type", Boolean)
|
|
@@ -9,4 +9,5 @@ var TransactionSourceEnum;
|
|
|
9
9
|
TransactionSourceEnum["INSIDE"] = "inside";
|
|
10
10
|
TransactionSourceEnum["CLOUD_PAYMENTS"] = "cloudpayments";
|
|
11
11
|
TransactionSourceEnum["YOOKASSA"] = "yookassa";
|
|
12
|
+
TransactionSourceEnum["TBANK"] = "tbank";
|
|
12
13
|
})(TransactionSourceEnum || (exports.TransactionSourceEnum = TransactionSourceEnum = {}));
|