@escapenavigator/types 2.0.3 → 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.
Files changed (78) 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/cashbox/cashbox-light.ro.d.ts +1 -0
  4. package/dist/cashbox/cashbox-light.ro.js +4 -0
  5. package/dist/cashbox/create-cashbox.dto.d.ts +1 -0
  6. package/dist/cashbox/create-cashbox.dto.js +6 -0
  7. package/dist/constants/language-name-by-language.js +3 -3
  8. package/dist/district/district-seo.ro.d.ts +12 -0
  9. package/dist/district/district-seo.ro.js +45 -0
  10. package/dist/district/district.ro.d.ts +25 -0
  11. package/dist/district/district.ro.js +2 -0
  12. package/dist/district/update-district.dto.d.ts +9 -0
  13. package/dist/district/update-district.dto.js +35 -0
  14. package/dist/emails/email.ro.d.ts +5 -0
  15. package/dist/emails/email.ro.js +14 -0
  16. package/dist/emails/enum/email.category-enum.d.ts +18 -0
  17. package/dist/emails/enum/email.category-enum.js +22 -0
  18. package/dist/emails/enum/email.direction-enum.d.ts +9 -0
  19. package/dist/emails/enum/email.direction-enum.js +13 -0
  20. package/dist/google-places/create-company-from-place.dto.d.ts +7 -0
  21. package/dist/google-places/create-company-from-place.dto.js +29 -0
  22. package/dist/google-places/google-places-status.enum.d.ts +5 -0
  23. package/dist/google-places/google-places-status.enum.js +5 -0
  24. package/dist/google-places/google-places.ro.d.ts +4 -0
  25. package/dist/google-places/google-places.ro.js +16 -0
  26. package/dist/google-places/update-google-places.dto.d.ts +1 -0
  27. package/dist/google-places/update-google-places.dto.js +5 -0
  28. package/dist/openapi/orders/openapi-cancel-order.dto.d.ts +9 -0
  29. package/dist/openapi/orders/openapi-cancel-order.dto.js +29 -0
  30. package/dist/openapi/orders/openapi-order.ro.d.ts +7 -0
  31. package/dist/openapi/orders/openapi-order.ro.js +4 -0
  32. package/dist/openapi/shared/openapi-questroom.ro.d.ts +1 -0
  33. package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
  34. package/dist/openapi/upsellings/openapi-upselling.ro.d.ts +1 -0
  35. package/dist/openapi/upsellings/openapi-upselling.ro.js +4 -0
  36. package/dist/order/cancel-order.dto.d.ts +9 -0
  37. package/dist/order/cancel-order.dto.js +13 -0
  38. package/dist/order/enum/client-cancel-reason.enum.d.ts +19 -0
  39. package/dist/order/enum/client-cancel-reason.enum.js +23 -0
  40. package/dist/order/order.ro.d.ts +31 -0
  41. package/dist/order/order.ro.js +38 -0
  42. package/dist/parse-results/parse-result-payload.d.ts +54 -0
  43. package/dist/parse-results/parse-result-payload.js +2 -0
  44. package/dist/parse-results/parse-result-source.enum.d.ts +8 -0
  45. package/dist/parse-results/parse-result-source.enum.js +12 -0
  46. package/dist/parse-results/parse-result-status.enum.d.ts +10 -0
  47. package/dist/parse-results/parse-result-status.enum.js +14 -0
  48. package/dist/parse-results/parse-result.ro.d.ts +25 -0
  49. package/dist/parse-results/parse-result.ro.js +90 -0
  50. package/dist/parse-results/update-parse-result.dto.d.ts +5 -0
  51. package/dist/parse-results/update-parse-result.dto.js +21 -0
  52. package/dist/profile/action/create-profile-action.dto.d.ts +3 -0
  53. package/dist/profile/action/create-profile-action.dto.js +14 -0
  54. package/dist/profile/action/profile-action.ro.d.ts +2 -0
  55. package/dist/profile/action/profile-action.ro.js +8 -0
  56. package/dist/profile/admin-profile.ro.d.ts +2 -0
  57. package/dist/profile/admin-profile.ro.js +5 -0
  58. package/dist/profile/enum/profile-lost-reason.enum.d.ts +9 -0
  59. package/dist/profile/enum/profile-lost-reason.enum.js +13 -0
  60. package/dist/profile/profile.ro.d.ts +2 -0
  61. package/dist/profile/profile.ro.js +4 -0
  62. package/dist/profile/update-current-base.dto.d.ts +1 -0
  63. package/dist/profile/update-current-base.dto.js +5 -0
  64. package/dist/promocode/emun/promocode-kind.enum.d.ts +4 -0
  65. package/dist/promocode/emun/promocode-kind.enum.js +4 -0
  66. package/dist/questroom/create-questroom.dto.d.ts +2 -0
  67. package/dist/questroom/create-questroom.dto.js +6 -0
  68. package/dist/questroom/questroom-light.ro.d.ts +2 -0
  69. package/dist/questroom/questroom-light.ro.js +4 -0
  70. package/dist/statistics/bookings.d.ts +14 -0
  71. package/dist/transaction/transaction.ro.d.ts +2 -0
  72. package/dist/transaction/transaction.ro.js +4 -0
  73. package/dist/tsconfig.build.tsbuildinfo +1 -1
  74. package/dist/upselling/create-upselling.dto.d.ts +2 -0
  75. package/dist/upselling/create-upselling.dto.js +6 -0
  76. package/dist/upselling/upselling.ro.d.ts +1 -0
  77. package/dist/upselling/upselling.ro.js +4 -0
  78. package/package.json +2 -2
@@ -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;
@@ -27,6 +29,17 @@ export declare class Utm {
27
29
  * перезаписывается.
28
30
  */
29
31
  enLinkId?: string | null;
32
+ /**
33
+ * Рекламные click-id из URL (last-click, как UTM). Нужны для
34
+ * серверной атрибуции конверсий (Google Ads offline conversions,
35
+ * Meta CAPI и т.п.) — особенно когда бронирование идёт через
36
+ * standalone-страницу на orders-домене и браузерная аналитика
37
+ * теряет источник. Виджет обрезает значения до 512 символов.
38
+ */
39
+ gclid?: string | null;
40
+ fbclid?: string | null;
41
+ ttclid?: string | null;
42
+ msclkid?: string | null;
30
43
  }
31
44
  declare class Rule {
32
45
  cancelationRule: QuestroomCancelationTypeEnum;
@@ -63,6 +76,12 @@ export declare class Promocodes extends RO {
63
76
  amount: number;
64
77
  canUseWithOtherPromocodes: boolean;
65
78
  code: string;
79
+ /**
80
+ * Снимок вида промокода на момент применения (MANUAL / CROSS_SALE /
81
+ * RETARGETING / …). NULL у исторических применений — UI падает на
82
+ * префикс-эвристику по коду (SRS/SRT).
83
+ */
84
+ kind?: PromocodeKindEnum | null;
66
85
  userId: number;
67
86
  clientDescription?: string;
68
87
  /** Компания, выпустившая промокод. Отличается от компании заказа при коалиции. */
@@ -154,6 +173,16 @@ export declare class OrderRO extends RO {
154
173
  confirmed?: boolean;
155
174
  slotId?: number;
156
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;
157
186
  /**
158
187
  * v2-семантика: только реально полученные деньги (= cashReceived).
159
188
  * Скидки/промокоды/сертификаты уже вычтены из total и НЕ входят в payed.
@@ -198,6 +227,8 @@ export declare class OrderRO extends RO {
198
227
  */
199
228
  noShow: boolean;
200
229
  cancelationType: OrderCancelReasonEnum;
230
+ /** Популярная причина отмены клиентом (self-cancel или CRM «по желанию клиента»). */
231
+ clientCancelReason?: ClientCancelReasonEnum | null;
201
232
  utcDate: string;
202
233
  result: number;
203
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
  }
@@ -64,6 +66,30 @@ __decorate([
64
66
  (0, class_validator_1.IsOptional)(),
65
67
  __metadata("design:type", String)
66
68
  ], Utm.prototype, "enLinkId", void 0);
69
+ __decorate([
70
+ (0, class_transformer_1.Expose)(),
71
+ (0, class_validator_1.IsOptional)(),
72
+ (0, class_validator_1.MaxLength)(512),
73
+ __metadata("design:type", String)
74
+ ], Utm.prototype, "gclid", void 0);
75
+ __decorate([
76
+ (0, class_transformer_1.Expose)(),
77
+ (0, class_validator_1.IsOptional)(),
78
+ (0, class_validator_1.MaxLength)(512),
79
+ __metadata("design:type", String)
80
+ ], Utm.prototype, "fbclid", void 0);
81
+ __decorate([
82
+ (0, class_transformer_1.Expose)(),
83
+ (0, class_validator_1.IsOptional)(),
84
+ (0, class_validator_1.MaxLength)(512),
85
+ __metadata("design:type", String)
86
+ ], Utm.prototype, "ttclid", void 0);
87
+ __decorate([
88
+ (0, class_transformer_1.Expose)(),
89
+ (0, class_validator_1.IsOptional)(),
90
+ (0, class_validator_1.MaxLength)(512),
91
+ __metadata("design:type", String)
92
+ ], Utm.prototype, "msclkid", void 0);
67
93
  class Rule {
68
94
  }
69
95
  __decorate([
@@ -177,6 +203,10 @@ __decorate([
177
203
  (0, class_transformer_1.Expose)(),
178
204
  __metadata("design:type", String)
179
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);
180
210
  __decorate([
181
211
  (0, class_transformer_1.Expose)(),
182
212
  __metadata("design:type", Number)
@@ -436,6 +466,10 @@ __decorate([
436
466
  (0, class_transformer_1.Type)(() => Slot),
437
467
  __metadata("design:type", Slot)
438
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);
439
473
  __decorate([
440
474
  (0, class_transformer_1.Expose)(),
441
475
  __metadata("design:type", Number)
@@ -513,6 +547,10 @@ __decorate([
513
547
  (0, class_transformer_1.Expose)(),
514
548
  __metadata("design:type", String)
515
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);
516
554
  __decorate([
517
555
  (0, class_transformer_1.Expose)(),
518
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
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseResultSourceEnum = void 0;
4
+ var ParseResultSourceEnum;
5
+ (function (ParseResultSourceEnum) {
6
+ /** Кнопка «Спарсить» в карточке компании. */
7
+ ParseResultSourceEnum["MANUAL"] = "manual";
8
+ /** Месячный контур актуальности (дифф сайта против базы). */
9
+ ParseResultSourceEnum["MONTHLY_DIFF"] = "monthly_diff";
10
+ /** Синк внешнего агрегатора (Morty и др.). */
11
+ ParseResultSourceEnum["AGGREGATOR"] = "aggregator";
12
+ })(ParseResultSourceEnum || (exports.ParseResultSourceEnum = ParseResultSourceEnum = {}));
@@ -0,0 +1,10 @@
1
+ export declare enum ParseResultStatusEnum {
2
+ PENDING = "pending",
3
+ PARSING = "parsing",
4
+ READY = "ready",
5
+ FAILED = "failed",
6
+ APPLIED = "applied",
7
+ REJECTED = "rejected",
8
+ /** Месячный дифф: контент сайта не изменился, LLM не вызывался. */
9
+ UNCHANGED = "unchanged"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseResultStatusEnum = void 0;
4
+ var ParseResultStatusEnum;
5
+ (function (ParseResultStatusEnum) {
6
+ ParseResultStatusEnum["PENDING"] = "pending";
7
+ ParseResultStatusEnum["PARSING"] = "parsing";
8
+ ParseResultStatusEnum["READY"] = "ready";
9
+ ParseResultStatusEnum["FAILED"] = "failed";
10
+ ParseResultStatusEnum["APPLIED"] = "applied";
11
+ ParseResultStatusEnum["REJECTED"] = "rejected";
12
+ /** Месячный дифф: контент сайта не изменился, LLM не вызывался. */
13
+ ParseResultStatusEnum["UNCHANGED"] = "unchanged";
14
+ })(ParseResultStatusEnum || (exports.ParseResultStatusEnum = ParseResultStatusEnum = {}));
@@ -0,0 +1,25 @@
1
+ import { ParseDiffOperation, ParseResultPayload } from './parse-result-payload';
2
+ import { ParseResultSourceEnum } from './parse-result-source.enum';
3
+ import { ParseResultStatusEnum } from './parse-result-status.enum';
4
+ declare class ParseResultProfile {
5
+ id: number;
6
+ title: string;
7
+ site: string;
8
+ }
9
+ export declare class ParseResultRO {
10
+ id: number;
11
+ profileId: number;
12
+ profile: ParseResultProfile;
13
+ status: ParseResultStatusEnum;
14
+ source: ParseResultSourceEnum;
15
+ payload: ParseResultPayload;
16
+ moderatorPayload: ParseResultPayload;
17
+ diff: ParseDiffOperation[];
18
+ sourceUrls: string[];
19
+ error: string;
20
+ appliedBy: string;
21
+ appliedAt: Date;
22
+ createdAt: Date;
23
+ updatedAt: Date;
24
+ }
25
+ export {};
@@ -0,0 +1,90 @@
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.ParseResultRO = void 0;
13
+ /* eslint-disable max-classes-per-file */
14
+ const class_transformer_1 = require("class-transformer");
15
+ const parse_result_source_enum_1 = require("./parse-result-source.enum");
16
+ const parse_result_status_enum_1 = require("./parse-result-status.enum");
17
+ class ParseResultProfile {
18
+ }
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ __metadata("design:type", Number)
22
+ ], ParseResultProfile.prototype, "id", void 0);
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ __metadata("design:type", String)
26
+ ], ParseResultProfile.prototype, "title", void 0);
27
+ __decorate([
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", String)
30
+ ], ParseResultProfile.prototype, "site", void 0);
31
+ class ParseResultRO {
32
+ }
33
+ exports.ParseResultRO = ParseResultRO;
34
+ __decorate([
35
+ (0, class_transformer_1.Expose)(),
36
+ __metadata("design:type", Number)
37
+ ], ParseResultRO.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, class_transformer_1.Expose)(),
40
+ __metadata("design:type", Number)
41
+ ], ParseResultRO.prototype, "profileId", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ (0, class_transformer_1.Type)(() => ParseResultProfile),
45
+ __metadata("design:type", ParseResultProfile)
46
+ ], ParseResultRO.prototype, "profile", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ __metadata("design:type", String)
50
+ ], ParseResultRO.prototype, "status", void 0);
51
+ __decorate([
52
+ (0, class_transformer_1.Expose)(),
53
+ __metadata("design:type", String)
54
+ ], ParseResultRO.prototype, "source", void 0);
55
+ __decorate([
56
+ (0, class_transformer_1.Expose)(),
57
+ __metadata("design:type", Object)
58
+ ], ParseResultRO.prototype, "payload", void 0);
59
+ __decorate([
60
+ (0, class_transformer_1.Expose)(),
61
+ __metadata("design:type", Object)
62
+ ], ParseResultRO.prototype, "moderatorPayload", void 0);
63
+ __decorate([
64
+ (0, class_transformer_1.Expose)(),
65
+ __metadata("design:type", Array)
66
+ ], ParseResultRO.prototype, "diff", void 0);
67
+ __decorate([
68
+ (0, class_transformer_1.Expose)(),
69
+ __metadata("design:type", Array)
70
+ ], ParseResultRO.prototype, "sourceUrls", void 0);
71
+ __decorate([
72
+ (0, class_transformer_1.Expose)(),
73
+ __metadata("design:type", String)
74
+ ], ParseResultRO.prototype, "error", void 0);
75
+ __decorate([
76
+ (0, class_transformer_1.Expose)(),
77
+ __metadata("design:type", String)
78
+ ], ParseResultRO.prototype, "appliedBy", void 0);
79
+ __decorate([
80
+ (0, class_transformer_1.Expose)(),
81
+ __metadata("design:type", Date)
82
+ ], ParseResultRO.prototype, "appliedAt", void 0);
83
+ __decorate([
84
+ (0, class_transformer_1.Expose)(),
85
+ __metadata("design:type", Date)
86
+ ], ParseResultRO.prototype, "createdAt", void 0);
87
+ __decorate([
88
+ (0, class_transformer_1.Expose)(),
89
+ __metadata("design:type", Date)
90
+ ], ParseResultRO.prototype, "updatedAt", void 0);
@@ -0,0 +1,5 @@
1
+ import { ParseResultPayload } from './parse-result-payload';
2
+ export declare class UpdateParseResultDto {
3
+ /** Правки модератора поверх извлечённого payload (полная копия с изменениями). */
4
+ moderatorPayload?: ParseResultPayload;
5
+ }
@@ -0,0 +1,21 @@
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.UpdateParseResultDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class UpdateParseResultDto {
15
+ }
16
+ exports.UpdateParseResultDto = UpdateParseResultDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsOptional)(),
19
+ (0, class_validator_1.IsObject)(),
20
+ __metadata("design:type", Object)
21
+ ], UpdateParseResultDto.prototype, "moderatorPayload", void 0);
@@ -1,3 +1,4 @@
1
+ import { ProfileLostReasonEnum } from '../enum/profile-lost-reason.enum';
1
2
  import { ProfileSalesStatus } from '../enum/profile-sales-status.enum';
2
3
  export declare class CreateProfileActionRO {
3
4
  profileId: number;
@@ -7,4 +8,6 @@ export declare class CreateProfileActionRO {
7
8
  done?: boolean;
8
9
  time?: string;
9
10
  salesStatus?: ProfileSalesStatus;
11
+ assigneeId?: number;
12
+ lostReason?: ProfileLostReasonEnum;
10
13
  }
@@ -13,6 +13,7 @@ exports.CreateProfileActionRO = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const is_not_blank_1 = require("../../shared/is-not-blank");
16
+ const profile_lost_reason_enum_1 = require("../enum/profile-lost-reason.enum");
16
17
  const profile_sales_status_enum_1 = require("../enum/profile-sales-status.enum");
17
18
  class CreateProfileActionRO {
18
19
  }
@@ -57,3 +58,16 @@ __decorate([
57
58
  (0, class_transformer_1.Expose)(),
58
59
  __metadata("design:type", String)
59
60
  ], CreateProfileActionRO.prototype, "salesStatus", void 0);
61
+ __decorate([
62
+ (0, class_validator_1.IsOptional)(),
63
+ (0, class_validator_1.IsPositive)(),
64
+ (0, class_transformer_1.Expose)(),
65
+ __metadata("design:type", Number)
66
+ ], CreateProfileActionRO.prototype, "assigneeId", void 0);
67
+ __decorate([
68
+ (0, class_validator_1.ValidateIf)((o) => o.salesStatus === profile_sales_status_enum_1.ProfileSalesStatus.REJECTED ||
69
+ o.salesStatus === profile_sales_status_enum_1.ProfileSalesStatus.FREE_LOST),
70
+ (0, class_validator_1.IsEnum)(profile_lost_reason_enum_1.ProfileLostReasonEnum),
71
+ (0, class_transformer_1.Expose)(),
72
+ __metadata("design:type", String)
73
+ ], CreateProfileActionRO.prototype, "lostReason", void 0);
@@ -4,6 +4,8 @@ declare class Profile {
4
4
  }
5
5
  export declare class ProfileActionRO {
6
6
  id: number;
7
+ profileId: number;
8
+ assigneeId: number;
7
9
  profile: Profile;
8
10
  createdAt: Date;
9
11
  type: string;
@@ -29,6 +29,14 @@ __decorate([
29
29
  (0, class_transformer_1.Expose)(),
30
30
  __metadata("design:type", Number)
31
31
  ], ProfileActionRO.prototype, "id", void 0);
32
+ __decorate([
33
+ (0, class_transformer_1.Expose)(),
34
+ __metadata("design:type", Number)
35
+ ], ProfileActionRO.prototype, "profileId", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Expose)(),
38
+ __metadata("design:type", Number)
39
+ ], ProfileActionRO.prototype, "assigneeId", void 0);
32
40
  __decorate([
33
41
  (0, class_transformer_1.Expose)(),
34
42
  (0, class_transformer_1.Type)(() => Profile),
@@ -3,6 +3,7 @@ import { ProfileActionRO } from './action/profile-action.ro';
3
3
  import { CrmVerificationEnum } from './enum/crm-verifiaction.enum';
4
4
  import { PartnerProgramEnum } from './enum/partner-program.enum';
5
5
  import { ProfileIntegrationTypeEnum } from './enum/profile-integration-type.enum';
6
+ import { ProfileLostReasonEnum } from './enum/profile-lost-reason.enum';
6
7
  import { ProfileLoyaltyEnum } from './enum/profile-loyalty.enum';
7
8
  import { ProfileSalesStatus } from './enum/profile-sales-status.enum';
8
9
  import { ProfileStatusEnum } from './enum/profile-step.enum';
@@ -22,6 +23,7 @@ export declare class AdminProfileRO {
22
23
  loyalty: ProfileLoyaltyEnum;
23
24
  techStatus: ProfileTechStatusEnum;
24
25
  salesStatus: ProfileSalesStatus;
26
+ lostReason: ProfileLostReasonEnum;
25
27
  commissions?: ProfileCommissionRO;
26
28
  partnerProgram: PartnerProgramEnum;
27
29
  lastEmailSendId: string;
@@ -17,6 +17,7 @@ const profile_action_ro_1 = require("./action/profile-action.ro");
17
17
  const crm_verifiaction_enum_1 = require("./enum/crm-verifiaction.enum");
18
18
  const partner_program_enum_1 = require("./enum/partner-program.enum");
19
19
  const profile_integration_type_enum_1 = require("./enum/profile-integration-type.enum");
20
+ const profile_lost_reason_enum_1 = require("./enum/profile-lost-reason.enum");
20
21
  const profile_loyalty_enum_1 = require("./enum/profile-loyalty.enum");
21
22
  const profile_sales_status_enum_1 = require("./enum/profile-sales-status.enum");
22
23
  const profile_step_enum_1 = require("./enum/profile-step.enum");
@@ -62,6 +63,10 @@ __decorate([
62
63
  (0, class_transformer_1.Expose)(),
63
64
  __metadata("design:type", String)
64
65
  ], AdminProfileRO.prototype, "salesStatus", void 0);
66
+ __decorate([
67
+ (0, class_transformer_1.Expose)(),
68
+ __metadata("design:type", String)
69
+ ], AdminProfileRO.prototype, "lostReason", void 0);
65
70
  __decorate([
66
71
  (0, class_transformer_1.Expose)(),
67
72
  (0, class_transformer_1.Type)(() => profile_commission_ro_1.ProfileCommissionRO),
@@ -0,0 +1,9 @@
1
+ export declare enum ProfileLostReasonEnum {
2
+ EXPENSIVE = "expensive",
3
+ COMPETITOR = "competitor",
4
+ CLOSED = "closed",
5
+ NO_RESPONSE = "no_response",
6
+ NO_NEED = "no_need",
7
+ MISSING_FEATURES = "missing_features",
8
+ OTHER = "other"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfileLostReasonEnum = void 0;
4
+ var ProfileLostReasonEnum;
5
+ (function (ProfileLostReasonEnum) {
6
+ ProfileLostReasonEnum["EXPENSIVE"] = "expensive";
7
+ ProfileLostReasonEnum["COMPETITOR"] = "competitor";
8
+ ProfileLostReasonEnum["CLOSED"] = "closed";
9
+ ProfileLostReasonEnum["NO_RESPONSE"] = "no_response";
10
+ ProfileLostReasonEnum["NO_NEED"] = "no_need";
11
+ ProfileLostReasonEnum["MISSING_FEATURES"] = "missing_features";
12
+ ProfileLostReasonEnum["OTHER"] = "other";
13
+ })(ProfileLostReasonEnum || (exports.ProfileLostReasonEnum = ProfileLostReasonEnum = {}));
@@ -44,6 +44,8 @@ export declare class ProfileRO {
44
44
  /** ОГРН/ОГРНИП — для RU-юрлиц. Используется как плейсхолдер `{{ogrn}}`
45
45
  * в TEMPLATE-документах при генерации клиентского соглашения. */
46
46
  ogrn?: string;
47
+ /** Geschäftsführer — для футера PDF-счёта (non-RU). */
48
+ legalManagingDirector?: string;
47
49
  phoneForCustomers: string;
48
50
  logo: string;
49
51
  mainEmail: string;
@@ -135,6 +135,10 @@ __decorate([
135
135
  (0, class_transformer_1.Expose)(),
136
136
  __metadata("design:type", String)
137
137
  ], ProfileRO.prototype, "ogrn", void 0);
138
+ __decorate([
139
+ (0, class_transformer_1.Expose)(),
140
+ __metadata("design:type", String)
141
+ ], ProfileRO.prototype, "legalManagingDirector", void 0);
138
142
  __decorate([
139
143
  (0, class_transformer_1.Expose)(),
140
144
  __metadata("design:type", String)
@@ -5,6 +5,7 @@ export declare class UpdateCurrentBaseDto {
5
5
  legalAddress?: string;
6
6
  legalTaxId?: string;
7
7
  ogrn?: string;
8
+ legalManagingDirector?: string;
8
9
  tax?: number;
9
10
  taxIncluded?: boolean;
10
11
  phoneForCustomers: string;
@@ -42,6 +42,11 @@ __decorate([
42
42
  (0, class_transformer_1.Expose)(),
43
43
  __metadata("design:type", String)
44
44
  ], UpdateCurrentBaseDto.prototype, "ogrn", void 0);
45
+ __decorate([
46
+ (0, class_validator_1.IsOptional)(),
47
+ (0, class_transformer_1.Expose)(),
48
+ __metadata("design:type", String)
49
+ ], UpdateCurrentBaseDto.prototype, "legalManagingDirector", void 0);
45
50
  __decorate([
46
51
  (0, class_validator_1.IsOptional)(),
47
52
  (0, class_validator_1.IsNumber)(),
@@ -5,6 +5,9 @@
5
5
  * - `MANUAL` — обычный промокод, созданный администратором профиля вручную.
6
6
  * - `CROSS_SALE` — авто-генерация в `SendCrossSalesService` (маркетинговые
7
7
  * рассылки кросс-продаж).
8
+ * - `RETARGETING` — авто-генерация в ретаргетинг-письмах (win-back:
9
+ * незавершённые брони, no-show, отмены клиента). Исторические
10
+ * ретаргетинг-промокоды до введения этого вида остались в `CROSS_SALE`.
8
11
  * - `BIRTHDAY` — авто-генерация в `BirthdayMarketingService` (письма с ДР).
9
12
  * - `REFUND` — выдан клиенту как возврат средств вместо денежного рефанда
10
13
  * (`OrderPromocodeController.createForRefund` / `OrderGroupController`).
@@ -12,6 +15,7 @@
12
15
  export declare enum PromocodeKindEnum {
13
16
  MANUAL = "MANUAL",
14
17
  CROSS_SALE = "CROSS_SALE",
18
+ RETARGETING = "RETARGETING",
15
19
  BIRTHDAY = "BIRTHDAY",
16
20
  REFUND = "REFUND"
17
21
  }
@@ -8,6 +8,9 @@ exports.PromocodeKindEnum = void 0;
8
8
  * - `MANUAL` — обычный промокод, созданный администратором профиля вручную.
9
9
  * - `CROSS_SALE` — авто-генерация в `SendCrossSalesService` (маркетинговые
10
10
  * рассылки кросс-продаж).
11
+ * - `RETARGETING` — авто-генерация в ретаргетинг-письмах (win-back:
12
+ * незавершённые брони, no-show, отмены клиента). Исторические
13
+ * ретаргетинг-промокоды до введения этого вида остались в `CROSS_SALE`.
11
14
  * - `BIRTHDAY` — авто-генерация в `BirthdayMarketingService` (письма с ДР).
12
15
  * - `REFUND` — выдан клиенту как возврат средств вместо денежного рефанда
13
16
  * (`OrderPromocodeController.createForRefund` / `OrderGroupController`).
@@ -16,6 +19,7 @@ var PromocodeKindEnum;
16
19
  (function (PromocodeKindEnum) {
17
20
  PromocodeKindEnum["MANUAL"] = "MANUAL";
18
21
  PromocodeKindEnum["CROSS_SALE"] = "CROSS_SALE";
22
+ PromocodeKindEnum["RETARGETING"] = "RETARGETING";
19
23
  PromocodeKindEnum["BIRTHDAY"] = "BIRTHDAY";
20
24
  PromocodeKindEnum["REFUND"] = "REFUND";
21
25
  })(PromocodeKindEnum || (exports.PromocodeKindEnum = PromocodeKindEnum = {}));
@@ -13,6 +13,8 @@ declare class Locale {
13
13
  declare class Mode {
14
14
  title: string;
15
15
  description: string;
16
+ /** Бейдж «Популярно» на карточке режима в виджете. */
17
+ popular: boolean;
16
18
  }
17
19
  export declare class CreateQuestroomDto {
18
20
  title: string;
@@ -64,6 +64,12 @@ __decorate([
64
64
  (0, class_validator_1.MaxLength)(2000),
65
65
  __metadata("design:type", String)
66
66
  ], Mode.prototype, "description", void 0);
67
+ __decorate([
68
+ (0, class_validator_1.IsBoolean)(),
69
+ (0, class_transformer_1.Transform)(({ value }) => value !== null && value !== void 0 ? value : false),
70
+ (0, class_transformer_1.Expose)(),
71
+ __metadata("design:type", Boolean)
72
+ ], Mode.prototype, "popular", void 0);
67
73
  class CreateQuestroomDto {
68
74
  }
69
75
  exports.CreateQuestroomDto = CreateQuestroomDto;
@@ -17,6 +17,8 @@ export declare class QuestroomLightMode {
17
17
  id: number;
18
18
  title: string;
19
19
  description: string;
20
+ /** Бейдж «Популярно» на карточке режима в виджете. */
21
+ popular: boolean;
20
22
  }
21
23
  /**
22
24
  * Лёгкий RO квеста для bootstrap'а. Это самая большая сущность из