@escapenavigator/types 2.0.4 → 2.0.6

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.
Files changed (55) hide show
  1. package/dist/aggregator-companies/aggregator-source.enum.d.ts +3 -0
  2. package/dist/aggregator-companies/aggregator-source.enum.js +7 -0
  3. package/dist/constants/language-name-by-language.js +3 -3
  4. package/dist/emails/email.ro.d.ts +5 -0
  5. package/dist/emails/email.ro.js +14 -0
  6. package/dist/emails/enum/email.category-enum.d.ts +18 -0
  7. package/dist/emails/enum/email.category-enum.js +22 -0
  8. package/dist/emails/enum/email.direction-enum.d.ts +9 -0
  9. package/dist/emails/enum/email.direction-enum.js +13 -0
  10. package/dist/google-places/create-company-from-place.dto.d.ts +7 -0
  11. package/dist/google-places/create-company-from-place.dto.js +29 -0
  12. package/dist/google-places/google-places-status.enum.d.ts +5 -0
  13. package/dist/google-places/google-places-status.enum.js +5 -0
  14. package/dist/google-places/google-places.ro.d.ts +4 -0
  15. package/dist/google-places/google-places.ro.js +16 -0
  16. package/dist/google-places/update-google-places.dto.d.ts +1 -0
  17. package/dist/google-places/update-google-places.dto.js +5 -0
  18. package/dist/openapi/orders/openapi-cancel-order.dto.d.ts +9 -0
  19. package/dist/openapi/orders/openapi-cancel-order.dto.js +29 -0
  20. package/dist/openapi/orders/openapi-order.ro.d.ts +7 -0
  21. package/dist/openapi/orders/openapi-order.ro.js +4 -0
  22. package/dist/openapi/shared/openapi-questroom.ro.d.ts +1 -0
  23. package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
  24. package/dist/openapi/upsellings/openapi-upselling.ro.d.ts +1 -0
  25. package/dist/openapi/upsellings/openapi-upselling.ro.js +4 -0
  26. package/dist/order/cancel-order.dto.d.ts +9 -0
  27. package/dist/order/cancel-order.dto.js +13 -0
  28. package/dist/order/enum/client-cancel-reason.enum.d.ts +19 -0
  29. package/dist/order/enum/client-cancel-reason.enum.js +23 -0
  30. package/dist/order/order.ro.d.ts +20 -0
  31. package/dist/order/order.ro.js +14 -0
  32. package/dist/parse-results/parse-result-payload.d.ts +54 -0
  33. package/dist/parse-results/parse-result-payload.js +2 -0
  34. package/dist/parse-results/parse-result-source.enum.d.ts +8 -0
  35. package/dist/parse-results/parse-result-source.enum.js +12 -0
  36. package/dist/parse-results/parse-result-status.enum.d.ts +10 -0
  37. package/dist/parse-results/parse-result-status.enum.js +14 -0
  38. package/dist/parse-results/parse-result.ro.d.ts +25 -0
  39. package/dist/parse-results/parse-result.ro.js +90 -0
  40. package/dist/parse-results/update-parse-result.dto.d.ts +5 -0
  41. package/dist/parse-results/update-parse-result.dto.js +21 -0
  42. package/dist/promocode/emun/promocode-kind.enum.d.ts +4 -0
  43. package/dist/promocode/emun/promocode-kind.enum.js +4 -0
  44. package/dist/questroom/create-questroom.dto.d.ts +2 -0
  45. package/dist/questroom/create-questroom.dto.js +6 -0
  46. package/dist/questroom/questroom-light.ro.d.ts +2 -0
  47. package/dist/questroom/questroom-light.ro.js +4 -0
  48. package/dist/statistics/bookings.d.ts +14 -0
  49. package/dist/tsconfig.build.tsbuildinfo +1 -1
  50. package/dist/upselling/create-upselling.dto.d.ts +2 -0
  51. package/dist/upselling/create-upselling.dto.js +6 -0
  52. package/dist/upselling/upselling.ro.d.ts +1 -0
  53. package/dist/upselling/upselling.ro.js +4 -0
  54. package/dist/widget-funnel/widget-funnel-dimension.js +44 -0
  55. package/package.json +2 -2
@@ -0,0 +1,3 @@
1
+ export declare enum AggregatorSourceEnum {
2
+ MORTY = "morty"
3
+ }
@@ -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]: 'Finnish',
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]: 'Latviešu',
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;
@@ -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";
@@ -22,6 +22,10 @@ export declare class GooglePlacesRO {
22
22
  country: CountriesEnum;
23
23
  profile: Profile;
24
24
  profileId: number;
25
+ locationId: number;
26
+ lat: number;
27
+ lng: number;
28
+ lastCheckedAt: Date;
25
29
  createdAt: Date;
26
30
  updatedAt: Date;
27
31
  }
@@ -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)
@@ -4,4 +4,5 @@ export declare class UpdateGooglePlacesDto {
4
4
  comment?: string;
5
5
  website?: string;
6
6
  profileId?: number;
7
+ locationId?: number;
7
8
  }
@@ -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)
@@ -20,6 +20,7 @@ declare class LocationLocale {
20
20
  declare class Mode {
21
21
  title: string;
22
22
  description: string;
23
+ popular: boolean;
23
24
  }
24
25
  declare class Location {
25
26
  address: string;
@@ -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([
@@ -13,4 +13,5 @@ export declare class OpenapiUpsellingRO {
13
13
  availableDays: number[];
14
14
  fullPayment: boolean;
15
15
  clientCanRemove: boolean;
16
+ popular: boolean;
16
17
  }
@@ -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 = {}));
@@ -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;
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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
+ }