@escapenavigator/types 2.1.27 → 2.1.29

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 (107) hide show
  1. package/dist/admin/aggregator-order/update-aggregator-order.dto.d.ts +2 -0
  2. package/dist/admin/aggregator-order/update-aggregator-order.dto.js +7 -0
  3. package/dist/fiscal/fiscal-settings.ro.d.ts +1 -0
  4. package/dist/fiscal/fiscal-settings.ro.js +4 -0
  5. package/dist/fiscal/update-fiscal-settings.dto.d.ts +1 -0
  6. package/dist/fiscal/update-fiscal-settings.dto.js +6 -0
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +1 -0
  9. package/dist/openapi/profiles/enum/openapi-promocode-applies-to.enum.d.ts +5 -0
  10. package/dist/openapi/profiles/enum/openapi-promocode-applies-to.enum.js +9 -0
  11. package/dist/openapi/profiles/openapi-create-promocode.dto.d.ts +34 -0
  12. package/dist/openapi/profiles/openapi-create-promocode.dto.js +330 -0
  13. package/dist/openapi/profiles/openapi-promocode.ro.d.ts +37 -0
  14. package/dist/openapi/profiles/openapi-promocode.ro.js +187 -0
  15. package/dist/openapi/shared/openapi-get-payment-methods.ro.d.ts +5 -0
  16. package/dist/openapi/shared/openapi-get-payment-methods.ro.js +4 -0
  17. package/dist/openapi/shared/openapi-questroom.ro.d.ts +2 -0
  18. package/dist/openapi/shared/openapi-questroom.ro.js +8 -0
  19. package/dist/openapi/slots/openapi-slot-variation.ro.js +1 -1
  20. package/dist/openapi/slots/openapi-widget-slot.ro.d.ts +1 -0
  21. package/dist/openapi/slots/openapi-widget-slot.ro.js +10 -0
  22. package/dist/openapi/upsellings/openapi-upselling.ro.d.ts +2 -0
  23. package/dist/openapi/upsellings/openapi-upselling.ro.js +8 -0
  24. package/dist/openapi/widget/openapi-resolve-promocode.ro.d.ts +2 -0
  25. package/dist/openapi/widget/openapi-resolve-promocode.ro.js +4 -0
  26. package/dist/order/order.ro.d.ts +2 -0
  27. package/dist/order/order.ro.js +4 -0
  28. package/dist/order/waivers/order-to-sign.ro.d.ts +5 -0
  29. package/dist/order/waivers/order-to-sign.ro.js +8 -0
  30. package/dist/order/waivers/sign-order.dto.d.ts +11 -0
  31. package/dist/order/waivers/sign-order.dto.js +22 -2
  32. package/dist/product/product-sales-query.dto.d.ts +5 -0
  33. package/dist/product/product-sales-query.dto.js +37 -0
  34. package/dist/profile/company-ai-context.d.ts +1 -0
  35. package/dist/profile/marketing-email/preflight-issue.ro.d.ts +1 -5
  36. package/dist/profile/marketing-email/preflight-issue.ro.js +1 -5
  37. package/dist/profile/notification-chanel/notification-chanel-action.enum.d.ts +13 -1
  38. package/dist/profile/notification-chanel/notification-chanel-action.enum.js +14 -1
  39. package/dist/profile/profile.ro.d.ts +2 -0
  40. package/dist/profile/profile.ro.js +4 -0
  41. package/dist/promocode/create-promocode.dto.d.ts +7 -0
  42. package/dist/promocode/create-promocode.dto.js +9 -0
  43. package/dist/promocode/emun/promocode-discount-target.enum.d.ts +17 -0
  44. package/dist/promocode/emun/promocode-discount-target.enum.js +34 -0
  45. package/dist/promocode/promocode.ro.d.ts +2 -0
  46. package/dist/promocode/promocode.ro.js +4 -0
  47. package/dist/questroom/create-questroom.dto.d.ts +3 -0
  48. package/dist/questroom/create-questroom.dto.js +21 -0
  49. package/dist/questroom/questroom.ro.d.ts +2 -0
  50. package/dist/questroom/questroom.ro.js +8 -0
  51. package/dist/salary/assign-salary-scheme.dto.d.ts +4 -0
  52. package/dist/salary/assign-salary-scheme.dto.js +30 -0
  53. package/dist/salary/create-salary-accrual.dto.d.ts +8 -0
  54. package/dist/salary/create-salary-accrual.dto.js +48 -0
  55. package/dist/salary/create-salary-scheme.dto.d.ts +13 -0
  56. package/dist/salary/create-salary-scheme.dto.js +59 -0
  57. package/dist/salary/enum/salary-accrual-source-type.enum.d.ts +13 -0
  58. package/dist/salary/enum/salary-accrual-source-type.enum.js +18 -0
  59. package/dist/salary/enum/salary-accrual-type.enum.d.ts +12 -0
  60. package/dist/salary/enum/salary-accrual-type.enum.js +21 -0
  61. package/dist/salary/index.d.ts +15 -0
  62. package/dist/salary/index.js +31 -0
  63. package/dist/salary/query-salary-period.dto.d.ts +16 -0
  64. package/dist/salary/query-salary-period.dto.js +86 -0
  65. package/dist/salary/run-salary-accruals.dto.d.ts +5 -0
  66. package/dist/salary/run-salary-accruals.dto.js +37 -0
  67. package/dist/salary/salary-accrual.ro.d.ts +23 -0
  68. package/dist/salary/salary-accrual.ro.js +2 -0
  69. package/dist/salary/salary-my.ro.d.ts +12 -0
  70. package/dist/salary/salary-my.ro.js +2 -0
  71. package/dist/salary/salary-payout.ro.d.ts +18 -0
  72. package/dist/salary/salary-payout.ro.js +2 -0
  73. package/dist/salary/salary-preview.ro.d.ts +31 -0
  74. package/dist/salary/salary-preview.ro.js +2 -0
  75. package/dist/salary/salary-scheme.ro.d.ts +25 -0
  76. package/dist/salary/salary-scheme.ro.js +2 -0
  77. package/dist/salary/salary-settings.dto.d.ts +6 -0
  78. package/dist/salary/salary-settings.dto.js +22 -0
  79. package/dist/salary/salary-summary.ro.d.ts +37 -0
  80. package/dist/salary/salary-summary.ro.js +2 -0
  81. package/dist/salary/update-salary-scheme.dto.d.ts +4 -0
  82. package/dist/salary/update-salary-scheme.dto.js +25 -0
  83. package/dist/shared/card-badge.d.ts +9 -0
  84. package/dist/shared/card-badge.js +18 -0
  85. package/dist/slot/enum/prepayment-collection.enum.d.ts +7 -0
  86. package/dist/slot/enum/prepayment-collection.enum.js +11 -0
  87. package/dist/slot-rule/create-rule.dto.d.ts +2 -0
  88. package/dist/slot-rule/create-rule.dto.js +8 -0
  89. package/dist/slot-rule/defailt-rule.d.ts +2 -0
  90. package/dist/slot-rule/defailt-rule.js +2 -0
  91. package/dist/slot-rule/rule.ro.d.ts +2 -0
  92. package/dist/slot-rule/rule.ro.js +5 -0
  93. package/dist/statistics/bookings.d.ts +14 -0
  94. package/dist/statistics/products.d.ts +18 -0
  95. package/dist/statistics/products.js +2 -0
  96. package/dist/transaction/create-transaction.dto.d.ts +2 -0
  97. package/dist/transaction/create-transaction.dto.js +14 -0
  98. package/dist/transaction/transaction.ro.d.ts +2 -0
  99. package/dist/transaction/transaction.ro.js +8 -0
  100. package/dist/tsconfig.build.tsbuildinfo +1 -1
  101. package/dist/upselling/create-upselling.dto.d.ts +7 -1
  102. package/dist/upselling/create-upselling.dto.js +21 -0
  103. package/dist/upselling/upselling.ro.d.ts +2 -0
  104. package/dist/upselling/upselling.ro.js +8 -0
  105. package/dist/user/crud/user-light.ro.d.ts +3 -1
  106. package/dist/user/crud/user-light.ro.js +5 -1
  107. package/package.json +2 -2
@@ -0,0 +1,187 @@
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.OpenapiPromocodeRO = exports.OpenapiPromocodeNominalRuleRO = void 0;
13
+ /* eslint-disable max-classes-per-file */
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const class_transformer_1 = require("class-transformer");
16
+ const promocode_certificate_mode_enum_1 = require("../../promocode/emun/promocode-certificate-mode.enum");
17
+ const promocode_discount_target_enum_1 = require("../../promocode/emun/promocode-discount-target.enum");
18
+ const promocode_type_enum_1 = require("../../promocode/emun/promocode-type.enum");
19
+ const openapi_promocode_applies_to_enum_1 = require("./enum/openapi-promocode-applies-to.enum");
20
+ class OpenapiPromocodeNominalRuleRO {
21
+ }
22
+ exports.OpenapiPromocodeNominalRuleRO = OpenapiPromocodeNominalRuleRO;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, swagger_1.ApiProperty)({ example: 12 }),
26
+ __metadata("design:type", Number)
27
+ ], OpenapiPromocodeNominalRuleRO.prototype, "nominalId", void 0);
28
+ __decorate([
29
+ (0, class_transformer_1.Expose)(),
30
+ (0, swagger_1.ApiProperty)({
31
+ example: 1000,
32
+ description: 'Amount in minor currency units. Meaning depends on `certificateMode`.',
33
+ }),
34
+ __metadata("design:type", Number)
35
+ ], OpenapiPromocodeNominalRuleRO.prototype, "amount", void 0);
36
+ class OpenapiPromocodeRO {
37
+ }
38
+ exports.OpenapiPromocodeRO = OpenapiPromocodeRO;
39
+ __decorate([
40
+ (0, class_transformer_1.Expose)(),
41
+ (0, swagger_1.ApiProperty)({ example: 501, description: 'Escape Navigator internal promocode id.' }),
42
+ __metadata("design:type", Number)
43
+ ], OpenapiPromocodeRO.prototype, "promocodeId", void 0);
44
+ __decorate([
45
+ (0, class_transformer_1.Expose)(),
46
+ (0, swagger_1.ApiProperty)({ example: 'SUMMER26' }),
47
+ __metadata("design:type", String)
48
+ ], OpenapiPromocodeRO.prototype, "code", void 0);
49
+ __decorate([
50
+ (0, class_transformer_1.Expose)(),
51
+ (0, swagger_1.ApiProperty)({ example: 'Summer campaign, 10% off games' }),
52
+ __metadata("design:type", String)
53
+ ], OpenapiPromocodeRO.prototype, "description", void 0);
54
+ __decorate([
55
+ (0, class_transformer_1.Expose)(),
56
+ (0, swagger_1.ApiProperty)({
57
+ enum: openapi_promocode_applies_to_enum_1.OpenapiPromocodeAppliesToEnum,
58
+ example: openapi_promocode_applies_to_enum_1.OpenapiPromocodeAppliesToEnum.BOOKINGS,
59
+ }),
60
+ __metadata("design:type", String)
61
+ ], OpenapiPromocodeRO.prototype, "appliesTo", void 0);
62
+ __decorate([
63
+ (0, class_transformer_1.Expose)(),
64
+ (0, swagger_1.ApiProperty)({ enum: promocode_type_enum_1.PromocodeTypeEnum, example: promocode_type_enum_1.PromocodeTypeEnum.PERCENT_ALL_SUM }),
65
+ __metadata("design:type", String)
66
+ ], OpenapiPromocodeRO.prototype, "type", void 0);
67
+ __decorate([
68
+ (0, class_transformer_1.Expose)(),
69
+ (0, swagger_1.ApiProperty)({
70
+ example: 1000,
71
+ description: 'Booking discount in the same units as on create. `0` for promotional and certificate promocodes.',
72
+ }),
73
+ __metadata("design:type", Number)
74
+ ], OpenapiPromocodeRO.prototype, "discount", void 0);
75
+ __decorate([
76
+ (0, class_transformer_1.Expose)(),
77
+ (0, swagger_1.ApiProperty)({ enum: promocode_discount_target_enum_1.PromocodeDiscountTargetEnum, isArray: true }),
78
+ __metadata("design:type", Array)
79
+ ], OpenapiPromocodeRO.prototype, "discountTargets", void 0);
80
+ __decorate([
81
+ (0, class_transformer_1.Expose)(),
82
+ (0, swagger_1.ApiProperty)({ example: true }),
83
+ __metadata("design:type", Boolean)
84
+ ], OpenapiPromocodeRO.prototype, "multiple", void 0);
85
+ __decorate([
86
+ (0, class_transformer_1.Expose)(),
87
+ (0, swagger_1.ApiProperty)({
88
+ example: 100,
89
+ nullable: true,
90
+ description: 'Total use limit. `null` means unlimited (or a single use when `multiple` is false).',
91
+ }),
92
+ __metadata("design:type", Number)
93
+ ], OpenapiPromocodeRO.prototype, "maxApplyings", void 0);
94
+ __decorate([
95
+ (0, class_transformer_1.Expose)(),
96
+ (0, swagger_1.ApiProperty)({ example: false }),
97
+ __metadata("design:type", Boolean)
98
+ ], OpenapiPromocodeRO.prototype, "canUseWithOtherPromocodes", void 0);
99
+ __decorate([
100
+ (0, class_transformer_1.Expose)(),
101
+ (0, swagger_1.ApiProperty)({ example: true }),
102
+ __metadata("design:type", Boolean)
103
+ ], OpenapiPromocodeRO.prototype, "canUseWithOtherCertificates", void 0);
104
+ __decorate([
105
+ (0, class_transformer_1.Expose)(),
106
+ (0, swagger_1.ApiProperty)({ example: false }),
107
+ __metadata("design:type", Boolean)
108
+ ], OpenapiPromocodeRO.prototype, "onlinePaymentOnly", void 0);
109
+ __decorate([
110
+ (0, class_transformer_1.Expose)(),
111
+ (0, swagger_1.ApiProperty)({ example: '2026-06-01', nullable: true }),
112
+ __metadata("design:type", String)
113
+ ], OpenapiPromocodeRO.prototype, "validFrom", void 0);
114
+ __decorate([
115
+ (0, class_transformer_1.Expose)(),
116
+ (0, swagger_1.ApiProperty)({ example: '2026-08-31', nullable: true }),
117
+ __metadata("design:type", String)
118
+ ], OpenapiPromocodeRO.prototype, "validTo", void 0);
119
+ __decorate([
120
+ (0, class_transformer_1.Expose)(),
121
+ (0, swagger_1.ApiProperty)({ example: null, nullable: true }),
122
+ __metadata("design:type", String)
123
+ ], OpenapiPromocodeRO.prototype, "forOrdersFrom", void 0);
124
+ __decorate([
125
+ (0, class_transformer_1.Expose)(),
126
+ (0, swagger_1.ApiProperty)({ example: null, nullable: true }),
127
+ __metadata("design:type", String)
128
+ ], OpenapiPromocodeRO.prototype, "forOrdersTo", void 0);
129
+ __decorate([
130
+ (0, class_transformer_1.Expose)(),
131
+ (0, swagger_1.ApiProperty)({ example: '00:00' }),
132
+ __metadata("design:type", String)
133
+ ], OpenapiPromocodeRO.prototype, "availableFrom", void 0);
134
+ __decorate([
135
+ (0, class_transformer_1.Expose)(),
136
+ (0, swagger_1.ApiProperty)({ example: '23:55' }),
137
+ __metadata("design:type", String)
138
+ ], OpenapiPromocodeRO.prototype, "availableTo", void 0);
139
+ __decorate([
140
+ (0, class_transformer_1.Expose)(),
141
+ (0, swagger_1.ApiProperty)({ example: [0, 1, 2, 3, 4, 5, 6], description: '`0` is Monday … `6` is Sunday.' }),
142
+ __metadata("design:type", Array)
143
+ ], OpenapiPromocodeRO.prototype, "availableDays", void 0);
144
+ __decorate([
145
+ (0, class_transformer_1.Expose)(),
146
+ (0, swagger_1.ApiProperty)({
147
+ example: true,
148
+ description: '`true` when the code is not limited to specific rooms.',
149
+ }),
150
+ __metadata("design:type", Boolean)
151
+ ], OpenapiPromocodeRO.prototype, "allQuestrooms", void 0);
152
+ __decorate([
153
+ (0, class_transformer_1.Expose)(),
154
+ (0, swagger_1.ApiProperty)({ example: [], description: 'Empty when `allQuestrooms` is true.' }),
155
+ __metadata("design:type", Array)
156
+ ], OpenapiPromocodeRO.prototype, "questroomIds", void 0);
157
+ __decorate([
158
+ (0, class_transformer_1.Expose)(),
159
+ (0, swagger_1.ApiProperty)({ example: null, nullable: true }),
160
+ __metadata("design:type", Number)
161
+ ], OpenapiPromocodeRO.prototype, "minPlayers", void 0);
162
+ __decorate([
163
+ (0, class_transformer_1.Expose)(),
164
+ (0, swagger_1.ApiProperty)({ example: null, nullable: true }),
165
+ __metadata("design:type", Number)
166
+ ], OpenapiPromocodeRO.prototype, "maxPlayers", void 0);
167
+ __decorate([
168
+ (0, class_transformer_1.Expose)(),
169
+ (0, swagger_1.ApiProperty)({ example: null, nullable: true }),
170
+ __metadata("design:type", String)
171
+ ], OpenapiPromocodeRO.prototype, "clientDescription", void 0);
172
+ __decorate([
173
+ (0, class_transformer_1.Expose)(),
174
+ (0, swagger_1.ApiProperty)({ enum: promocode_certificate_mode_enum_1.PromocodeCertificateModeEnum, nullable: true }),
175
+ __metadata("design:type", String)
176
+ ], OpenapiPromocodeRO.prototype, "certificateMode", void 0);
177
+ __decorate([
178
+ (0, class_transformer_1.Expose)(),
179
+ (0, class_transformer_1.Type)(() => OpenapiPromocodeNominalRuleRO),
180
+ (0, swagger_1.ApiProperty)({ type: [OpenapiPromocodeNominalRuleRO] }),
181
+ __metadata("design:type", Array)
182
+ ], OpenapiPromocodeRO.prototype, "certificateNominalRules", void 0);
183
+ __decorate([
184
+ (0, class_transformer_1.Expose)(),
185
+ (0, swagger_1.ApiProperty)({ example: '2026-06-01T12:00:00.000Z' }),
186
+ __metadata("design:type", Date)
187
+ ], OpenapiPromocodeRO.prototype, "createdAt", void 0);
@@ -8,6 +8,11 @@ export declare class OpenapiGetPaymentMethodsRO {
8
8
  method: PaymentMethodEnum;
9
9
  /** Чем принимают на площадке. Только у `cash`. */
10
10
  onSitePaymentMethods?: OnSitePaymentMethodEnum[];
11
+ /**
12
+ * Кнопка «Оплатить на месте» рядом с онлайн-оплатой.
13
+ * Ставится на cash, когда предоплата берётся после брони.
14
+ */
15
+ payOnSite?: boolean;
11
16
  squareAppId?: string;
12
17
  squareLocationId?: string;
13
18
  full: Format;
@@ -34,6 +34,10 @@ __decorate([
34
34
  (0, class_transformer_1.Expose)(),
35
35
  __metadata("design:type", Array)
36
36
  ], OpenapiGetPaymentMethodsRO.prototype, "onSitePaymentMethods", void 0);
37
+ __decorate([
38
+ (0, class_transformer_1.Expose)(),
39
+ __metadata("design:type", Boolean)
40
+ ], OpenapiGetPaymentMethodsRO.prototype, "payOnSite", void 0);
37
41
  __decorate([
38
42
  (0, class_transformer_1.Expose)(),
39
43
  __metadata("design:type", String)
@@ -86,6 +86,8 @@ export declare class OpenapiQuestroomRO {
86
86
  playersSelectMode: PlayersSelectModeEnum;
87
87
  slotStepMinutes: number;
88
88
  questOpeningDate?: string;
89
+ badge?: string | null;
90
+ badgeColor?: string | null;
89
91
  }
90
92
  export declare class QuestroomRow {
91
93
  questroom: OpenapiQuestroomRO;
@@ -272,6 +272,14 @@ __decorate([
272
272
  (0, class_transformer_1.Expose)(),
273
273
  __metadata("design:type", String)
274
274
  ], OpenapiQuestroomRO.prototype, "questOpeningDate", void 0);
275
+ __decorate([
276
+ (0, class_transformer_1.Expose)(),
277
+ __metadata("design:type", String)
278
+ ], OpenapiQuestroomRO.prototype, "badge", void 0);
279
+ __decorate([
280
+ (0, class_transformer_1.Expose)(),
281
+ __metadata("design:type", String)
282
+ ], OpenapiQuestroomRO.prototype, "badgeColor", void 0);
275
283
  class QuestroomRow {
276
284
  }
277
285
  exports.QuestroomRow = QuestroomRow;
@@ -168,7 +168,7 @@ __decorate([
168
168
  ], OpenapiSlotVariationRO.prototype, "minPlayers", void 0);
169
169
  __decorate([
170
170
  (0, swagger_1.ApiProperty)({
171
- description: 'Maximum number of players that can book this variation',
171
+ description: 'Maximum players for this variation. On the public booking path this is the quest setting (`playersMax`). In CRM it is the highest priced team size on the tariff, which may be higher.',
172
172
  example: 6,
173
173
  }),
174
174
  (0, class_transformer_1.Expose)(),
@@ -14,6 +14,7 @@ export declare class OpenapiSlotRO {
14
14
  date: string;
15
15
  end?: string;
16
16
  numSeatsAvailable?: number;
17
+ availableTeams?: number | null;
17
18
  discount?: number;
18
19
  discountType?: SlotDiscountTypeEnum;
19
20
  onlyPhone?: boolean;
@@ -127,6 +127,16 @@ __decorate([
127
127
  (0, class_transformer_1.Expose)(),
128
128
  __metadata("design:type", Number)
129
129
  ], OpenapiSlotRO.prototype, "numSeatsAvailable", void 0);
130
+ __decorate([
131
+ (0, swagger_1.ApiProperty)({
132
+ description: 'How many more parallel games still fit at this time. Set for ticket rooms that limit the number of games, not only seats. Null when there is no such limit.',
133
+ required: false,
134
+ nullable: true,
135
+ example: 4,
136
+ }),
137
+ (0, class_transformer_1.Expose)(),
138
+ __metadata("design:type", Number)
139
+ ], OpenapiSlotRO.prototype, "availableTeams", void 0);
130
140
  __decorate([
131
141
  (0, swagger_1.ApiProperty)({
132
142
  description: 'Discount applied to the slot. With `discountType: percent` the value is in basis points (1500 = 15%); with `discountType: fixed` it is an amount in minor currency units subtracted once per booking.',
@@ -15,4 +15,6 @@ export declare class OpenapiUpsellingRO {
15
15
  fullPayment: boolean;
16
16
  clientCanRemove: boolean;
17
17
  popular: boolean;
18
+ badge?: string | null;
19
+ badgeColor?: string | null;
18
20
  }
@@ -78,3 +78,11 @@ __decorate([
78
78
  (0, class_transformer_1.Expose)(),
79
79
  __metadata("design:type", Boolean)
80
80
  ], OpenapiUpsellingRO.prototype, "popular", void 0);
81
+ __decorate([
82
+ (0, class_transformer_1.Expose)(),
83
+ __metadata("design:type", String)
84
+ ], OpenapiUpsellingRO.prototype, "badge", void 0);
85
+ __decorate([
86
+ (0, class_transformer_1.Expose)(),
87
+ __metadata("design:type", String)
88
+ ], OpenapiUpsellingRO.prototype, "badgeColor", void 0);
@@ -1,4 +1,5 @@
1
1
  import { PromocodeCertificateModeEnum } from '../../promocode/emun/promocode-certificate-mode.enum';
2
+ import { PromocodeDiscountTargetEnum } from '../../promocode/emun/promocode-discount-target.enum';
2
3
  import { PromocodeTypeEnum } from '../../promocode/emun/promocode-type.enum';
3
4
  import { PromocodeNominalRule } from '../../promocode/promocode-nominal-rule';
4
5
  /**
@@ -12,6 +13,7 @@ export declare class OpenapiPromocodeWidgetRO {
12
13
  code: string;
13
14
  type: PromocodeTypeEnum;
14
15
  discount: number;
16
+ discountTargets: PromocodeDiscountTargetEnum[];
15
17
  clientDescription?: string;
16
18
  availableForBookings: boolean;
17
19
  availableForCertificates: boolean;
@@ -39,6 +39,10 @@ __decorate([
39
39
  (0, class_transformer_1.Expose)(),
40
40
  __metadata("design:type", Number)
41
41
  ], OpenapiPromocodeWidgetRO.prototype, "discount", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ __metadata("design:type", Array)
45
+ ], OpenapiPromocodeWidgetRO.prototype, "discountTargets", void 0);
42
46
  __decorate([
43
47
  (0, class_transformer_1.Expose)(),
44
48
  __metadata("design:type", String)
@@ -363,5 +363,7 @@ export declare class OrderRO extends RO {
363
363
  * POST /orders/:id/closing-document. Не платёж — в payed/toPay не участвует.
364
364
  */
365
365
  closingDocumentLink?: string | null;
366
+ /** Ссылка клиента на управление бронью (orders). Считается в findOne. */
367
+ bookingManagementUrl?: string;
366
368
  }
367
369
  export {};
@@ -814,3 +814,7 @@ __decorate([
814
814
  (0, class_transformer_1.Expose)(),
815
815
  __metadata("design:type", String)
816
816
  ], OrderRO.prototype, "closingDocumentLink", void 0);
817
+ __decorate([
818
+ (0, class_transformer_1.Expose)(),
819
+ __metadata("design:type", String)
820
+ ], OrderRO.prototype, "bookingManagementUrl", void 0);
@@ -21,6 +21,11 @@ declare class Participant {
21
21
  surname: string;
22
22
  patronymic?: string;
23
23
  email: string;
24
+ /**
25
+ * Саму дату на публичную страницу подписания не отдаём — только факт,
26
+ * чтобы спросить её, если в карточке пусто.
27
+ */
28
+ hasBirthday: boolean;
24
29
  }
25
30
  declare class OrderParticipant {
26
31
  id: number;
@@ -66,6 +66,14 @@ __decorate([
66
66
  (0, class_transformer_1.Expose)(),
67
67
  __metadata("design:type", String)
68
68
  ], Participant.prototype, "email", void 0);
69
+ __decorate([
70
+ (0, class_transformer_1.Expose)(),
71
+ (0, class_transformer_1.Transform)(({ obj }) => {
72
+ const birthday = obj === null || obj === void 0 ? void 0 : obj.birthday;
73
+ return typeof birthday === 'string' && birthday.trim().length > 0;
74
+ }),
75
+ __metadata("design:type", Boolean)
76
+ ], Participant.prototype, "hasBirthday", void 0);
69
77
  class OrderParticipant {
70
78
  }
71
79
  __decorate([
@@ -13,6 +13,12 @@ declare class Minor extends ChildRelation {
13
13
  }
14
14
  declare class ExistingChild extends ChildRelation {
15
15
  id: number;
16
+ /**
17
+ * Форма ставит true, если у ребёнка в карточке нет даты рождения
18
+ * и её нужно дописать с вейвера.
19
+ */
20
+ askBirthday?: boolean;
21
+ birthday?: string;
16
22
  }
17
23
  export declare class SignOrderDTO {
18
24
  agree: boolean;
@@ -30,6 +36,11 @@ export declare class SignOrderDTO {
30
36
  sendAds: boolean;
31
37
  email: string;
32
38
  phone: string;
39
+ /**
40
+ * Форма ставит true, когда выбран уже существующий участник без даты
41
+ * рождения и шаблон вейвера эту дату спрашивает.
42
+ */
43
+ askBirthday?: boolean;
33
44
  birthday: string;
34
45
  address: string;
35
46
  existingChilds: ExistingChild[];
@@ -68,6 +68,19 @@ __decorate([
68
68
  (0, class_transformer_1.Expose)(),
69
69
  __metadata("design:type", Number)
70
70
  ], ExistingChild.prototype, "id", void 0);
71
+ __decorate([
72
+ (0, class_validator_1.IsOptional)(),
73
+ (0, class_validator_1.IsBoolean)(),
74
+ (0, class_transformer_1.Expose)(),
75
+ __metadata("design:type", Boolean)
76
+ ], ExistingChild.prototype, "askBirthday", void 0);
77
+ __decorate([
78
+ (0, class_validator_1.ValidateIf)((child) => !!child.askBirthday || !!child.birthday),
79
+ (0, is_not_blank_1.IsNotBlank)(),
80
+ (0, ins_minor_1.IsMinor)(),
81
+ (0, class_transformer_1.Expose)(),
82
+ __metadata("design:type", String)
83
+ ], ExistingChild.prototype, "birthday", void 0);
71
84
  class SignOrderDTO {
72
85
  }
73
86
  exports.SignOrderDTO = SignOrderDTO;
@@ -161,9 +174,16 @@ __decorate([
161
174
  __metadata("design:type", String)
162
175
  ], SignOrderDTO.prototype, "phone", void 0);
163
176
  __decorate([
164
- (0, class_validator_1.ValidateIf)(({ existingParticipantId, waiverFields }) => !existingParticipantId &&
177
+ (0, class_validator_1.IsOptional)(),
178
+ (0, class_validator_1.IsBoolean)(),
179
+ (0, class_transformer_1.Expose)(),
180
+ __metadata("design:type", Boolean)
181
+ ], SignOrderDTO.prototype, "askBirthday", void 0);
182
+ __decorate([
183
+ (0, class_validator_1.ValidateIf)(({ existingParticipantId, waiverFields, askBirthday }) => (!existingParticipantId &&
165
184
  Array.isArray(waiverFields) &&
166
- waiverFields.includes(widget_booking_filed_enum_1.WidgetBookingFiledEnum.BIRTHDAY)),
185
+ waiverFields.includes(widget_booking_filed_enum_1.WidgetBookingFiledEnum.BIRTHDAY)) ||
186
+ (!!existingParticipantId && !!askBirthday)),
167
187
  (0, is_not_blank_1.IsNotBlank)(),
168
188
  (0, class_transformer_1.Expose)(),
169
189
  __metadata("design:type", String)
@@ -0,0 +1,5 @@
1
+ export declare class ProductSalesFilterDto {
2
+ date?: [string, string];
3
+ locationId?: number;
4
+ productId?: number;
5
+ }
@@ -0,0 +1,37 @@
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.ProductSalesFilterDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ class ProductSalesFilterDto {
16
+ }
17
+ exports.ProductSalesFilterDto = ProductSalesFilterDto;
18
+ __decorate([
19
+ (0, class_transformer_1.Expose)(),
20
+ (0, class_validator_1.IsOptional)(),
21
+ (0, class_transformer_1.Transform)(({ value }) => (Array.isArray(value) ? value : ['', ''])),
22
+ __metadata("design:type", Array)
23
+ ], ProductSalesFilterDto.prototype, "date", void 0);
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsOptional)(),
27
+ (0, class_transformer_1.Type)(() => Number),
28
+ (0, class_validator_1.IsInt)(),
29
+ __metadata("design:type", Number)
30
+ ], ProductSalesFilterDto.prototype, "locationId", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_transformer_1.Type)(() => Number),
35
+ (0, class_validator_1.IsInt)(),
36
+ __metadata("design:type", Number)
37
+ ], ProductSalesFilterDto.prototype, "productId", void 0);
@@ -54,6 +54,7 @@ export type CompanyAiContext = {
54
54
  booking?: {
55
55
  prepaymentType: PrepaymentTypeEnum;
56
56
  prepayment: number;
57
+ prepaymentCollection?: 'widget' | 'after_booking';
57
58
  partialPrepaymentOnly?: boolean;
58
59
  currency?: string;
59
60
  freeCancelHours?: number;
@@ -41,11 +41,7 @@ export declare enum PreflightIssueCodeEnum {
41
41
  * должен узнать об этом до нажатия «Отправить», а не из отчёта.
42
42
  */
43
43
  QuietHours = "quiet_hours",
44
- /**
45
- * Аудитория больше суточного лимита прогрева домена — отправка
46
- * растянется на несколько дней. Предупреждение: письма не теряются,
47
- * но пользователь должен понимать, почему «отправлено» растёт медленно.
48
- */
44
+ /** @deprecated Код сохранён для совместимости; теперь это общий лимит 50/24ч. */
49
45
  DomainWarmup = "domain_warmup"
50
46
  }
51
47
  export declare class PreflightIssueRO {
@@ -56,11 +56,7 @@ var PreflightIssueCodeEnum;
56
56
  * должен узнать об этом до нажатия «Отправить», а не из отчёта.
57
57
  */
58
58
  PreflightIssueCodeEnum["QuietHours"] = "quiet_hours";
59
- /**
60
- * Аудитория больше суточного лимита прогрева домена — отправка
61
- * растянется на несколько дней. Предупреждение: письма не теряются,
62
- * но пользователь должен понимать, почему «отправлено» растёт медленно.
63
- */
59
+ /** @deprecated Код сохранён для совместимости; теперь это общий лимит 50/24ч. */
64
60
  PreflightIssueCodeEnum["DomainWarmup"] = "domain_warmup";
65
61
  })(PreflightIssueCodeEnum || (exports.PreflightIssueCodeEnum = PreflightIssueCodeEnum = {}));
66
62
  class PreflightIssueRO {
@@ -21,7 +21,13 @@ export declare enum NotificationTriggerEnum {
21
21
  * «оставить заявку» в записи или подбор пакета. Заявки, созданные
22
22
  * сотрудником вручную, событие не поднимают.
23
23
  */
24
- NEW_LEAD = "new-lead"
24
+ NEW_LEAD = "new-lead",
25
+ /**
26
+ * Гость подписал вейвер. Один POST — одно событие: подпись покрывает
27
+ * подписанта и всех, кого он вписал в этот раз. Письма сотруднику нет,
28
+ * уходят вебхук и мессенджеры.
29
+ */
30
+ WAIVER_SIGNED = "waiver-signed"
25
31
  }
26
32
  /**
27
33
  * События, payload которых строится вокруг продажи сертификата, а не заказа.
@@ -35,3 +41,9 @@ export declare const isCertificateNotificationTrigger: (trigger: NotificationTri
35
41
  * он его нигде не видит.
36
42
  */
37
43
  export declare const isLeadNotificationTrigger: (trigger: NotificationTriggerEnum) => trigger is NotificationTriggerEnum.NEW_LEAD;
44
+ export declare const isWaiverNotificationTrigger: (trigger: NotificationTriggerEnum) => trigger is NotificationTriggerEnum.WAIVER_SIGNED;
45
+ /**
46
+ * События, по которым сотруднику уходит письмо. Вейвер в этот список не
47
+ * входит: отдельного письма нет, и чекбокс в почте ничего бы не слал.
48
+ */
49
+ export declare const STAFF_EMAIL_NOTIFICATION_TRIGGERS: (NotificationTriggerEnum.NEW_ORDER | NotificationTriggerEnum.UPDATE_ORDER_DATE | NotificationTriggerEnum.CANCEL_ORDER | NotificationTriggerEnum.ASSIGNMENTS | NotificationTriggerEnum.CERTIFICATE_SALES | NotificationTriggerEnum.UNASSIGNMENTS | NotificationTriggerEnum.ORDER_PAID_VIA_ORDERS | NotificationTriggerEnum.CERTIFICATE_UPDATED | NotificationTriggerEnum.CERTIFICATE_ANNUL | NotificationTriggerEnum.NEW_LEAD)[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLeadNotificationTrigger = exports.isCertificateNotificationTrigger = exports.CERTIFICATE_NOTIFICATION_TRIGGERS = exports.NotificationTriggerEnum = void 0;
3
+ exports.STAFF_EMAIL_NOTIFICATION_TRIGGERS = exports.isWaiverNotificationTrigger = exports.isLeadNotificationTrigger = exports.isCertificateNotificationTrigger = exports.CERTIFICATE_NOTIFICATION_TRIGGERS = exports.NotificationTriggerEnum = void 0;
4
4
  var NotificationTriggerEnum;
5
5
  (function (NotificationTriggerEnum) {
6
6
  NotificationTriggerEnum["NEW_ORDER"] = "new-order";
@@ -26,6 +26,12 @@ var NotificationTriggerEnum;
26
26
  * сотрудником вручную, событие не поднимают.
27
27
  */
28
28
  NotificationTriggerEnum["NEW_LEAD"] = "new-lead";
29
+ /**
30
+ * Гость подписал вейвер. Один POST — одно событие: подпись покрывает
31
+ * подписанта и всех, кого он вписал в этот раз. Письма сотруднику нет,
32
+ * уходят вебхук и мессенджеры.
33
+ */
34
+ NotificationTriggerEnum["WAIVER_SIGNED"] = "waiver-signed";
29
35
  })(NotificationTriggerEnum || (exports.NotificationTriggerEnum = NotificationTriggerEnum = {}));
30
36
  /**
31
37
  * События, payload которых строится вокруг продажи сертификата, а не заказа.
@@ -45,3 +51,10 @@ exports.isCertificateNotificationTrigger = isCertificateNotificationTrigger;
45
51
  */
46
52
  const isLeadNotificationTrigger = (trigger) => trigger === NotificationTriggerEnum.NEW_LEAD;
47
53
  exports.isLeadNotificationTrigger = isLeadNotificationTrigger;
54
+ const isWaiverNotificationTrigger = (trigger) => trigger === NotificationTriggerEnum.WAIVER_SIGNED;
55
+ exports.isWaiverNotificationTrigger = isWaiverNotificationTrigger;
56
+ /**
57
+ * События, по которым сотруднику уходит письмо. Вейвер в этот список не
58
+ * входит: отдельного письма нет, и чекбокс в почте ничего бы не слал.
59
+ */
60
+ exports.STAFF_EMAIL_NOTIFICATION_TRIGGERS = Object.values(NotificationTriggerEnum).filter((trigger) => trigger !== NotificationTriggerEnum.WAIVER_SIGNED);
@@ -83,6 +83,8 @@ export declare class ProfileRO {
83
83
  taxIncluded: boolean;
84
84
  /** Включён ли виджет-чат для компании. */
85
85
  widgetChatEnabled: boolean;
86
+ /** Сотрудник может видеть только собственные начисления и выплаты. */
87
+ payrollSelfView: boolean;
86
88
  /** Быстрый вход по PIN на общем компьютере + блокировка CRM. */
87
89
  pinLockEnabled: boolean;
88
90
  /** Простой до блокировки, в минутах. 0 — не блокировать по простою. */
@@ -236,6 +236,10 @@ __decorate([
236
236
  (0, class_transformer_1.Expose)(),
237
237
  __metadata("design:type", Boolean)
238
238
  ], ProfileRO.prototype, "widgetChatEnabled", void 0);
239
+ __decorate([
240
+ (0, class_transformer_1.Expose)(),
241
+ __metadata("design:type", Boolean)
242
+ ], ProfileRO.prototype, "payrollSelfView", void 0);
239
243
  __decorate([
240
244
  (0, class_transformer_1.Expose)(),
241
245
  (0, class_transformer_1.Transform)(({ value }) => value !== null && value !== void 0 ? value : true),
@@ -1,4 +1,5 @@
1
1
  import { PromocodeCertificateModeEnum } from './emun/promocode-certificate-mode.enum';
2
+ import { PromocodeDiscountTargetEnum } from './emun/promocode-discount-target.enum';
2
3
  import { PromocodeKindEnum } from './emun/promocode-kind.enum';
3
4
  import { PromocodeTypeEnum } from './emun/promocode-type.enum';
4
5
  export declare class PromocodeNominalRuleDto {
@@ -25,6 +26,12 @@ export declare class CreatePromocodeDto {
25
26
  forOrdersFrom: string;
26
27
  forOrdersTo: string;
27
28
  type: PromocodeTypeEnum;
29
+ /**
30
+ * Части игрового заказа, на которые действует денежная скидка.
31
+ * Отсутствующее значение мапится из legacy-типа промокода, чтобы старые
32
+ * клиенты API сохраняли прежнее поведение до обновления.
33
+ */
34
+ discountTargets: PromocodeDiscountTargetEnum[];
28
35
  discount: number;
29
36
  clientDescription?: string;
30
37
  allQuestrooms: boolean;
@@ -14,6 +14,7 @@ const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const weekday_indexes_1 = require("../shared/weekday-indexes");
16
16
  const promocode_certificate_mode_enum_1 = require("./emun/promocode-certificate-mode.enum");
17
+ const promocode_discount_target_enum_1 = require("./emun/promocode-discount-target.enum");
17
18
  const promocode_kind_enum_1 = require("./emun/promocode-kind.enum");
18
19
  const promocode_type_enum_1 = require("./emun/promocode-type.enum");
19
20
  class PromocodeNominalRuleDto {
@@ -126,6 +127,14 @@ __decorate([
126
127
  (0, class_transformer_1.Expose)(),
127
128
  __metadata("design:type", String)
128
129
  ], CreatePromocodeDto.prototype, "type", void 0);
130
+ __decorate([
131
+ (0, class_validator_1.IsArray)(),
132
+ (0, class_validator_1.ArrayNotEmpty)(),
133
+ (0, class_validator_1.IsEnum)(promocode_discount_target_enum_1.PromocodeDiscountTargetEnum, { each: true }),
134
+ (0, class_transformer_1.Transform)(({ obj, value }) => (0, promocode_discount_target_enum_1.resolvePromocodeDiscountTargets)(Array.isArray(value) ? [...new Set(value)] : undefined, obj.type)),
135
+ (0, class_transformer_1.Expose)(),
136
+ __metadata("design:type", Array)
137
+ ], CreatePromocodeDto.prototype, "discountTargets", void 0);
129
138
  __decorate([
130
139
  (0, class_transformer_1.Transform)(({ obj, value }) => {
131
140
  if (obj.type === promocode_type_enum_1.PromocodeTypeEnum.PROMOTIONAL)