@escapenavigator/types 2.0.4 → 2.0.5
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/aggregator-companies/aggregator-source.enum.d.ts +3 -0
- package/dist/aggregator-companies/aggregator-source.enum.js +7 -0
- package/dist/constants/language-name-by-language.js +3 -3
- package/dist/emails/email.ro.d.ts +5 -0
- package/dist/emails/email.ro.js +14 -0
- package/dist/emails/enum/email.category-enum.d.ts +18 -0
- package/dist/emails/enum/email.category-enum.js +22 -0
- package/dist/emails/enum/email.direction-enum.d.ts +9 -0
- package/dist/emails/enum/email.direction-enum.js +13 -0
- package/dist/google-places/create-company-from-place.dto.d.ts +7 -0
- package/dist/google-places/create-company-from-place.dto.js +29 -0
- package/dist/google-places/google-places-status.enum.d.ts +5 -0
- package/dist/google-places/google-places-status.enum.js +5 -0
- package/dist/google-places/google-places.ro.d.ts +4 -0
- package/dist/google-places/google-places.ro.js +16 -0
- package/dist/google-places/update-google-places.dto.d.ts +1 -0
- package/dist/google-places/update-google-places.dto.js +5 -0
- package/dist/openapi/orders/openapi-cancel-order.dto.d.ts +9 -0
- package/dist/openapi/orders/openapi-cancel-order.dto.js +29 -0
- package/dist/openapi/orders/openapi-order.ro.d.ts +7 -0
- package/dist/openapi/orders/openapi-order.ro.js +4 -0
- package/dist/openapi/shared/openapi-questroom.ro.d.ts +1 -0
- package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
- package/dist/openapi/upsellings/openapi-upselling.ro.d.ts +1 -0
- package/dist/openapi/upsellings/openapi-upselling.ro.js +4 -0
- package/dist/order/cancel-order.dto.d.ts +9 -0
- package/dist/order/cancel-order.dto.js +13 -0
- package/dist/order/enum/client-cancel-reason.enum.d.ts +19 -0
- package/dist/order/enum/client-cancel-reason.enum.js +23 -0
- package/dist/order/order.ro.d.ts +20 -0
- package/dist/order/order.ro.js +14 -0
- package/dist/parse-results/parse-result-payload.d.ts +54 -0
- package/dist/parse-results/parse-result-payload.js +2 -0
- package/dist/parse-results/parse-result-source.enum.d.ts +8 -0
- package/dist/parse-results/parse-result-source.enum.js +12 -0
- package/dist/parse-results/parse-result-status.enum.d.ts +10 -0
- package/dist/parse-results/parse-result-status.enum.js +14 -0
- package/dist/parse-results/parse-result.ro.d.ts +25 -0
- package/dist/parse-results/parse-result.ro.js +90 -0
- package/dist/parse-results/update-parse-result.dto.d.ts +5 -0
- package/dist/parse-results/update-parse-result.dto.js +21 -0
- package/dist/promocode/emun/promocode-kind.enum.d.ts +4 -0
- package/dist/promocode/emun/promocode-kind.enum.js +4 -0
- package/dist/questroom/create-questroom.dto.d.ts +2 -0
- package/dist/questroom/create-questroom.dto.js +6 -0
- package/dist/questroom/questroom-light.ro.d.ts +2 -0
- package/dist/questroom/questroom-light.ro.js +4 -0
- package/dist/statistics/bookings.d.ts +14 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/upselling/create-upselling.dto.d.ts +2 -0
- package/dist/upselling/create-upselling.dto.js +6 -0
- package/dist/upselling/upselling.ro.d.ts +1 -0
- package/dist/upselling/upselling.ro.js +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregatorSourceEnum = void 0;
|
|
4
|
+
var AggregatorSourceEnum;
|
|
5
|
+
(function (AggregatorSourceEnum) {
|
|
6
|
+
AggregatorSourceEnum["MORTY"] = "morty";
|
|
7
|
+
})(AggregatorSourceEnum || (exports.AggregatorSourceEnum = AggregatorSourceEnum = {}));
|
|
@@ -15,7 +15,7 @@ exports.languageNameByLanguage = {
|
|
|
15
15
|
[languages_enum_1.Languages.GR]: 'Ελληνικά',
|
|
16
16
|
[languages_enum_1.Languages.NL]: 'Nederlands',
|
|
17
17
|
[languages_enum_1.Languages.CS]: 'Čeština',
|
|
18
|
-
[languages_enum_1.Languages.FI]: '
|
|
18
|
+
[languages_enum_1.Languages.FI]: 'Suomi',
|
|
19
19
|
[languages_enum_1.Languages.DA]: 'Dansk',
|
|
20
20
|
[languages_enum_1.Languages.SK]: 'Slovenčina',
|
|
21
21
|
[languages_enum_1.Languages.HU]: 'Magyar',
|
|
@@ -23,7 +23,7 @@ exports.languageNameByLanguage = {
|
|
|
23
23
|
[languages_enum_1.Languages.LV]: 'Latviešu',
|
|
24
24
|
[languages_enum_1.Languages.BG]: 'Български',
|
|
25
25
|
[languages_enum_1.Languages.RO]: 'Română',
|
|
26
|
-
[languages_enum_1.Languages.LT]: '
|
|
27
|
-
[languages_enum_1.Languages.HE]: '
|
|
26
|
+
[languages_enum_1.Languages.LT]: 'Lietuvių',
|
|
27
|
+
[languages_enum_1.Languages.HE]: 'עברית',
|
|
28
28
|
[languages_enum_1.Languages.HR]: 'Hrvatski',
|
|
29
29
|
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EmailCategoryEnum } from './enum/email.category-enum';
|
|
2
|
+
import { EmailDirectionEnum } from './enum/email.direction-enum';
|
|
1
3
|
import { EmailStatusEnum } from './enum/email.status-enum';
|
|
2
4
|
declare class Profile {
|
|
3
5
|
id: number;
|
|
@@ -14,6 +16,9 @@ export declare class EmailRO {
|
|
|
14
16
|
identificator: string;
|
|
15
17
|
messageId: string;
|
|
16
18
|
status: EmailStatusEnum;
|
|
19
|
+
direction: EmailDirectionEnum;
|
|
20
|
+
category: EmailCategoryEnum;
|
|
21
|
+
categoryConfidence: number;
|
|
17
22
|
subject: string;
|
|
18
23
|
text: string;
|
|
19
24
|
html: string;
|
package/dist/emails/email.ro.js
CHANGED
|
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.EmailRO = void 0;
|
|
13
13
|
/* eslint-disable max-classes-per-file */
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const email_category_enum_1 = require("./enum/email.category-enum");
|
|
16
|
+
const email_direction_enum_1 = require("./enum/email.direction-enum");
|
|
15
17
|
const email_status_enum_1 = require("./enum/email.status-enum");
|
|
16
18
|
class Profile {
|
|
17
19
|
}
|
|
@@ -66,6 +68,18 @@ __decorate([
|
|
|
66
68
|
(0, class_transformer_1.Expose)(),
|
|
67
69
|
__metadata("design:type", String)
|
|
68
70
|
], EmailRO.prototype, "status", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_transformer_1.Expose)(),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], EmailRO.prototype, "direction", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, class_transformer_1.Expose)(),
|
|
77
|
+
__metadata("design:type", String)
|
|
78
|
+
], EmailRO.prototype, "category", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, class_transformer_1.Expose)(),
|
|
81
|
+
__metadata("design:type", Number)
|
|
82
|
+
], EmailRO.prototype, "categoryConfidence", void 0);
|
|
69
83
|
__decorate([
|
|
70
84
|
(0, class_transformer_1.Expose)(),
|
|
71
85
|
__metadata("design:type", String)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Смысловая категория входящего письма, проставляется GPT-классификатором
|
|
3
|
+
* (см. EmailClassifierService на бэкенде). Отделена от `EmailStatusEnum`,
|
|
4
|
+
* т.к. статус описывает доставку (sent/opened/bounced), а категория —
|
|
5
|
+
* содержание входящего письма.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum EmailCategoryEnum {
|
|
8
|
+
/** Мусор / нежелательные рассылки. */
|
|
9
|
+
SPAM = "spam",
|
|
10
|
+
/** Письма от игроков/гостей эскейпрумов (бронирования, вопросы по игре). */
|
|
11
|
+
PLAYER = "player",
|
|
12
|
+
/** Письма от владельцев квестов / пользователей платформы. */
|
|
13
|
+
CLIENT = "client",
|
|
14
|
+
/** Требует ручного ответа: жалобы, юридические, платежи, партнёрство. */
|
|
15
|
+
IMPORTANT = "important",
|
|
16
|
+
/** Не удалось уверенно классифицировать. */
|
|
17
|
+
OTHER = "other"
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailCategoryEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Смысловая категория входящего письма, проставляется GPT-классификатором
|
|
6
|
+
* (см. EmailClassifierService на бэкенде). Отделена от `EmailStatusEnum`,
|
|
7
|
+
* т.к. статус описывает доставку (sent/opened/bounced), а категория —
|
|
8
|
+
* содержание входящего письма.
|
|
9
|
+
*/
|
|
10
|
+
var EmailCategoryEnum;
|
|
11
|
+
(function (EmailCategoryEnum) {
|
|
12
|
+
/** Мусор / нежелательные рассылки. */
|
|
13
|
+
EmailCategoryEnum["SPAM"] = "spam";
|
|
14
|
+
/** Письма от игроков/гостей эскейпрумов (бронирования, вопросы по игре). */
|
|
15
|
+
EmailCategoryEnum["PLAYER"] = "player";
|
|
16
|
+
/** Письма от владельцев квестов / пользователей платформы. */
|
|
17
|
+
EmailCategoryEnum["CLIENT"] = "client";
|
|
18
|
+
/** Требует ручного ответа: жалобы, юридические, платежи, партнёрство. */
|
|
19
|
+
EmailCategoryEnum["IMPORTANT"] = "important";
|
|
20
|
+
/** Не удалось уверенно классифицировать. */
|
|
21
|
+
EmailCategoryEnum["OTHER"] = "other";
|
|
22
|
+
})(EmailCategoryEnum || (exports.EmailCategoryEnum = EmailCategoryEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Направление письма. Введено, чтобы разделить входящие и исходящие письма
|
|
3
|
+
* честным флагом, а не эвристикой `status === INBOX` (из-за которой входящий
|
|
4
|
+
* спам со `status = SPAM` исторически попадал во вкладку Outbox).
|
|
5
|
+
*/
|
|
6
|
+
export declare enum EmailDirectionEnum {
|
|
7
|
+
INBOUND = "inbound",
|
|
8
|
+
OUTBOUND = "outbound"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailDirectionEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Направление письма. Введено, чтобы разделить входящие и исходящие письма
|
|
6
|
+
* честным флагом, а не эвристикой `status === INBOX` (из-за которой входящий
|
|
7
|
+
* спам со `status = SPAM` исторически попадал во вкладку Outbox).
|
|
8
|
+
*/
|
|
9
|
+
var EmailDirectionEnum;
|
|
10
|
+
(function (EmailDirectionEnum) {
|
|
11
|
+
EmailDirectionEnum["INBOUND"] = "inbound";
|
|
12
|
+
EmailDirectionEnum["OUTBOUND"] = "outbound";
|
|
13
|
+
})(EmailDirectionEnum || (exports.EmailDirectionEnum = EmailDirectionEnum = {}));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class CreateCompanyFromPlaceDto {
|
|
2
|
+
mainEmail: string;
|
|
3
|
+
/** Сразу поставить задачу парсинга сайта после создания. */
|
|
4
|
+
parseAfter?: boolean;
|
|
5
|
+
/** ID других непривязанных GP того же домена — создать локации и для них. */
|
|
6
|
+
siblingPlaceIds?: number[];
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.CreateCompanyFromPlaceDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CreateCompanyFromPlaceDto {
|
|
15
|
+
}
|
|
16
|
+
exports.CreateCompanyFromPlaceDto = CreateCompanyFromPlaceDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsEmail)(),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], CreateCompanyFromPlaceDto.prototype, "mainEmail", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsOptional)(),
|
|
23
|
+
(0, class_validator_1.IsBoolean)(),
|
|
24
|
+
__metadata("design:type", Boolean)
|
|
25
|
+
], CreateCompanyFromPlaceDto.prototype, "parseAfter", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsOptional)(),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], CreateCompanyFromPlaceDto.prototype, "siblingPlaceIds", void 0);
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export declare enum GooglePlacesStatusEnum {
|
|
2
2
|
NEW = "new",
|
|
3
|
+
/**
|
|
4
|
+
* Домен сайта совпал с существующей компанией, но адрес не совпал ни с
|
|
5
|
+
* одной её локацией — кандидат «новая локация существующей компании».
|
|
6
|
+
*/
|
|
7
|
+
NEW_LOCATION = "new_location",
|
|
3
8
|
CONFLICT = "conflict",
|
|
4
9
|
RESOLVED = "resolved",
|
|
5
10
|
NOT_ESCAPE = "not_escape"
|
|
@@ -4,6 +4,11 @@ exports.GooglePlacesStatusEnum = void 0;
|
|
|
4
4
|
var GooglePlacesStatusEnum;
|
|
5
5
|
(function (GooglePlacesStatusEnum) {
|
|
6
6
|
GooglePlacesStatusEnum["NEW"] = "new";
|
|
7
|
+
/**
|
|
8
|
+
* Домен сайта совпал с существующей компанией, но адрес не совпал ни с
|
|
9
|
+
* одной её локацией — кандидат «новая локация существующей компании».
|
|
10
|
+
*/
|
|
11
|
+
GooglePlacesStatusEnum["NEW_LOCATION"] = "new_location";
|
|
7
12
|
GooglePlacesStatusEnum["CONFLICT"] = "conflict";
|
|
8
13
|
GooglePlacesStatusEnum["RESOLVED"] = "resolved";
|
|
9
14
|
GooglePlacesStatusEnum["NOT_ESCAPE"] = "not_escape";
|
|
@@ -94,6 +94,22 @@ __decorate([
|
|
|
94
94
|
(0, class_transformer_1.Expose)(),
|
|
95
95
|
__metadata("design:type", Number)
|
|
96
96
|
], GooglePlacesRO.prototype, "profileId", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, class_transformer_1.Expose)(),
|
|
99
|
+
__metadata("design:type", Number)
|
|
100
|
+
], GooglePlacesRO.prototype, "locationId", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, class_transformer_1.Expose)(),
|
|
103
|
+
__metadata("design:type", Number)
|
|
104
|
+
], GooglePlacesRO.prototype, "lat", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, class_transformer_1.Expose)(),
|
|
107
|
+
__metadata("design:type", Number)
|
|
108
|
+
], GooglePlacesRO.prototype, "lng", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, class_transformer_1.Expose)(),
|
|
111
|
+
__metadata("design:type", Date)
|
|
112
|
+
], GooglePlacesRO.prototype, "lastCheckedAt", void 0);
|
|
97
113
|
__decorate([
|
|
98
114
|
(0, class_transformer_1.Expose)(),
|
|
99
115
|
__metadata("design:type", Date)
|
|
@@ -35,3 +35,8 @@ __decorate([
|
|
|
35
35
|
(0, class_validator_1.IsOptional)(),
|
|
36
36
|
__metadata("design:type", Number)
|
|
37
37
|
], UpdateGooglePlacesDto.prototype, "profileId", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsNumber)(),
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], UpdateGooglePlacesDto.prototype, "locationId", void 0);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientCancelReasonEnum } from '../../order/enum/client-cancel-reason.enum';
|
|
2
|
+
import { OpenapiGetOrderDTO } from './openapi-get-order.dto';
|
|
3
|
+
/**
|
|
4
|
+
* Клиентская отмена брони со страницы управления заказом (orders).
|
|
5
|
+
* Причина опциональна — отмена не блокируется, если клиент её не выбрал.
|
|
6
|
+
*/
|
|
7
|
+
export declare class OpenapiCancelOrderDTO extends OpenapiGetOrderDTO {
|
|
8
|
+
clientCancelReason?: ClientCancelReasonEnum;
|
|
9
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.OpenapiCancelOrderDTO = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const client_cancel_reason_enum_1 = require("../../order/enum/client-cancel-reason.enum");
|
|
16
|
+
const openapi_get_order_dto_1 = require("./openapi-get-order.dto");
|
|
17
|
+
/**
|
|
18
|
+
* Клиентская отмена брони со страницы управления заказом (orders).
|
|
19
|
+
* Причина опциональна — отмена не блокируется, если клиент её не выбрал.
|
|
20
|
+
*/
|
|
21
|
+
class OpenapiCancelOrderDTO extends openapi_get_order_dto_1.OpenapiGetOrderDTO {
|
|
22
|
+
}
|
|
23
|
+
exports.OpenapiCancelOrderDTO = OpenapiCancelOrderDTO;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsEnum)(client_cancel_reason_enum_1.ClientCancelReasonEnum),
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], OpenapiCancelOrderDTO.prototype, "clientCancelReason", void 0);
|
|
@@ -45,6 +45,13 @@ export declare class OpenapiOrderRO extends QuestroomRow {
|
|
|
45
45
|
payed: number;
|
|
46
46
|
profileId: number;
|
|
47
47
|
slot: Slot;
|
|
48
|
+
/**
|
|
49
|
+
* Id реально забронированного тарифа. Для fix-вариаций `slot` отдаёт
|
|
50
|
+
* дефолтный прайс, а выбранная вариация — тут. Используется пикером
|
|
51
|
+
* «Игроки и вариация» на клиентской странице заказа (`currentTariffId`),
|
|
52
|
+
* чтобы подсветить выбранную вариацию. `null` для старых заказов.
|
|
53
|
+
*/
|
|
54
|
+
bookedTariffId?: number | null;
|
|
48
55
|
canceledWithFine: boolean;
|
|
49
56
|
toPay: number;
|
|
50
57
|
total: number;
|
|
@@ -147,6 +147,10 @@ __decorate([
|
|
|
147
147
|
(0, class_transformer_1.Type)(() => Slot),
|
|
148
148
|
__metadata("design:type", Slot)
|
|
149
149
|
], OpenapiOrderRO.prototype, "slot", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
(0, class_transformer_1.Expose)(),
|
|
152
|
+
__metadata("design:type", Number)
|
|
153
|
+
], OpenapiOrderRO.prototype, "bookedTariffId", void 0);
|
|
150
154
|
__decorate([
|
|
151
155
|
(0, class_transformer_1.Expose)(),
|
|
152
156
|
__metadata("design:type", Boolean)
|
|
@@ -80,6 +80,10 @@ __decorate([
|
|
|
80
80
|
(0, class_transformer_1.Expose)(),
|
|
81
81
|
__metadata("design:type", String)
|
|
82
82
|
], Mode.prototype, "description", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
(0, class_transformer_1.Expose)(),
|
|
85
|
+
__metadata("design:type", Boolean)
|
|
86
|
+
], Mode.prototype, "popular", void 0);
|
|
83
87
|
class Location {
|
|
84
88
|
}
|
|
85
89
|
__decorate([
|
|
@@ -70,3 +70,7 @@ __decorate([
|
|
|
70
70
|
(0, class_transformer_1.Expose)(),
|
|
71
71
|
__metadata("design:type", Boolean)
|
|
72
72
|
], OpenapiUpsellingRO.prototype, "clientCanRemove", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, class_transformer_1.Expose)(),
|
|
75
|
+
__metadata("design:type", Boolean)
|
|
76
|
+
], OpenapiUpsellingRO.prototype, "popular", void 0);
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import { ClientCancelReasonEnum } from './enum/client-cancel-reason.enum';
|
|
1
2
|
import { OrderCancelReasonEnum } from './enum/order-cancel-reson.enum';
|
|
2
3
|
export declare class CancelOrderDto {
|
|
3
4
|
cancelationType: OrderCancelReasonEnum;
|
|
4
5
|
cancelationReason: string;
|
|
6
|
+
/** Популярная причина отмены (для `cancelationType = CLIENT`). */
|
|
7
|
+
clientCancelReason?: ClientCancelReasonEnum;
|
|
8
|
+
/**
|
|
9
|
+
* Запланировать ретаргетинг-письмо (win-back с промокодом) после отмены.
|
|
10
|
+
* Галочка в модалке отмены CRM. `undefined` (старые клиенты/mobile) =
|
|
11
|
+
* дефолт: true для client/client_no_show, false для questroom.
|
|
12
|
+
*/
|
|
13
|
+
scheduleRetargeting?: boolean;
|
|
5
14
|
sendEmailToClient: boolean;
|
|
6
15
|
cancelationAmount: number;
|
|
7
16
|
returnCertificates: boolean;
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.CancelOrderDto = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
|
+
const client_cancel_reason_enum_1 = require("./enum/client-cancel-reason.enum");
|
|
15
16
|
const order_cancel_reson_enum_1 = require("./enum/order-cancel-reson.enum");
|
|
16
17
|
class CancelOrderDto {
|
|
17
18
|
}
|
|
@@ -26,6 +27,18 @@ __decorate([
|
|
|
26
27
|
(0, class_transformer_1.Expose)(),
|
|
27
28
|
__metadata("design:type", String)
|
|
28
29
|
], CancelOrderDto.prototype, "cancelationReason", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsEnum)(client_cancel_reason_enum_1.ClientCancelReasonEnum),
|
|
33
|
+
(0, class_transformer_1.Expose)(),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], CancelOrderDto.prototype, "clientCancelReason", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_validator_1.IsOptional)(),
|
|
38
|
+
(0, class_validator_1.IsBoolean)(),
|
|
39
|
+
(0, class_transformer_1.Expose)(),
|
|
40
|
+
__metadata("design:type", Boolean)
|
|
41
|
+
], CancelOrderDto.prototype, "scheduleRetargeting", void 0);
|
|
29
42
|
__decorate([
|
|
30
43
|
(0, class_validator_1.IsBoolean)(),
|
|
31
44
|
(0, class_transformer_1.Expose)(),
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Популярная причина отмены «по желанию клиента». Заполняется опционально:
|
|
3
|
+
* - клиентом на странице управления бронью (orders) при self-cancel;
|
|
4
|
+
* - оператором в CRM при отмене с типом `CLIENT` («по желанию клиента»).
|
|
5
|
+
*
|
|
6
|
+
* Хранится на заказе (`OrderEntity.clientCancelReason`) и используется в
|
|
7
|
+
* статистике отмен (разбивка «Причины отмен» в отчёте Orders). Свободный
|
|
8
|
+
* текст сюда НЕ пишется — для него остаётся `cancelationReason` (questroom).
|
|
9
|
+
*/
|
|
10
|
+
export declare enum ClientCancelReasonEnum {
|
|
11
|
+
CHANGE_OF_PLANS = "change_of_plans",
|
|
12
|
+
ILLNESS = "illness",
|
|
13
|
+
TEAM_NOT_GATHERED = "team_not_gathered",
|
|
14
|
+
RESCHEDULE = "reschedule",
|
|
15
|
+
CHOSE_OTHER_ACTIVITY = "chose_other_activity",
|
|
16
|
+
TOO_EXPENSIVE = "too_expensive",
|
|
17
|
+
BOOKED_BY_MISTAKE = "booked_by_mistake",
|
|
18
|
+
OTHER = "other"
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientCancelReasonEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Популярная причина отмены «по желанию клиента». Заполняется опционально:
|
|
6
|
+
* - клиентом на странице управления бронью (orders) при self-cancel;
|
|
7
|
+
* - оператором в CRM при отмене с типом `CLIENT` («по желанию клиента»).
|
|
8
|
+
*
|
|
9
|
+
* Хранится на заказе (`OrderEntity.clientCancelReason`) и используется в
|
|
10
|
+
* статистике отмен (разбивка «Причины отмен» в отчёте Orders). Свободный
|
|
11
|
+
* текст сюда НЕ пишется — для него остаётся `cancelationReason` (questroom).
|
|
12
|
+
*/
|
|
13
|
+
var ClientCancelReasonEnum;
|
|
14
|
+
(function (ClientCancelReasonEnum) {
|
|
15
|
+
ClientCancelReasonEnum["CHANGE_OF_PLANS"] = "change_of_plans";
|
|
16
|
+
ClientCancelReasonEnum["ILLNESS"] = "illness";
|
|
17
|
+
ClientCancelReasonEnum["TEAM_NOT_GATHERED"] = "team_not_gathered";
|
|
18
|
+
ClientCancelReasonEnum["RESCHEDULE"] = "reschedule";
|
|
19
|
+
ClientCancelReasonEnum["CHOSE_OTHER_ACTIVITY"] = "chose_other_activity";
|
|
20
|
+
ClientCancelReasonEnum["TOO_EXPENSIVE"] = "too_expensive";
|
|
21
|
+
ClientCancelReasonEnum["BOOKED_BY_MISTAKE"] = "booked_by_mistake";
|
|
22
|
+
ClientCancelReasonEnum["OTHER"] = "other";
|
|
23
|
+
})(ClientCancelReasonEnum || (exports.ClientCancelReasonEnum = ClientCancelReasonEnum = {}));
|
package/dist/order/order.ro.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ClientRO } from '../client/client.ro';
|
|
2
2
|
import { OrderPenaltyTypeEnum } from '../order-penalty/enum/order-penalty-type.enum';
|
|
3
3
|
import { OrderProductRO } from '../order-product/order-product.ro';
|
|
4
|
+
import { PromocodeKindEnum } from '../promocode/emun/promocode-kind.enum';
|
|
4
5
|
import { QuestroomCancelationTypeEnum } from '../questroom/enum/questroom-cancelation-type.enum';
|
|
5
6
|
import { Languages } from '../shared/enum/languages.enum';
|
|
6
7
|
import { RO } from '../shared/ro-class';
|
|
@@ -8,6 +9,7 @@ import { SourceEnum } from '../shared/source.enum';
|
|
|
8
9
|
import { TransactionSourceEnum } from '../transaction/enum/transaction-source.enum';
|
|
9
10
|
import { TransactionTypeEnum } from '../transaction/enum/transaction-type.enum';
|
|
10
11
|
import { UserMessageResponseObject } from '../user-message/user-message.ro';
|
|
12
|
+
import { ClientCancelReasonEnum } from './enum/client-cancel-reason.enum';
|
|
11
13
|
import { OrderCancelReasonEnum } from './enum/order-cancel-reson.enum';
|
|
12
14
|
export declare class Utm {
|
|
13
15
|
utmSource: string;
|
|
@@ -74,6 +76,12 @@ export declare class Promocodes extends RO {
|
|
|
74
76
|
amount: number;
|
|
75
77
|
canUseWithOtherPromocodes: boolean;
|
|
76
78
|
code: string;
|
|
79
|
+
/**
|
|
80
|
+
* Снимок вида промокода на момент применения (MANUAL / CROSS_SALE /
|
|
81
|
+
* RETARGETING / …). NULL у исторических применений — UI падает на
|
|
82
|
+
* префикс-эвристику по коду (SRS/SRT).
|
|
83
|
+
*/
|
|
84
|
+
kind?: PromocodeKindEnum | null;
|
|
77
85
|
userId: number;
|
|
78
86
|
clientDescription?: string;
|
|
79
87
|
/** Компания, выпустившая промокод. Отличается от компании заказа при коалиции. */
|
|
@@ -165,6 +173,16 @@ export declare class OrderRO extends RO {
|
|
|
165
173
|
confirmed?: boolean;
|
|
166
174
|
slotId?: number;
|
|
167
175
|
slot?: Slot;
|
|
176
|
+
/**
|
|
177
|
+
* Id тарифа, по которому реально забронирована игра. Для fix-слотов с
|
|
178
|
+
* вариацией `slot.tariffId` = дефолтный тариф физического слота, а
|
|
179
|
+
* выбранная вариация отражена только тут (и в `price`/`variationHint`).
|
|
180
|
+
* Фронт передаёт это значение как `currentTariffId` в пикер «Игроки и
|
|
181
|
+
* вариация», чтобы подсветить именно выбранную вариацию. `null` для
|
|
182
|
+
* заказов, созданных до появления колонки → фронт откатывается на
|
|
183
|
+
* `slot.tariffId`.
|
|
184
|
+
*/
|
|
185
|
+
bookedTariffId?: number | null;
|
|
168
186
|
/**
|
|
169
187
|
* v2-семантика: только реально полученные деньги (= cashReceived).
|
|
170
188
|
* Скидки/промокоды/сертификаты уже вычтены из total и НЕ входят в payed.
|
|
@@ -209,6 +227,8 @@ export declare class OrderRO extends RO {
|
|
|
209
227
|
*/
|
|
210
228
|
noShow: boolean;
|
|
211
229
|
cancelationType: OrderCancelReasonEnum;
|
|
230
|
+
/** Популярная причина отмены клиентом (self-cancel или CRM «по желанию клиента»). */
|
|
231
|
+
clientCancelReason?: ClientCancelReasonEnum | null;
|
|
212
232
|
utcDate: string;
|
|
213
233
|
result: number;
|
|
214
234
|
resultRating: number;
|
package/dist/order/order.ro.js
CHANGED
|
@@ -16,12 +16,14 @@ const class_validator_1 = require("class-validator");
|
|
|
16
16
|
const client_ro_1 = require("../client/client.ro");
|
|
17
17
|
const order_penalty_type_enum_1 = require("../order-penalty/enum/order-penalty-type.enum");
|
|
18
18
|
const order_product_ro_1 = require("../order-product/order-product.ro");
|
|
19
|
+
const promocode_kind_enum_1 = require("../promocode/emun/promocode-kind.enum");
|
|
19
20
|
const questroom_cancelation_type_enum_1 = require("../questroom/enum/questroom-cancelation-type.enum");
|
|
20
21
|
const languages_enum_1 = require("../shared/enum/languages.enum");
|
|
21
22
|
const ro_class_1 = require("../shared/ro-class");
|
|
22
23
|
const source_enum_1 = require("../shared/source.enum");
|
|
23
24
|
const transaction_source_enum_1 = require("../transaction/enum/transaction-source.enum");
|
|
24
25
|
const transaction_type_enum_1 = require("../transaction/enum/transaction-type.enum");
|
|
26
|
+
const client_cancel_reason_enum_1 = require("./enum/client-cancel-reason.enum");
|
|
25
27
|
const order_cancel_reson_enum_1 = require("./enum/order-cancel-reson.enum");
|
|
26
28
|
class Utm {
|
|
27
29
|
}
|
|
@@ -201,6 +203,10 @@ __decorate([
|
|
|
201
203
|
(0, class_transformer_1.Expose)(),
|
|
202
204
|
__metadata("design:type", String)
|
|
203
205
|
], Promocodes.prototype, "code", void 0);
|
|
206
|
+
__decorate([
|
|
207
|
+
(0, class_transformer_1.Expose)(),
|
|
208
|
+
__metadata("design:type", String)
|
|
209
|
+
], Promocodes.prototype, "kind", void 0);
|
|
204
210
|
__decorate([
|
|
205
211
|
(0, class_transformer_1.Expose)(),
|
|
206
212
|
__metadata("design:type", Number)
|
|
@@ -460,6 +466,10 @@ __decorate([
|
|
|
460
466
|
(0, class_transformer_1.Type)(() => Slot),
|
|
461
467
|
__metadata("design:type", Slot)
|
|
462
468
|
], OrderRO.prototype, "slot", void 0);
|
|
469
|
+
__decorate([
|
|
470
|
+
(0, class_transformer_1.Expose)(),
|
|
471
|
+
__metadata("design:type", Number)
|
|
472
|
+
], OrderRO.prototype, "bookedTariffId", void 0);
|
|
463
473
|
__decorate([
|
|
464
474
|
(0, class_transformer_1.Expose)(),
|
|
465
475
|
__metadata("design:type", Number)
|
|
@@ -537,6 +547,10 @@ __decorate([
|
|
|
537
547
|
(0, class_transformer_1.Expose)(),
|
|
538
548
|
__metadata("design:type", String)
|
|
539
549
|
], OrderRO.prototype, "cancelationType", void 0);
|
|
550
|
+
__decorate([
|
|
551
|
+
(0, class_transformer_1.Expose)(),
|
|
552
|
+
__metadata("design:type", String)
|
|
553
|
+
], OrderRO.prototype, "clientCancelReason", void 0);
|
|
540
554
|
__decorate([
|
|
541
555
|
(0, class_transformer_1.Expose)(),
|
|
542
556
|
__metadata("design:type", String)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { QuestroomTypeEnum } from '../questroom/enum/questroom-type.enum';
|
|
2
|
+
/** Квест, извлечённый с сайта компании (значения в терминах наших DTO). */
|
|
3
|
+
export type ParsedQuest = {
|
|
4
|
+
title: string;
|
|
5
|
+
legend?: string;
|
|
6
|
+
teaser?: string;
|
|
7
|
+
playersMin?: number;
|
|
8
|
+
playersMax?: number;
|
|
9
|
+
/** Длительность, минуты. */
|
|
10
|
+
time?: number;
|
|
11
|
+
/** Сложность 1-6. */
|
|
12
|
+
difficult?: number;
|
|
13
|
+
/** Страх 0-5. */
|
|
14
|
+
fear?: number;
|
|
15
|
+
minAge?: number;
|
|
16
|
+
type?: QuestroomTypeEnum;
|
|
17
|
+
/** URL фото с сайта-источника (в S3 загружаются при применении). */
|
|
18
|
+
photos?: string[];
|
|
19
|
+
/** URL страницы квеста. */
|
|
20
|
+
sourceUrl?: string;
|
|
21
|
+
/** ID существующего квеста, если сматчен (для диффа). */
|
|
22
|
+
matchedQuestroomId?: number;
|
|
23
|
+
/** Исключён модератором из применения. */
|
|
24
|
+
excluded?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type ParsedLocation = {
|
|
27
|
+
address: string;
|
|
28
|
+
phone?: string;
|
|
29
|
+
/** ID существующей локации, если сматчена по координатам/адресу. */
|
|
30
|
+
matchedLocationId?: number;
|
|
31
|
+
quests: ParsedQuest[];
|
|
32
|
+
};
|
|
33
|
+
export type ParseResultPayload = {
|
|
34
|
+
locations: ParsedLocation[];
|
|
35
|
+
/** Детектированная система бронирования (sales intelligence). */
|
|
36
|
+
bookingProvider?: string;
|
|
37
|
+
/** Язык контента сайта. */
|
|
38
|
+
contentLanguage?: string;
|
|
39
|
+
/** Замечания экстрактора (что не удалось распознать). */
|
|
40
|
+
notes?: string;
|
|
41
|
+
};
|
|
42
|
+
/** Операция диффа месячного контура. */
|
|
43
|
+
export type ParseDiffOperation = {
|
|
44
|
+
op: 'ADD_QUEST' | 'CLOSE_QUEST' | 'UPDATE_FIELDS' | 'ADD_LOCATION';
|
|
45
|
+
questroomId?: number;
|
|
46
|
+
locationIndex?: number;
|
|
47
|
+
/** Индекс квеста в payload.locations[locationIndex].quests. */
|
|
48
|
+
questIndex?: number;
|
|
49
|
+
/** Для UPDATE_FIELDS: имя поля → { from, to }. */
|
|
50
|
+
changes?: Record<string, {
|
|
51
|
+
from: unknown;
|
|
52
|
+
to: unknown;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare enum ParseResultSourceEnum {
|
|
2
|
+
/** Кнопка «Спарсить» в карточке компании. */
|
|
3
|
+
MANUAL = "manual",
|
|
4
|
+
/** Месячный контур актуальности (дифф сайта против базы). */
|
|
5
|
+
MONTHLY_DIFF = "monthly_diff",
|
|
6
|
+
/** Синк внешнего агрегатора (Morty и др.). */
|
|
7
|
+
AGGREGATOR = "aggregator"
|
|
8
|
+
}
|