@escapenavigator/types 2.1.21 → 2.1.23

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 (124) hide show
  1. package/dist/admin/admin.ro.d.ts +1 -0
  2. package/dist/admin/aggregator-order/aggregator-order.ro.d.ts +14 -0
  3. package/dist/admin/aggregator-order/aggregator-order.ro.js +17 -0
  4. package/dist/admin/aggregator-order/enum/aggregator-order-agreed-by.enum.d.ts +4 -0
  5. package/dist/admin/aggregator-order/enum/aggregator-order-agreed-by.enum.js +8 -0
  6. package/dist/admin/aggregator-order/query-aggregator-order.dto.d.ts +10 -0
  7. package/dist/admin/aggregator-order/query-aggregator-order.dto.js +14 -0
  8. package/dist/admin/aggregator-order/update-aggregator-order.dto.d.ts +6 -0
  9. package/dist/admin/aggregator-order/update-aggregator-order.dto.js +6 -0
  10. package/dist/admin/create-admin.dto.d.ts +1 -0
  11. package/dist/admin/create-admin.dto.js +11 -0
  12. package/dist/admin/sms/admin-sms.ro.d.ts +11 -0
  13. package/dist/admin/sms/admin-sms.ro.js +2 -0
  14. package/dist/admin/sms/send-admin-sms.dto.d.ts +13 -0
  15. package/dist/admin/sms/send-admin-sms.dto.js +87 -0
  16. package/dist/admin/telephony/admin-call.ro.d.ts +38 -0
  17. package/dist/admin/telephony/admin-call.ro.js +2 -0
  18. package/dist/admin/telephony/start-admin-call.dto.d.ts +16 -0
  19. package/dist/admin/telephony/start-admin-call.dto.js +104 -0
  20. package/dist/balance/balance-invoice-status.enum.d.ts +5 -0
  21. package/dist/balance/balance-invoice-status.enum.js +9 -0
  22. package/dist/balance/balance-invoice.ro.d.ts +25 -0
  23. package/dist/balance/balance-invoice.ro.js +89 -0
  24. package/dist/balance/balance-item.ro.d.ts +11 -0
  25. package/dist/balance/balance-item.ro.js +32 -0
  26. package/dist/balance/balance-payer.d.ts +6 -0
  27. package/dist/balance/balance-payer.js +2 -0
  28. package/dist/balance/balance-payment.ro.d.ts +7 -0
  29. package/dist/balance/balance-payment.ro.js +25 -1
  30. package/dist/balance/create-balance-invoice.dto.d.ts +8 -0
  31. package/dist/balance/create-balance-invoice.dto.js +47 -0
  32. package/dist/certificate-v2/update-certificate-settings.dto.js +21 -8
  33. package/dist/integrations/connect-integration.dto.d.ts +1 -1
  34. package/dist/integrations/provider-code.enum.d.ts +1 -1
  35. package/dist/integrations/provider-code.enum.js +1 -1
  36. package/dist/lead/lead-board.ro.d.ts +2 -0
  37. package/dist/lead/lead-time.constants.d.ts +6 -0
  38. package/dist/lead/lead-time.constants.js +9 -0
  39. package/dist/lead/public/public-lead-form.ro.d.ts +2 -0
  40. package/dist/lead/public/submit-lead.dto.d.ts +2 -0
  41. package/dist/lead/public/submit-lead.dto.js +6 -0
  42. package/dist/openapi/certificates-v2/openapi-create-certificate-shop-sale.dto.d.ts +2 -0
  43. package/dist/openapi/certificates-v2/openapi-create-certificate-shop-sale.dto.js +6 -0
  44. package/dist/openapi/profiles/openapi-profile-booking-list-item.ro.js +6 -2
  45. package/dist/openapi/widget/openapi-widget-info.ro.d.ts +2 -0
  46. package/dist/openapi/widget/openapi-widget-info.ro.js +8 -0
  47. package/dist/order/order.ro.d.ts +23 -0
  48. package/dist/order/order.ro.js +64 -0
  49. package/dist/player/player.ro.d.ts +3 -0
  50. package/dist/player/player.ro.js +12 -0
  51. package/dist/profile/action/create-profile-action.dto.d.ts +6 -0
  52. package/dist/profile/action/create-profile-action.dto.js +14 -0
  53. package/dist/profile/agb/profile-document-type.enum.d.ts +19 -0
  54. package/dist/profile/agb/profile-document-type.enum.js +27 -0
  55. package/dist/profile/agb/profile-document.ro.d.ts +35 -0
  56. package/dist/profile/agb/profile-document.ro.js +2 -0
  57. package/dist/profile/agb/update-profile-document.dto.d.ts +8 -0
  58. package/dist/profile/agb/update-profile-document.dto.js +35 -0
  59. package/dist/profile/company-ai-context.d.ts +1 -0
  60. package/dist/profile/enum/profile-partner-board-status.enum.d.ts +12 -0
  61. package/dist/profile/enum/profile-partner-board-status.enum.js +16 -0
  62. package/dist/profile/enum/profile-verification-board-status.enum.d.ts +13 -0
  63. package/dist/profile/enum/profile-verification-board-status.enum.js +17 -0
  64. package/dist/profile/partner-board.ro.d.ts +36 -0
  65. package/dist/profile/partner-board.ro.js +116 -0
  66. package/dist/profile/profile.ro.d.ts +2 -0
  67. package/dist/profile/profile.ro.js +8 -0
  68. package/dist/profile/update-current-ym.dto.d.ts +8 -0
  69. package/dist/profile/update-current-ym.dto.js +33 -0
  70. package/dist/profile/verification-board.ro.d.ts +37 -0
  71. package/dist/profile/verification-board.ro.js +116 -0
  72. package/dist/questroom/create-questroom-admin-note.dto.d.ts +3 -0
  73. package/dist/questroom/create-questroom-admin-note.dto.js +24 -0
  74. package/dist/questroom/enum/questroom-admin-note-type.enum.d.ts +4 -0
  75. package/dist/questroom/enum/questroom-admin-note-type.enum.js +8 -0
  76. package/dist/questroom/questroom-admin-card.ro.d.ts +85 -0
  77. package/dist/questroom/questroom-admin-card.ro.js +276 -0
  78. package/dist/questroom/questroom-admin-note.ro.d.ts +10 -0
  79. package/dist/questroom/{update-questroom-integration.dto.js → questroom-admin-note.ro.js} +17 -16
  80. package/dist/questroom/questroom-admin.ro.d.ts +2 -0
  81. package/dist/questroom/questroom-admin.ro.js +4 -0
  82. package/dist/questroom/questrooms-list-admin.ro.d.ts +2 -14
  83. package/dist/questroom/questrooms-list-admin.ro.js +8 -35
  84. package/dist/referral/referral.dto.d.ts +15 -0
  85. package/dist/referral/referral.dto.js +69 -0
  86. package/dist/referral/referral.enums.d.ts +36 -0
  87. package/dist/referral/referral.enums.js +45 -0
  88. package/dist/referral/referral.ro.d.ts +58 -0
  89. package/dist/referral/referral.ro.js +2 -0
  90. package/dist/registration-request/create-registration-request.dto.d.ts +1 -0
  91. package/dist/registration-request/create-registration-request.dto.js +17 -0
  92. package/dist/registration-request/registration-request.ro.d.ts +1 -0
  93. package/dist/registration-request/update-registration-request.dto.d.ts +5 -0
  94. package/dist/registration-request/update-registration-request.dto.js +28 -0
  95. package/dist/role/create-role.dto.d.ts +1 -0
  96. package/dist/role/create-role.dto.js +6 -0
  97. package/dist/role/role.ro.d.ts +5 -0
  98. package/dist/role/role.ro.js +4 -0
  99. package/dist/search/search.ro.d.ts +12 -0
  100. package/dist/slot-rule/create-rule.dto.d.ts +1 -0
  101. package/dist/slot-rule/create-rule.dto.js +7 -0
  102. package/dist/slot-rule/defailt-rule.d.ts +1 -0
  103. package/dist/slot-rule/defailt-rule.js +1 -0
  104. package/dist/slot-rule/rule.ro.d.ts +1 -0
  105. package/dist/slot-rule/rule.ro.js +4 -0
  106. package/dist/statistics/leads.d.ts +70 -0
  107. package/dist/statistics/leads.js +2 -0
  108. package/dist/statistics/pnl.d.ts +6 -0
  109. package/dist/statistics/pnl.js +9 -0
  110. package/dist/statistics/questroom-ids.d.ts +16 -0
  111. package/dist/statistics/questroom-ids.js +38 -0
  112. package/dist/tsconfig.build.tsbuildinfo +1 -1
  113. package/dist/user/fine/create-user-fine.dto.d.ts +2 -0
  114. package/dist/user/fine/create-user-fine.dto.js +8 -0
  115. package/dist/user/fine/user-fine-kind.d.ts +29 -0
  116. package/dist/user/fine/user-fine-kind.js +66 -0
  117. package/dist/user/fine/user-fine.ro.d.ts +2 -0
  118. package/dist/user/fine/user-fine.ro.js +5 -0
  119. package/dist/user/reports/user-monthly-report.ro.d.ts +11 -0
  120. package/dist/widget/create-widget.dto.d.ts +6 -0
  121. package/dist/widget/create-widget.dto.js +15 -0
  122. package/dist/widget/widget.ro.d.ts +1 -0
  123. package/package.json +2 -2
  124. package/dist/questroom/update-questroom-integration.dto.d.ts +0 -6
@@ -3,4 +3,11 @@ export declare class BalancePaymentRO extends RO {
3
3
  paymentId: string;
4
4
  amount: number;
5
5
  invoiceLink?: string;
6
+ profileId?: number;
7
+ profileTitle?: string;
8
+ }
9
+ export declare class BalancePaymentStatsRO {
10
+ totalAmount: number;
11
+ count: number;
12
+ companiesCount: number;
6
13
  }
@@ -9,7 +9,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BalancePaymentRO = void 0;
12
+ exports.BalancePaymentStatsRO = exports.BalancePaymentRO = void 0;
13
+ /* eslint-disable max-classes-per-file */
13
14
  const class_transformer_1 = require("class-transformer");
14
15
  const ro_class_1 = require("../shared/ro-class");
15
16
  class BalancePaymentRO extends ro_class_1.RO {
@@ -27,3 +28,26 @@ __decorate([
27
28
  (0, class_transformer_1.Expose)(),
28
29
  __metadata("design:type", String)
29
30
  ], BalancePaymentRO.prototype, "invoiceLink", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ __metadata("design:type", Number)
34
+ ], BalancePaymentRO.prototype, "profileId", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ __metadata("design:type", String)
38
+ ], BalancePaymentRO.prototype, "profileTitle", void 0);
39
+ class BalancePaymentStatsRO {
40
+ }
41
+ exports.BalancePaymentStatsRO = BalancePaymentStatsRO;
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ __metadata("design:type", Number)
45
+ ], BalancePaymentStatsRO.prototype, "totalAmount", void 0);
46
+ __decorate([
47
+ (0, class_transformer_1.Expose)(),
48
+ __metadata("design:type", Number)
49
+ ], BalancePaymentStatsRO.prototype, "count", void 0);
50
+ __decorate([
51
+ (0, class_transformer_1.Expose)(),
52
+ __metadata("design:type", Number)
53
+ ], BalancePaymentStatsRO.prototype, "companiesCount", void 0);
@@ -0,0 +1,8 @@
1
+ /** Сумма в рублях. На балансе хранится в копейках. */
2
+ export declare class CreateBalanceInvoiceDto {
3
+ amount: number;
4
+ payerName: string;
5
+ payerInn: string;
6
+ payerKpp?: string;
7
+ payerAddress: string;
8
+ }
@@ -0,0 +1,47 @@
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.CreateBalanceInvoiceDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const is_not_blank_1 = require("../shared/is-not-blank");
16
+ /** Сумма в рублях. На балансе хранится в копейках. */
17
+ class CreateBalanceInvoiceDto {
18
+ }
19
+ exports.CreateBalanceInvoiceDto = CreateBalanceInvoiceDto;
20
+ __decorate([
21
+ (0, class_validator_1.IsNumber)({ maxDecimalPlaces: 2 }),
22
+ (0, class_validator_1.IsPositive)(),
23
+ (0, class_validator_1.Max)(10000000),
24
+ (0, class_transformer_1.Expose)(),
25
+ __metadata("design:type", Number)
26
+ ], CreateBalanceInvoiceDto.prototype, "amount", void 0);
27
+ __decorate([
28
+ (0, is_not_blank_1.IsNotBlank)(),
29
+ (0, class_transformer_1.Expose)(),
30
+ __metadata("design:type", String)
31
+ ], CreateBalanceInvoiceDto.prototype, "payerName", void 0);
32
+ __decorate([
33
+ (0, is_not_blank_1.IsNotBlank)(),
34
+ (0, class_transformer_1.Expose)(),
35
+ __metadata("design:type", String)
36
+ ], CreateBalanceInvoiceDto.prototype, "payerInn", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsOptional)(),
39
+ (0, class_validator_1.IsString)(),
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", String)
42
+ ], CreateBalanceInvoiceDto.prototype, "payerKpp", void 0);
43
+ __decorate([
44
+ (0, is_not_blank_1.IsNotBlank)(),
45
+ (0, class_transformer_1.Expose)(),
46
+ __metadata("design:type", String)
47
+ ], CreateBalanceInvoiceDto.prototype, "payerAddress", void 0);
@@ -13,8 +13,21 @@ exports.UpdateCertificateSettingsDto = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const certificate_shop_flow_order_enum_1 = require("./enum/certificate-shop-flow-order.enum");
16
- function checkBoolean({ value }, defaultValue) {
17
- return value === undefined ? (defaultValue !== null && defaultValue !== void 0 ? defaultValue : false) : value;
16
+ /**
17
+ * Нет ключа в патче — не подставляем дефолт. Иначе ValidationPipe
18
+ * дописывает `false`/`true` на все `@Expose`-поля, и сохранение одной
19
+ * формы магазина затирает поля другой (кастомный номинал, самовывоз).
20
+ */
21
+ function optionalBoolean({ value }) {
22
+ if (value === undefined || value === null)
23
+ return undefined;
24
+ return value;
25
+ }
26
+ function optionalNumber({ value }) {
27
+ if (value === undefined || value === null)
28
+ return undefined;
29
+ const numeric = +value;
30
+ return numeric ? numeric : 0;
18
31
  }
19
32
  class UpdateCertificateSettingsDto {
20
33
  }
@@ -27,7 +40,7 @@ __decorate([
27
40
  ], UpdateCertificateSettingsDto.prototype, "validity", void 0);
28
41
  __decorate([
29
42
  (0, class_validator_1.IsOptional)(),
30
- (0, class_transformer_1.Transform)(({ value }) => (+value ? +value : 0)),
43
+ (0, class_transformer_1.Transform)(optionalNumber),
31
44
  (0, class_validator_1.Min)(0),
32
45
  (0, class_validator_1.IsInt)(),
33
46
  (0, class_transformer_1.Expose)(),
@@ -36,13 +49,13 @@ __decorate([
36
49
  __decorate([
37
50
  (0, class_validator_1.IsOptional)(),
38
51
  (0, class_validator_1.IsBoolean)(),
39
- (0, class_transformer_1.Transform)(({ value }) => checkBoolean({ value }, false)),
52
+ (0, class_transformer_1.Transform)(optionalBoolean),
40
53
  (0, class_transformer_1.Expose)(),
41
54
  __metadata("design:type", Boolean)
42
55
  ], UpdateCertificateSettingsDto.prototype, "allowFreeNominal", void 0);
43
56
  __decorate([
44
57
  (0, class_validator_1.ValidateIf)((o) => o.allowFreeNominal),
45
- (0, class_transformer_1.Transform)(({ value }) => (+value ? +value : 0)),
58
+ (0, class_transformer_1.Transform)(optionalNumber),
46
59
  (0, class_validator_1.Min)(0),
47
60
  (0, class_validator_1.IsInt)(),
48
61
  (0, class_transformer_1.Expose)(),
@@ -50,7 +63,7 @@ __decorate([
50
63
  ], UpdateCertificateSettingsDto.prototype, "freeNominalMin", void 0);
51
64
  __decorate([
52
65
  (0, class_validator_1.ValidateIf)((o) => o.allowFreeNominal),
53
- (0, class_transformer_1.Transform)(({ value }) => (+value ? +value : 0)),
66
+ (0, class_transformer_1.Transform)(optionalNumber),
54
67
  (0, class_validator_1.Min)(0),
55
68
  (0, class_validator_1.IsInt)(),
56
69
  (0, class_transformer_1.Expose)(),
@@ -58,7 +71,7 @@ __decorate([
58
71
  ], UpdateCertificateSettingsDto.prototype, "freeNominalMax", void 0);
59
72
  __decorate([
60
73
  (0, class_validator_1.IsOptional)(),
61
- (0, class_transformer_1.Transform)(({ value }) => (+value ? +value : 0)),
74
+ (0, class_transformer_1.Transform)(optionalNumber),
62
75
  (0, class_validator_1.Min)(0),
63
76
  (0, class_validator_1.Max)(100),
64
77
  (0, class_validator_1.IsNumber)(),
@@ -68,7 +81,7 @@ __decorate([
68
81
  __decorate([
69
82
  (0, class_validator_1.IsOptional)(),
70
83
  (0, class_validator_1.IsBoolean)(),
71
- (0, class_transformer_1.Transform)(({ value }) => checkBoolean({ value }, true)),
84
+ (0, class_transformer_1.Transform)(optionalBoolean),
72
85
  (0, class_transformer_1.Expose)(),
73
86
  __metadata("design:type", Boolean)
74
87
  ], UpdateCertificateSettingsDto.prototype, "pickupAvailable", void 0);
@@ -12,7 +12,7 @@ export declare class ConnectIntegrationDto {
12
12
  credentials: Record<string, string>;
13
13
  /**
14
14
  * Несекретные признаки вендора. Для MyERP-совместимых систем сюда уходит
15
- * `vendor` с карточки в кабинете (myerp / questadmin / chezakod), чтобы
15
+ * `vendor` с карточки в кабинете (myerp / questadmin / chezakod / ilocked), чтобы
16
16
  * бронь ушла с нужными именами полей.
17
17
  */
18
18
  settings?: Record<string, unknown>;
@@ -15,7 +15,7 @@ export declare enum IntegrationProviderCodeEnum {
15
15
  CRM = "crm",
16
16
  /** Partner Booking API — зеркало Morty-стандарта, реализует партнёр. */
17
17
  PARTNER_API = "partner_api",
18
- /** Легаси: МойЭРП / КвестАдмин / Чеширский код / «Мир квестов» — per-quest URL'ы. */
18
+ /** Легаси: МойЭРП / КвестАдмин / Чеширский код / iLocked / «Мир квестов» — per-quest URL'ы. */
19
19
  MYERP = "myerp",
20
20
  BOOKEO = "bookeo",
21
21
  OFFTHECOUCH = "offthecouch",
@@ -19,7 +19,7 @@ var IntegrationProviderCodeEnum;
19
19
  IntegrationProviderCodeEnum["CRM"] = "crm";
20
20
  /** Partner Booking API — зеркало Morty-стандарта, реализует партнёр. */
21
21
  IntegrationProviderCodeEnum["PARTNER_API"] = "partner_api";
22
- /** Легаси: МойЭРП / КвестАдмин / Чеширский код / «Мир квестов» — per-quest URL'ы. */
22
+ /** Легаси: МойЭРП / КвестАдмин / Чеширский код / iLocked / «Мир квестов» — per-quest URL'ы. */
23
23
  IntegrationProviderCodeEnum["MYERP"] = "myerp";
24
24
  IntegrationProviderCodeEnum["BOOKEO"] = "bookeo";
25
25
  IntegrationProviderCodeEnum["OFFTHECOUCH"] = "offthecouch";
@@ -13,6 +13,8 @@ export declare class LeadBoardCardRO {
13
13
  /** Обрезанный комментарий клиента для превью в карточке. */
14
14
  comment: string | null;
15
15
  preferredDate: string | null;
16
+ /** Желаемое время, `HH:mm`. */
17
+ preferredTime: string | null;
16
18
  guests: number | null;
17
19
  questroomId: number | null;
18
20
  clientId: number | null;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * UI-only answer meaning that the client wants a callback without committing
3
+ * to a preferred time. The submission service keeps the answer for managers,
4
+ * but does not write it into `preferredTime`.
5
+ */
6
+ export declare const LEAD_TIME_UNDECIDED_VALUE = "__time_undecided__";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LEAD_TIME_UNDECIDED_VALUE = void 0;
4
+ /**
5
+ * UI-only answer meaning that the client wants a callback without committing
6
+ * to a preferred time. The submission service keeps the answer for managers,
7
+ * but does not write it into `preferredTime`.
8
+ */
9
+ exports.LEAD_TIME_UNDECIDED_VALUE = '__time_undecided__';
@@ -15,6 +15,8 @@ export declare class PublicLeadFormReferenceRO {
15
15
  */
16
16
  export declare class PublicLeadFormProfileRO {
17
17
  title: string;
18
+ /** Для ссылок на политику и согласие площадки (`/company/:slug/...`). */
19
+ slug: string;
18
20
  logo?: string;
19
21
  country: CountriesEnum;
20
22
  language: Languages;
@@ -14,6 +14,8 @@ export declare class SubmitLeadDto {
14
14
  answers: SubmitLeadAnswerDto[];
15
15
  source?: LeadSourceEnum;
16
16
  meta?: LeadMeta;
17
+ /** Галочка согласия на обработку ПДн. У площадок из РФ без неё заявка не принимается. */
18
+ pdConsent?: boolean;
17
19
  /**
18
20
  * Honeypot: скрытое поле, которое не видит человек. Любое непустое
19
21
  * значение — бот, заявка молча отбрасывается с успешным ответом.
@@ -53,6 +53,12 @@ __decorate([
53
53
  (0, class_transformer_1.Expose)(),
54
54
  __metadata("design:type", Object)
55
55
  ], SubmitLeadDto.prototype, "meta", void 0);
56
+ __decorate([
57
+ (0, class_validator_1.IsOptional)(),
58
+ (0, class_validator_1.IsBoolean)(),
59
+ (0, class_transformer_1.Expose)(),
60
+ __metadata("design:type", Boolean)
61
+ ], SubmitLeadDto.prototype, "pdConsent", void 0);
56
62
  __decorate([
57
63
  (0, class_validator_1.IsOptional)(),
58
64
  (0, class_validator_1.IsString)(),
@@ -65,4 +65,6 @@ export declare class OpenapiCreateCertificateShopSaleDto {
65
65
  billingOrganizationName?: string;
66
66
  billingTaxId?: string;
67
67
  billingAddress?: string;
68
+ /** Галочка согласия на обработку ПДн. У площадок из РФ без неё продажа не создаётся. */
69
+ pdConsent?: boolean;
68
70
  }
@@ -241,3 +241,9 @@ __decorate([
241
241
  (0, class_transformer_1.Expose)(),
242
242
  __metadata("design:type", String)
243
243
  ], OpenapiCreateCertificateShopSaleDto.prototype, "billingAddress", void 0);
244
+ __decorate([
245
+ (0, class_validator_1.IsOptional)(),
246
+ (0, class_validator_1.IsBoolean)(),
247
+ (0, class_transformer_1.Expose)(),
248
+ __metadata("design:type", Boolean)
249
+ ], OpenapiCreateCertificateShopSaleDto.prototype, "pdConsent", void 0);
@@ -160,11 +160,15 @@ __decorate([
160
160
  (0, swagger_1.ApiProperty)({
161
161
  type: () => order_ro_1.Utm,
162
162
  nullable: true,
163
- description: 'UTM attribution captured at booking time (utm_source / utm_medium / utm_campaign / …). Null when none were set.',
163
+ description: 'UTM attribution captured at booking time. `ymClientId` is the widget counter ClientID. `enClientId`, `yclid` and `enCounterId` are copied from `utmContent` tokens (`en_clientid`, `en_yclid`, `en_counter_id`) on the RU contour when those tokens are present. Null when none were set.',
164
164
  example: {
165
- utmSource: 'google',
165
+ utmSource: 'yandex',
166
166
  utmMedium: 'cpc',
167
167
  utmCampaign: 'spring_sale',
168
+ ymClientId: '1700000000000000000',
169
+ enClientId: '1700000000000000001',
170
+ yclid: 'abc123',
171
+ enCounterId: '48059552',
168
172
  },
169
173
  }),
170
174
  __metadata("design:type", order_ro_1.Utm)
@@ -105,6 +105,8 @@ export declare class OpenapiWidgetInfoRO {
105
105
  tiktokPixelId?: string;
106
106
  snapPixelEnabled?: boolean;
107
107
  snapPixelId?: string;
108
+ ymEnabled?: boolean;
109
+ ymCounterId?: string;
108
110
  customization: Customization;
109
111
  daysAhead?: number;
110
112
  buttonTooltipText?: string;
@@ -262,6 +262,14 @@ __decorate([
262
262
  (0, class_transformer_1.Expose)(),
263
263
  __metadata("design:type", String)
264
264
  ], OpenapiWidgetInfoRO.prototype, "snapPixelId", void 0);
265
+ __decorate([
266
+ (0, class_transformer_1.Expose)(),
267
+ __metadata("design:type", Boolean)
268
+ ], OpenapiWidgetInfoRO.prototype, "ymEnabled", void 0);
269
+ __decorate([
270
+ (0, class_transformer_1.Expose)(),
271
+ __metadata("design:type", String)
272
+ ], OpenapiWidgetInfoRO.prototype, "ymCounterId", void 0);
265
273
  __decorate([
266
274
  (0, class_transformer_1.Expose)(),
267
275
  (0, class_transformer_1.Type)(() => Customization),
@@ -45,6 +45,21 @@ export declare class Utm {
45
45
  fbclid?: string | null;
46
46
  ttclid?: string | null;
47
47
  msclkid?: string | null;
48
+ /**
49
+ * ClientID Яндекс.Метрики (`ym getClientID`) на момент брони.
50
+ * Не click-id Директа: это идентификатор посетителя счётчика компании.
51
+ * Кривой ввод не валим бронь — поле просто не пишем.
52
+ */
53
+ ymClientId?: string | null;
54
+ /**
55
+ * ClientID из токена `en_clientid` в `utmContent`. Не путать с
56
+ * `ymClientId` виджета: если токена не было, поле пустое.
57
+ */
58
+ enClientId?: string | null;
59
+ /** yclid Директа из токена `en_yclid` в `utmContent`. */
60
+ yclid?: string | null;
61
+ /** Номер счётчика из токена `en_counter_id` в `utmContent`. */
62
+ enCounterId?: string | null;
48
63
  }
49
64
  declare class Rule {
50
65
  cancelationRule: QuestroomCancelationTypeEnum;
@@ -179,6 +194,14 @@ export declare class OrderRO extends RO {
179
194
  * `section_${i}` и т.п.). При повторном клике перезаписывается.
180
195
  */
181
196
  enLinkId?: string | null;
197
+ /** ClientID Яндекс.Метрики, снятый виджетом в момент брони. */
198
+ ymClientId?: string | null;
199
+ /** ClientID из `en_clientid` в `utmContent`. Пусто, если токена не было. */
200
+ enClientId?: string | null;
201
+ /** yclid Директа из `en_yclid` в `utmContent`. */
202
+ yclid?: string | null;
203
+ /** Номер счётчика из `en_counter_id` в `utmContent`. */
204
+ enCounterId?: string | null;
182
205
  customFields: CustomFiled[];
183
206
  otherId: string;
184
207
  updatedAt: Date;
@@ -94,6 +94,54 @@ __decorate([
94
94
  (0, class_validator_1.MaxLength)(512),
95
95
  __metadata("design:type", String)
96
96
  ], Utm.prototype, "msclkid", void 0);
97
+ __decorate([
98
+ (0, class_transformer_1.Expose)(),
99
+ (0, class_validator_1.IsOptional)(),
100
+ (0, class_transformer_1.Transform)(({ value }) => {
101
+ if (value == null || value === '')
102
+ return undefined;
103
+ const trimmed = String(value).trim();
104
+ return /^\d{1,64}$/.test(trimmed) ? trimmed : undefined;
105
+ }),
106
+ __metadata("design:type", String)
107
+ ], Utm.prototype, "ymClientId", void 0);
108
+ __decorate([
109
+ (0, class_transformer_1.Expose)(),
110
+ (0, class_validator_1.IsOptional)(),
111
+ (0, class_transformer_1.Transform)(({ value }) => {
112
+ if (value == null || value === '')
113
+ return undefined;
114
+ const trimmed = String(value).trim();
115
+ return /^\d{1,64}$/.test(trimmed) ? trimmed : undefined;
116
+ }),
117
+ __metadata("design:type", String)
118
+ ], Utm.prototype, "enClientId", void 0);
119
+ __decorate([
120
+ (0, class_transformer_1.Expose)(),
121
+ (0, class_validator_1.IsOptional)(),
122
+ (0, class_transformer_1.Transform)(({ value }) => {
123
+ if (value == null || value === '')
124
+ return undefined;
125
+ const trimmed = String(value).trim();
126
+ if (!trimmed || trimmed.length > 512)
127
+ return undefined;
128
+ if (/[\s|]/.test(trimmed) || /[^\x20-\x7E]/.test(trimmed))
129
+ return undefined;
130
+ return trimmed;
131
+ }),
132
+ __metadata("design:type", String)
133
+ ], Utm.prototype, "yclid", void 0);
134
+ __decorate([
135
+ (0, class_transformer_1.Expose)(),
136
+ (0, class_validator_1.IsOptional)(),
137
+ (0, class_transformer_1.Transform)(({ value }) => {
138
+ if (value == null || value === '')
139
+ return undefined;
140
+ const trimmed = String(value).trim();
141
+ return /^\d{1,20}$/.test(trimmed) ? trimmed : undefined;
142
+ }),
143
+ __metadata("design:type", String)
144
+ ], Utm.prototype, "enCounterId", void 0);
97
145
  class Rule {
98
146
  }
99
147
  __decorate([
@@ -435,6 +483,22 @@ __decorate([
435
483
  (0, class_transformer_1.Expose)(),
436
484
  __metadata("design:type", String)
437
485
  ], OrderRO.prototype, "enLinkId", void 0);
486
+ __decorate([
487
+ (0, class_transformer_1.Expose)(),
488
+ __metadata("design:type", String)
489
+ ], OrderRO.prototype, "ymClientId", void 0);
490
+ __decorate([
491
+ (0, class_transformer_1.Expose)(),
492
+ __metadata("design:type", String)
493
+ ], OrderRO.prototype, "enClientId", void 0);
494
+ __decorate([
495
+ (0, class_transformer_1.Expose)(),
496
+ __metadata("design:type", String)
497
+ ], OrderRO.prototype, "yclid", void 0);
498
+ __decorate([
499
+ (0, class_transformer_1.Expose)(),
500
+ __metadata("design:type", String)
501
+ ], OrderRO.prototype, "enCounterId", void 0);
438
502
  __decorate([
439
503
  (0, class_transformer_1.Expose)(),
440
504
  (0, class_transformer_1.Type)(() => CustomFiled),
@@ -35,6 +35,9 @@ export declare class PlayerRO {
35
35
  id: number;
36
36
  fullName: string;
37
37
  phone: string;
38
+ cityId?: number | null;
39
+ cityTitle?: string | null;
40
+ timeZone?: string | null;
38
41
  photo: string;
39
42
  email: string;
40
43
  favorites: number[];
@@ -129,6 +129,18 @@ __decorate([
129
129
  (0, class_transformer_1.Expose)(),
130
130
  __metadata("design:type", String)
131
131
  ], PlayerRO.prototype, "phone", void 0);
132
+ __decorate([
133
+ (0, class_transformer_1.Expose)(),
134
+ __metadata("design:type", Number)
135
+ ], PlayerRO.prototype, "cityId", void 0);
136
+ __decorate([
137
+ (0, class_transformer_1.Expose)(),
138
+ __metadata("design:type", String)
139
+ ], PlayerRO.prototype, "cityTitle", void 0);
140
+ __decorate([
141
+ (0, class_transformer_1.Expose)(),
142
+ __metadata("design:type", String)
143
+ ], PlayerRO.prototype, "timeZone", void 0);
132
144
  __decorate([
133
145
  (0, class_transformer_1.Expose)(),
134
146
  __metadata("design:type", String)
@@ -1,5 +1,7 @@
1
1
  import { ProfileLostReasonEnum } from '../enum/profile-lost-reason.enum';
2
+ import { ProfilePartnerBoardStatus } from '../enum/profile-partner-board-status.enum';
2
3
  import { ProfileSalesStatus } from '../enum/profile-sales-status.enum';
4
+ import { ProfileVerificationBoardStatus } from '../enum/profile-verification-board-status.enum';
3
5
  export declare class CreateProfileActionRO {
4
6
  profileId: number;
5
7
  type: string;
@@ -10,4 +12,8 @@ export declare class CreateProfileActionRO {
10
12
  salesStatus?: ProfileSalesStatus;
11
13
  assigneeId?: number;
12
14
  lostReason?: ProfileLostReasonEnum;
15
+ /** Колонка доски верификации. Ставится действием с этой доски, не из сейлз. */
16
+ verificationBoardStatus?: ProfileVerificationBoardStatus;
17
+ /** Колонка доски заявок на партнёрку. */
18
+ partnerBoardStatus?: ProfilePartnerBoardStatus;
13
19
  }
@@ -14,7 +14,9 @@ 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
16
  const profile_lost_reason_enum_1 = require("../enum/profile-lost-reason.enum");
17
+ const profile_partner_board_status_enum_1 = require("../enum/profile-partner-board-status.enum");
17
18
  const profile_sales_status_enum_1 = require("../enum/profile-sales-status.enum");
19
+ const profile_verification_board_status_enum_1 = require("../enum/profile-verification-board-status.enum");
18
20
  class CreateProfileActionRO {
19
21
  }
20
22
  exports.CreateProfileActionRO = CreateProfileActionRO;
@@ -70,3 +72,15 @@ __decorate([
70
72
  (0, class_transformer_1.Expose)(),
71
73
  __metadata("design:type", String)
72
74
  ], CreateProfileActionRO.prototype, "lostReason", void 0);
75
+ __decorate([
76
+ (0, class_validator_1.IsOptional)(),
77
+ (0, class_validator_1.IsEnum)(profile_verification_board_status_enum_1.ProfileVerificationBoardStatus),
78
+ (0, class_transformer_1.Expose)(),
79
+ __metadata("design:type", String)
80
+ ], CreateProfileActionRO.prototype, "verificationBoardStatus", void 0);
81
+ __decorate([
82
+ (0, class_validator_1.IsOptional)(),
83
+ (0, class_validator_1.IsEnum)(profile_partner_board_status_enum_1.ProfilePartnerBoardStatus),
84
+ (0, class_transformer_1.Expose)(),
85
+ __metadata("design:type", String)
86
+ ], CreateProfileActionRO.prototype, "partnerBoardStatus", void 0);
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Документы площадки для её клиентов. Площадка — оператор персональных данных
3
+ * своих клиентов, мы обрабатываем их по её поручению, поэтому политика и
4
+ * согласие должны быть от её имени, а не от имени Escape Navigator.
5
+ */
6
+ export declare enum ProfileDocumentTypeEnum {
7
+ /** Клиентское соглашение (оферта) — `/company/:slug/terms-of-services`. */
8
+ AGREEMENT = "agreement",
9
+ /** Политика обработки ПДн — `/company/:slug/privacy-policy`. */
10
+ PRIVACY_POLICY = "privacy_policy",
11
+ /**
12
+ * Согласие на обработку ПДн — `/company/:slug/personal-data-consent`.
13
+ * Только РФ: 152-ФЗ требует оформлять согласие отдельно от других
14
+ * документов. В ЕС основание — договор (GDPR 6(1)(b)), согласие не нужно.
15
+ */
16
+ PD_CONSENT = "pd_consent"
17
+ }
18
+ /** Страница `/company/:slug/<path>` в orders для каждого документа площадки. */
19
+ export declare const PROFILE_DOCUMENT_PATH: Record<ProfileDocumentTypeEnum, string>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROFILE_DOCUMENT_PATH = exports.ProfileDocumentTypeEnum = void 0;
4
+ /**
5
+ * Документы площадки для её клиентов. Площадка — оператор персональных данных
6
+ * своих клиентов, мы обрабатываем их по её поручению, поэтому политика и
7
+ * согласие должны быть от её имени, а не от имени Escape Navigator.
8
+ */
9
+ var ProfileDocumentTypeEnum;
10
+ (function (ProfileDocumentTypeEnum) {
11
+ /** Клиентское соглашение (оферта) — `/company/:slug/terms-of-services`. */
12
+ ProfileDocumentTypeEnum["AGREEMENT"] = "agreement";
13
+ /** Политика обработки ПДн — `/company/:slug/privacy-policy`. */
14
+ ProfileDocumentTypeEnum["PRIVACY_POLICY"] = "privacy_policy";
15
+ /**
16
+ * Согласие на обработку ПДн — `/company/:slug/personal-data-consent`.
17
+ * Только РФ: 152-ФЗ требует оформлять согласие отдельно от других
18
+ * документов. В ЕС основание — договор (GDPR 6(1)(b)), согласие не нужно.
19
+ */
20
+ ProfileDocumentTypeEnum["PD_CONSENT"] = "pd_consent";
21
+ })(ProfileDocumentTypeEnum || (exports.ProfileDocumentTypeEnum = ProfileDocumentTypeEnum = {}));
22
+ /** Страница `/company/:slug/<path>` в orders для каждого документа площадки. */
23
+ exports.PROFILE_DOCUMENT_PATH = {
24
+ [ProfileDocumentTypeEnum.AGREEMENT]: 'terms-of-services',
25
+ [ProfileDocumentTypeEnum.PRIVACY_POLICY]: 'privacy-policy',
26
+ [ProfileDocumentTypeEnum.PD_CONSENT]: 'personal-data-consent',
27
+ };
@@ -0,0 +1,35 @@
1
+ import { ProfileDocumentTypeEnum } from './profile-document-type.enum';
2
+ /**
3
+ * Как документ площадки попадает к клиенту:
4
+ * - `custom` — площадка написала свой текст;
5
+ * - `url` — ведём на документ на сайте площадки;
6
+ * - `standard` — стандартный текст из шаблона с реквизитами площадки
7
+ * (есть только там, где у нас есть шаблон — сейчас РФ);
8
+ * - `none` — ничего нет, публичная страница показывает политику
9
+ * Escape Navigator как запасной вариант.
10
+ */
11
+ export type ProfileDocumentMode = 'custom' | 'url' | 'standard' | 'none';
12
+ /** Документ площадки в CRM: что сохранено и что увидит клиент. */
13
+ export type ProfileDocumentRO = {
14
+ type: ProfileDocumentTypeEnum;
15
+ text: string;
16
+ url: string;
17
+ mode: ProfileDocumentMode;
18
+ /** Для `standard` — готовый текст шаблона, чтобы показать его в CRM. */
19
+ standardText?: string;
20
+ /** Каких реквизитов не хватает стандартному тексту (legalTitle, legalTaxId…). */
21
+ missingRequisites?: string[];
22
+ updatedAt?: Date | string;
23
+ };
24
+ /** Публичный документ площадки для страницы в orders. */
25
+ export type PublicProfileDocumentRO = {
26
+ type: ProfileDocumentTypeEnum;
27
+ mode: ProfileDocumentMode;
28
+ text: string;
29
+ url: string;
30
+ updatedAt?: Date | string;
31
+ profile: {
32
+ title?: string;
33
+ logo?: string;
34
+ };
35
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Пустые `text` и `url` — вернуться к стандартному документу. Заполнен `url` —
3
+ * ведём клиента на сайт площадки, `text` игнорируется.
4
+ */
5
+ export declare class UpdateProfileDocumentDto {
6
+ text?: string;
7
+ url?: string;
8
+ }