@escapenavigator/types 2.0.33 → 2.0.37

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 (144) hide show
  1. package/dist/admin/aggregator-order/create-aggregator-order.dto.d.ts +1 -0
  2. package/dist/agregator/agregator-questroom.ro.d.ts +2 -0
  3. package/dist/agregator/agregator-questroom.ro.js +5 -0
  4. package/dist/certificate-sale/certificate-sale.ro.d.ts +6 -0
  5. package/dist/certificate-sale/certificate-sale.ro.js +4 -0
  6. package/dist/certificate-uploaded/certificate-uploaded.ro.d.ts +1 -1
  7. package/dist/client/client-form.dto.d.ts +5 -0
  8. package/dist/client/client-form.dto.js +9 -8
  9. package/dist/client/client.ro.d.ts +13 -0
  10. package/dist/client/client.ro.js +21 -0
  11. package/dist/constants/uploading/upload-bookeo-certificate-rows.js +2 -2
  12. package/dist/constants/uploading/upload-certificate-rows.js +1 -1
  13. package/dist/location/create-location.dto.d.ts +2 -0
  14. package/dist/location/create-location.dto.js +7 -0
  15. package/dist/location/location-light.ro.d.ts +3 -1
  16. package/dist/location/location-light.ro.js +6 -1
  17. package/dist/location/update-location-for-admin.dto.d.ts +2 -0
  18. package/dist/location/update-location-for-admin.dto.js +7 -0
  19. package/dist/log/log-title.enum.d.ts +3 -0
  20. package/dist/log/log-title.enum.js +3 -0
  21. package/dist/loyalty/adjust-bonus.dto.d.ts +14 -0
  22. package/dist/loyalty/adjust-bonus.dto.js +35 -0
  23. package/dist/loyalty/assign-client-tier.dto.d.ts +9 -0
  24. package/dist/loyalty/assign-client-tier.dto.js +29 -0
  25. package/dist/loyalty/client-loyalty.ro.d.ts +30 -0
  26. package/dist/loyalty/client-loyalty.ro.js +71 -0
  27. package/dist/loyalty/enum/loyalty-bonus-type.enum.d.ts +13 -0
  28. package/dist/loyalty/enum/loyalty-bonus-type.enum.js +17 -0
  29. package/dist/loyalty/enum/loyalty-history-mode.enum.d.ts +18 -0
  30. package/dist/loyalty/enum/loyalty-history-mode.enum.js +22 -0
  31. package/dist/loyalty/enum/loyalty-metric.enum.d.ts +12 -0
  32. package/dist/loyalty/enum/loyalty-metric.enum.js +16 -0
  33. package/dist/loyalty/enum/loyalty-program-type.enum.d.ts +12 -0
  34. package/dist/loyalty/enum/loyalty-program-type.enum.js +16 -0
  35. package/dist/loyalty/enum/loyalty-stacking.enum.d.ts +14 -0
  36. package/dist/loyalty/enum/loyalty-stacking.enum.js +18 -0
  37. package/dist/loyalty/enum/loyalty-tier-color.enum.d.ts +16 -0
  38. package/dist/loyalty/enum/loyalty-tier-color.enum.js +20 -0
  39. package/dist/loyalty/enum/loyalty-tier-source.enum.d.ts +13 -0
  40. package/dist/loyalty/enum/loyalty-tier-source.enum.js +17 -0
  41. package/dist/loyalty/loyalty-bonus.ro.d.ts +20 -0
  42. package/dist/loyalty/loyalty-bonus.ro.js +55 -0
  43. package/dist/loyalty/loyalty-presets.d.ts +45 -0
  44. package/dist/loyalty/loyalty-presets.js +30 -0
  45. package/dist/loyalty/loyalty-preview.dto.d.ts +19 -0
  46. package/dist/loyalty/loyalty-preview.dto.js +64 -0
  47. package/dist/loyalty/loyalty-preview.ro.d.ts +20 -0
  48. package/dist/loyalty/loyalty-preview.ro.js +53 -0
  49. package/dist/loyalty/loyalty-settings.dto.d.ts +51 -0
  50. package/dist/loyalty/loyalty-settings.dto.js +103 -0
  51. package/dist/loyalty/loyalty-settings.ro.d.ts +33 -0
  52. package/dist/loyalty/loyalty-settings.ro.js +67 -0
  53. package/dist/loyalty/loyalty-tier.dto.d.ts +33 -0
  54. package/dist/loyalty/loyalty-tier.dto.js +69 -0
  55. package/dist/loyalty/loyalty-tier.ro.d.ts +12 -0
  56. package/dist/loyalty/loyalty-tier.ro.js +42 -0
  57. package/dist/loyalty/pay-with-bonus.dto.d.ts +10 -0
  58. package/dist/loyalty/pay-with-bonus.dto.js +36 -0
  59. package/dist/openapi/order-groups/openapi-batch-create-preorder.dto.d.ts +3 -3
  60. package/dist/openapi/orders/openapi-order.ro.d.ts +12 -0
  61. package/dist/openapi/orders/openapi-order.ro.js +8 -0
  62. package/dist/openapi/profiles/enum/openapi-certificate-status.enum.d.ts +29 -0
  63. package/dist/openapi/profiles/enum/openapi-certificate-status.enum.js +38 -0
  64. package/dist/openapi/profiles/openapi-annul-certificate.dto.d.ts +3 -0
  65. package/dist/openapi/profiles/openapi-annul-certificate.dto.js +29 -0
  66. package/dist/openapi/profiles/openapi-certificate.ro.d.ts +33 -0
  67. package/dist/openapi/profiles/openapi-certificate.ro.js +195 -0
  68. package/dist/openapi/profiles/openapi-create-certificate.dto.d.ts +24 -0
  69. package/dist/openapi/profiles/openapi-create-certificate.dto.js +208 -0
  70. package/dist/openapi/slots/openapi-widget-slot.ro.d.ts +3 -0
  71. package/dist/openapi/slots/openapi-widget-slot.ro.js +24 -2
  72. package/dist/order/order.ro.d.ts +23 -1
  73. package/dist/order/order.ro.js +19 -0
  74. package/dist/order-discount/enum/order-discount-source.enum.d.ts +10 -0
  75. package/dist/order-discount/enum/order-discount-source.enum.js +14 -0
  76. package/dist/packages/book-package.dto.d.ts +3 -0
  77. package/dist/packages/book-package.dto.js +9 -0
  78. package/dist/packages/create-package.dto.d.ts +23 -0
  79. package/dist/packages/create-package.dto.js +81 -1
  80. package/dist/packages/package-addon.dto.d.ts +5 -0
  81. package/dist/packages/package-addon.dto.js +31 -0
  82. package/dist/packages/package-audience.enum.d.ts +6 -0
  83. package/dist/packages/package-audience.enum.js +10 -0
  84. package/dist/packages/package-feature.dto.d.ts +12 -0
  85. package/dist/packages/package-feature.dto.js +41 -0
  86. package/dist/packages/package-pricing-mode.enum.d.ts +14 -0
  87. package/dist/packages/package-pricing-mode.enum.js +18 -0
  88. package/dist/packages/package.ro.d.ts +14 -0
  89. package/dist/packages/package.ro.js +48 -0
  90. package/dist/parse-results/parse-result-payload.d.ts +23 -2
  91. package/dist/profile/company-ai-context.d.ts +2 -0
  92. package/dist/profile/contacts/create-profile-contact.dto.d.ts +5 -0
  93. package/dist/profile/contacts/create-profile-contact.dto.js +2 -1
  94. package/dist/profile/marketing-automation/marketing-automation-capabilities.js +5 -2
  95. package/dist/profile/marketing-automation/marketing-automation-config.dto.d.ts +8 -2
  96. package/dist/profile/marketing-automation/marketing-automation-config.dto.js +3 -3
  97. package/dist/profile/marketing-automation/marketing-automation-timing.d.ts +2 -2
  98. package/dist/profile/marketing-automation/marketing-automation-timing.js +2 -2
  99. package/dist/profile/notification-chanel/notification-chanel-action.enum.d.ts +16 -1
  100. package/dist/profile/notification-chanel/notification-chanel-action.enum.js +21 -1
  101. package/dist/profile/notification-chanel/notification-chanel.ro.d.ts +5 -0
  102. package/dist/profile/notification-chanel/notification-chanel.ro.js +4 -0
  103. package/dist/profile/notification-chanel/test-notification-chanel.dto.d.ts +7 -2
  104. package/dist/profile/notification-chanel/test-notification-chanel.dto.js +7 -0
  105. package/dist/profile/query-admin-profile.dto.d.ts +2 -1
  106. package/dist/profile/query-admin-profile.dto.js +1 -1
  107. package/dist/questroom/questroom-ai-context.d.ts +5 -0
  108. package/dist/shared/enum/availability.enum.d.ts +11 -0
  109. package/dist/shared/enum/availability.enum.js +15 -0
  110. package/dist/slot/bulk-update-slots.dto.d.ts +2 -0
  111. package/dist/slot/bulk-update-slots.dto.js +7 -0
  112. package/dist/slot/change-template-slots-form.dto.d.ts +3 -0
  113. package/dist/slot/change-template-slots-form.dto.js +13 -0
  114. package/dist/slot/create-slot-form.dto.d.ts +2 -0
  115. package/dist/slot/create-slot-form.dto.js +7 -0
  116. package/dist/slot/create-slot.dto.d.ts +2 -0
  117. package/dist/slot/create-slot.dto.js +7 -0
  118. package/dist/slot/daily-window-range.validator.d.ts +15 -0
  119. package/dist/slot/daily-window-range.validator.js +46 -0
  120. package/dist/slot/enum/slot-discount-type.enum.d.ts +15 -0
  121. package/dist/slot/enum/slot-discount-type.enum.js +19 -0
  122. package/dist/slot/slot-autocomplite-form.dto.d.ts +2 -0
  123. package/dist/slot/slot-autocomplite-form.dto.js +7 -0
  124. package/dist/slot/slot-discount-range.validator.d.ts +10 -0
  125. package/dist/slot/slot-discount-range.validator.js +36 -0
  126. package/dist/slot/slot.ro.d.ts +10 -0
  127. package/dist/slot/update-slot-upsellings-range.dto.d.ts +17 -0
  128. package/dist/slot/update-slot-upsellings-range.dto.js +68 -0
  129. package/dist/slot/update-slot.dto.d.ts +4 -0
  130. package/dist/slot/update-slot.dto.js +14 -0
  131. package/dist/slot-template/slot-template-element.d.ts +4 -0
  132. package/dist/slot-template/slot-template-element.js +9 -0
  133. package/dist/slot-template/slot-template-flex-rule.d.ts +8 -0
  134. package/dist/slot-template/slot-template-flex-rule.js +15 -2
  135. package/dist/tsconfig.build.tsbuildinfo +1 -1
  136. package/dist/user/crud/user.ro.d.ts +3 -0
  137. package/dist/user/crud/user.ro.js +11 -0
  138. package/dist/user/current/update-current-user-notifications.dto.d.ts +7 -0
  139. package/dist/user/current/update-current-user-notifications.dto.js +13 -0
  140. package/dist/user/enum/push-order-scope.enum.d.ts +15 -0
  141. package/dist/user/enum/push-order-scope.enum.js +19 -0
  142. package/dist/widget/enum/widget-type.enum.d.ts +3 -1
  143. package/dist/widget/enum/widget-type.enum.js +2 -0
  144. package/package.json +2 -2
@@ -0,0 +1,103 @@
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.UpdateLoyaltySettingsDto = exports.SetupLoyaltyDto = void 0;
13
+ /* eslint-disable max-classes-per-file */
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ const loyalty_history_mode_enum_1 = require("./enum/loyalty-history-mode.enum");
17
+ const loyalty_metric_enum_1 = require("./enum/loyalty-metric.enum");
18
+ const loyalty_program_type_enum_1 = require("./enum/loyalty-program-type.enum");
19
+ const loyalty_stacking_enum_1 = require("./enum/loyalty-stacking.enum");
20
+ const loyalty_tier_dto_1 = require("./loyalty-tier.dto");
21
+ /**
22
+ * Онбординг одной кнопкой: создаёт статусы из пресета, фиксирует, что
23
+ * делать с историей существующих клиентов, и включает программу.
24
+ */
25
+ class SetupLoyaltyDto {
26
+ }
27
+ exports.SetupLoyaltyDto = SetupLoyaltyDto;
28
+ __decorate([
29
+ (0, class_validator_1.IsEnum)(loyalty_program_type_enum_1.LoyaltyProgramTypeEnum),
30
+ (0, class_transformer_1.Expose)(),
31
+ __metadata("design:type", String)
32
+ ], SetupLoyaltyDto.prototype, "programType", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsEnum)(loyalty_metric_enum_1.LoyaltyMetricEnum),
35
+ (0, class_transformer_1.Expose)(),
36
+ __metadata("design:type", String)
37
+ ], SetupLoyaltyDto.prototype, "metric", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsEnum)(loyalty_history_mode_enum_1.LoyaltyHistoryModeEnum),
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", String)
42
+ ], SetupLoyaltyDto.prototype, "historyMode", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.ArrayMaxSize)(loyalty_tier_dto_1.MAX_LOYALTY_TIERS),
46
+ (0, class_validator_1.IsString)({ each: true }),
47
+ (0, class_validator_1.MaxLength)(30, { each: true }),
48
+ (0, class_transformer_1.Expose)(),
49
+ __metadata("design:type", Array)
50
+ ], SetupLoyaltyDto.prototype, "titles", void 0);
51
+ class UpdateLoyaltySettingsDto {
52
+ }
53
+ exports.UpdateLoyaltySettingsDto = UpdateLoyaltySettingsDto;
54
+ __decorate([
55
+ (0, class_validator_1.IsBoolean)(),
56
+ (0, class_transformer_1.Transform)(({ value }) => Boolean(value)),
57
+ (0, class_transformer_1.Expose)(),
58
+ __metadata("design:type", Boolean)
59
+ ], UpdateLoyaltySettingsDto.prototype, "enabled", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsEnum)(loyalty_program_type_enum_1.LoyaltyProgramTypeEnum),
62
+ (0, class_transformer_1.Expose)(),
63
+ __metadata("design:type", String)
64
+ ], UpdateLoyaltySettingsDto.prototype, "programType", void 0);
65
+ __decorate([
66
+ (0, class_validator_1.IsEnum)(loyalty_metric_enum_1.LoyaltyMetricEnum),
67
+ (0, class_transformer_1.Expose)(),
68
+ __metadata("design:type", String)
69
+ ], UpdateLoyaltySettingsDto.prototype, "metric", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsOptional)(),
72
+ (0, class_transformer_1.Transform)(({ value }) => (+value > 0 ? Math.round(+value) : 0)),
73
+ (0, class_validator_1.Min)(0),
74
+ (0, class_validator_1.Max)(100),
75
+ (0, class_validator_1.IsInt)(),
76
+ (0, class_transformer_1.Expose)(),
77
+ __metadata("design:type", Number)
78
+ ], UpdateLoyaltySettingsDto.prototype, "cashbackPercent", void 0);
79
+ __decorate([
80
+ (0, class_validator_1.IsOptional)(),
81
+ (0, class_transformer_1.Transform)(({ value }) => (+value > 0 ? Math.round(+value) : 0)),
82
+ (0, class_validator_1.Min)(0),
83
+ (0, class_validator_1.Max)(100),
84
+ (0, class_validator_1.IsInt)(),
85
+ (0, class_transformer_1.Expose)(),
86
+ __metadata("design:type", Number)
87
+ ], UpdateLoyaltySettingsDto.prototype, "maxBonusPayPercent", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsBoolean)(),
90
+ (0, class_transformer_1.Transform)(({ value }) => Boolean(value)),
91
+ (0, class_transformer_1.Expose)(),
92
+ __metadata("design:type", Boolean)
93
+ ], UpdateLoyaltySettingsDto.prototype, "autoApplyDiscount", void 0);
94
+ __decorate([
95
+ (0, class_validator_1.IsEnum)(loyalty_stacking_enum_1.LoyaltyStackingEnum),
96
+ (0, class_transformer_1.Expose)(),
97
+ __metadata("design:type", String)
98
+ ], UpdateLoyaltySettingsDto.prototype, "stacking", void 0);
99
+ __decorate([
100
+ (0, class_validator_1.IsEnum)(loyalty_history_mode_enum_1.LoyaltyHistoryModeEnum),
101
+ (0, class_transformer_1.Expose)(),
102
+ __metadata("design:type", String)
103
+ ], UpdateLoyaltySettingsDto.prototype, "historyMode", void 0);
@@ -0,0 +1,33 @@
1
+ import { RO } from '../shared/ro-class';
2
+ import { LoyaltyHistoryModeEnum } from './enum/loyalty-history-mode.enum';
3
+ import { LoyaltyMetricEnum } from './enum/loyalty-metric.enum';
4
+ import { LoyaltyProgramTypeEnum } from './enum/loyalty-program-type.enum';
5
+ import { LoyaltyStackingEnum } from './enum/loyalty-stacking.enum';
6
+ import { LoyaltyTierRO } from './loyalty-tier.ro';
7
+ export declare class LoyaltySettingsRO extends RO {
8
+ enabled: boolean;
9
+ programType: LoyaltyProgramTypeEnum;
10
+ metric: LoyaltyMetricEnum;
11
+ /** Кэшбэк для клиентов без статуса, целые проценты. */
12
+ cashbackPercent: number;
13
+ /** Максимальная доля чека, которую можно закрыть бонусами. */
14
+ maxBonusPayPercent: number;
15
+ /**
16
+ * Дата, с которой игры начисляют бонусы. Отдельно от `countFrom`:
17
+ * статусы можно посчитать по всей прошлой истории, а бонусы за
18
+ * прошлые игры начислять нельзя — это раздача денег задним числом.
19
+ */
20
+ cashbackFrom: string | null;
21
+ autoApplyDiscount: boolean;
22
+ stacking: LoyaltyStackingEnum;
23
+ historyMode: LoyaltyHistoryModeEnum;
24
+ /**
25
+ * Дата, с которой игры идут в зачёт. `null` — вся история. Хранится
26
+ * отдельно от режима, потому что режим отвечает на вопрос «что вы
27
+ * выбрали», а дата — «что реально считается»: для `LAST_YEAR` она
28
+ * заморожена днём включения и со временем не сдвигается.
29
+ */
30
+ countFrom: string | null;
31
+ /** Отсортированы по порогу по возрастанию — как рисуются в CRM. */
32
+ tiers: LoyaltyTierRO[];
33
+ }
@@ -0,0 +1,67 @@
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.LoyaltySettingsRO = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const ro_class_1 = require("../shared/ro-class");
15
+ const loyalty_history_mode_enum_1 = require("./enum/loyalty-history-mode.enum");
16
+ const loyalty_metric_enum_1 = require("./enum/loyalty-metric.enum");
17
+ const loyalty_program_type_enum_1 = require("./enum/loyalty-program-type.enum");
18
+ const loyalty_stacking_enum_1 = require("./enum/loyalty-stacking.enum");
19
+ const loyalty_tier_ro_1 = require("./loyalty-tier.ro");
20
+ class LoyaltySettingsRO extends ro_class_1.RO {
21
+ }
22
+ exports.LoyaltySettingsRO = LoyaltySettingsRO;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ __metadata("design:type", Boolean)
26
+ ], LoyaltySettingsRO.prototype, "enabled", void 0);
27
+ __decorate([
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", String)
30
+ ], LoyaltySettingsRO.prototype, "programType", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ __metadata("design:type", String)
34
+ ], LoyaltySettingsRO.prototype, "metric", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ __metadata("design:type", Number)
38
+ ], LoyaltySettingsRO.prototype, "cashbackPercent", void 0);
39
+ __decorate([
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", Number)
42
+ ], LoyaltySettingsRO.prototype, "maxBonusPayPercent", void 0);
43
+ __decorate([
44
+ (0, class_transformer_1.Expose)(),
45
+ __metadata("design:type", String)
46
+ ], LoyaltySettingsRO.prototype, "cashbackFrom", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ __metadata("design:type", Boolean)
50
+ ], LoyaltySettingsRO.prototype, "autoApplyDiscount", void 0);
51
+ __decorate([
52
+ (0, class_transformer_1.Expose)(),
53
+ __metadata("design:type", String)
54
+ ], LoyaltySettingsRO.prototype, "stacking", void 0);
55
+ __decorate([
56
+ (0, class_transformer_1.Expose)(),
57
+ __metadata("design:type", String)
58
+ ], LoyaltySettingsRO.prototype, "historyMode", void 0);
59
+ __decorate([
60
+ (0, class_transformer_1.Expose)(),
61
+ __metadata("design:type", String)
62
+ ], LoyaltySettingsRO.prototype, "countFrom", void 0);
63
+ __decorate([
64
+ (0, class_transformer_1.Expose)(),
65
+ (0, class_transformer_1.Type)(() => loyalty_tier_ro_1.LoyaltyTierRO),
66
+ __metadata("design:type", Array)
67
+ ], LoyaltySettingsRO.prototype, "tiers", void 0);
@@ -0,0 +1,33 @@
1
+ import { LoyaltyTierColorEnum } from './enum/loyalty-tier-color.enum';
2
+ /**
3
+ * Больше пяти статусов клиент не удерживает в голове, а администратор не
4
+ * может объяснить на стойке.
5
+ */
6
+ export declare const MAX_LOYALTY_TIERS = 5;
7
+ export declare class CreateLoyaltyTierDto {
8
+ title: string;
9
+ color: LoyaltyTierColorEnum;
10
+ /**
11
+ * Порог входа: количество игр или сумма в минорных единицах — что
12
+ * именно, определяет метрика программы.
13
+ */
14
+ threshold: number;
15
+ /**
16
+ * Процент скидки, целыми процентами. Не базисные пункты, в отличие
17
+ * от скидки слота: доли процента в статусной скидке никому не нужны,
18
+ * а «10» вместо «1000» читается и в базе, и в интерфейсе.
19
+ * 0 — статус без скидки, только бейдж и привилегии.
20
+ */
21
+ discount: number;
22
+ /**
23
+ * Процент кэшбэка на статусе, целыми процентами. Читается только в
24
+ * накопительной программе — в скидочной поле лежит без дела, и
25
+ * наоборот: так переключение типа программы не стирает уже
26
+ * настроенные цифры и владелец может вернуться обратно.
27
+ */
28
+ cashback?: number;
29
+ /** Свободный текст привилегий: фото в подарок, приоритетная запись. */
30
+ perks?: string;
31
+ }
32
+ export declare class UpdateLoyaltyTierDto extends CreateLoyaltyTierDto {
33
+ }
@@ -0,0 +1,69 @@
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.UpdateLoyaltyTierDto = exports.CreateLoyaltyTierDto = exports.MAX_LOYALTY_TIERS = 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
+ const loyalty_tier_color_enum_1 = require("./enum/loyalty-tier-color.enum");
17
+ /**
18
+ * Больше пяти статусов клиент не удерживает в голове, а администратор не
19
+ * может объяснить на стойке.
20
+ */
21
+ exports.MAX_LOYALTY_TIERS = 5;
22
+ class CreateLoyaltyTierDto {
23
+ }
24
+ exports.CreateLoyaltyTierDto = CreateLoyaltyTierDto;
25
+ __decorate([
26
+ (0, is_not_blank_1.IsNotBlank)(),
27
+ (0, class_validator_1.MaxLength)(30),
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", String)
30
+ ], CreateLoyaltyTierDto.prototype, "title", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsEnum)(loyalty_tier_color_enum_1.LoyaltyTierColorEnum),
33
+ (0, class_transformer_1.Expose)(),
34
+ __metadata("design:type", String)
35
+ ], CreateLoyaltyTierDto.prototype, "color", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Transform)(({ value }) => (+value > 0 ? Math.round(+value) : 0)),
38
+ (0, class_validator_1.Min)(0),
39
+ (0, class_validator_1.IsInt)(),
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", Number)
42
+ ], CreateLoyaltyTierDto.prototype, "threshold", void 0);
43
+ __decorate([
44
+ (0, class_transformer_1.Transform)(({ value }) => (+value > 0 ? Math.round(+value) : 0)),
45
+ (0, class_validator_1.Min)(0),
46
+ (0, class_validator_1.Max)(100),
47
+ (0, class_validator_1.IsInt)(),
48
+ (0, class_transformer_1.Expose)(),
49
+ __metadata("design:type", Number)
50
+ ], CreateLoyaltyTierDto.prototype, "discount", void 0);
51
+ __decorate([
52
+ (0, class_validator_1.IsOptional)(),
53
+ (0, class_transformer_1.Transform)(({ value }) => (+value > 0 ? Math.round(+value) : 0)),
54
+ (0, class_validator_1.Min)(0),
55
+ (0, class_validator_1.Max)(100),
56
+ (0, class_validator_1.IsInt)(),
57
+ (0, class_transformer_1.Expose)(),
58
+ __metadata("design:type", Number)
59
+ ], CreateLoyaltyTierDto.prototype, "cashback", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsOptional)(),
62
+ (0, class_validator_1.IsString)(),
63
+ (0, class_validator_1.MaxLength)(200),
64
+ (0, class_transformer_1.Expose)(),
65
+ __metadata("design:type", String)
66
+ ], CreateLoyaltyTierDto.prototype, "perks", void 0);
67
+ class UpdateLoyaltyTierDto extends CreateLoyaltyTierDto {
68
+ }
69
+ exports.UpdateLoyaltyTierDto = UpdateLoyaltyTierDto;
@@ -0,0 +1,12 @@
1
+ import { RO } from '../shared/ro-class';
2
+ import { LoyaltyTierColorEnum } from './enum/loyalty-tier-color.enum';
3
+ export declare class LoyaltyTierRO extends RO {
4
+ title: string;
5
+ color: LoyaltyTierColorEnum;
6
+ threshold: number;
7
+ /** Целые проценты. Работает в скидочной программе. */
8
+ discount: number;
9
+ /** Целые проценты. Работает в накопительной программе. */
10
+ cashback: number;
11
+ perks: string;
12
+ }
@@ -0,0 +1,42 @@
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.LoyaltyTierRO = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const ro_class_1 = require("../shared/ro-class");
15
+ const loyalty_tier_color_enum_1 = require("./enum/loyalty-tier-color.enum");
16
+ class LoyaltyTierRO extends ro_class_1.RO {
17
+ }
18
+ exports.LoyaltyTierRO = LoyaltyTierRO;
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ __metadata("design:type", String)
22
+ ], LoyaltyTierRO.prototype, "title", void 0);
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ __metadata("design:type", String)
26
+ ], LoyaltyTierRO.prototype, "color", void 0);
27
+ __decorate([
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", Number)
30
+ ], LoyaltyTierRO.prototype, "threshold", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ __metadata("design:type", Number)
34
+ ], LoyaltyTierRO.prototype, "discount", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ __metadata("design:type", Number)
38
+ ], LoyaltyTierRO.prototype, "cashback", void 0);
39
+ __decorate([
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", String)
42
+ ], LoyaltyTierRO.prototype, "perks", void 0);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Оплата игры бонусами. Сумму присылает интерфейс, а не «списать
3
+ * максимум»: администратор на стойке проговаривает цифру клиенту, и она
4
+ * должна быть его решением, а не результатом округления на сервере.
5
+ */
6
+ export declare class PayWithBonusDto {
7
+ orderId: number;
8
+ /** Минорные единицы. Сервер сам обрежет до доступного лимита. */
9
+ amount: number;
10
+ }
@@ -0,0 +1,36 @@
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.PayWithBonusDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Оплата игры бонусами. Сумму присылает интерфейс, а не «списать
17
+ * максимум»: администратор на стойке проговаривает цифру клиенту, и она
18
+ * должна быть его решением, а не результатом округления на сервере.
19
+ */
20
+ class PayWithBonusDto {
21
+ }
22
+ exports.PayWithBonusDto = PayWithBonusDto;
23
+ __decorate([
24
+ (0, class_transformer_1.Transform)(({ value }) => Math.round(+value) || 0),
25
+ (0, class_validator_1.IsInt)(),
26
+ (0, class_validator_1.Min)(1),
27
+ (0, class_transformer_1.Expose)(),
28
+ __metadata("design:type", Number)
29
+ ], PayWithBonusDto.prototype, "orderId", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Transform)(({ value }) => Math.round(+value) || 0),
32
+ (0, class_validator_1.IsInt)(),
33
+ (0, class_validator_1.Min)(1),
34
+ (0, class_transformer_1.Expose)(),
35
+ __metadata("design:type", Number)
36
+ ], PayWithBonusDto.prototype, "amount", void 0);
@@ -25,9 +25,9 @@ export declare class OpenapiBatchCreatePreorderDto {
25
25
  items: OpenapiCreatePreorderDto[];
26
26
  /**
27
27
  * Если группа собирается как пакетное предложение — id пакета. Бэкенд
28
- * после сборки группы докладывает group-level пакетную скидку
29
- * (см. PackageBookingService.applyDiscountToGroup). Без него batch
30
- * работает как обычная мульти-бронь.
28
+ * после сборки группы доводит цену до пакетной: group-level скидка либо
29
+ * фиксированный прайс пакета (см. PackageBookingService.applyPricingToGroup).
30
+ * Без него batch работает как обычная мульти-бронь.
31
31
  */
32
32
  packageId?: number;
33
33
  }
@@ -73,6 +73,18 @@ export declare class OpenapiOrderRO extends QuestroomRow {
73
73
  penalties: Penalty[];
74
74
  discounts: Discount[];
75
75
  slotDiscount: number;
76
+ /**
77
+ * Скидка по статусу клиента в программе лояльности. Клиенту в виджете
78
+ * и в гостевом портале показывается отдельной строкой — сам статус нет:
79
+ * в чужой программе лояльности он разбираться не обязан.
80
+ */
81
+ loyaltyDiscount: number;
82
+ /**
83
+ * Бонусы, которыми администратор закрыл часть игры. Клиенту это тоже
84
+ * видно строкой в чеке: он должен понимать, почему к оплате меньше,
85
+ * чем стоит игра.
86
+ */
87
+ bonusTotal: number;
76
88
  upsellings: OpenapiOrderUpsellingRO[];
77
89
  certificates: OpenapiOrderCertificateRO[];
78
90
  promocodes: OpenapiPromocodeRO[];
@@ -218,6 +218,14 @@ __decorate([
218
218
  (0, class_transformer_1.Expose)(),
219
219
  __metadata("design:type", Number)
220
220
  ], OpenapiOrderRO.prototype, "slotDiscount", void 0);
221
+ __decorate([
222
+ (0, class_transformer_1.Expose)(),
223
+ __metadata("design:type", Number)
224
+ ], OpenapiOrderRO.prototype, "loyaltyDiscount", void 0);
225
+ __decorate([
226
+ (0, class_transformer_1.Expose)(),
227
+ __metadata("design:type", Number)
228
+ ], OpenapiOrderRO.prototype, "bonusTotal", void 0);
221
229
  __decorate([
222
230
  (0, class_transformer_1.Expose)(),
223
231
  (0, class_transformer_1.Type)(() => openapi_order_upselling_ro_1.OpenapiOrderUpsellingRO),
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Статус сертификата в публичном API. Внутри системы отдельной колонки
3
+ * статуса нет — он выводится из флагов продажи (`annul` / `used` / `toPay` /
4
+ * `balance` / `expireDate`), поэтому наружу отдаём короткий стабильный
5
+ * словарь вместо CRM-ного `CertificatesaleStatusEnum`, где половина значений
6
+ * описывает стадию доставки, а не право на погашение.
7
+ */
8
+ export declare enum OpenapiCertificateStatusEnum {
9
+ ACTIVE = "active",
10
+ PARTLY_USED = "partly_used",
11
+ USED = "used",
12
+ ANNULLED = "annulled",
13
+ EXPIRED = "expired",
14
+ NOT_PAID = "not_paid"
15
+ }
16
+ /**
17
+ * Порядок проверок повторяет приоритет CRM-статусов (`get-certificate-data`):
18
+ * аннулирование перекрывает всё, затем полное погашение, затем срок, затем
19
+ * неоплата. Частичное погашение показываем только пока остаток можно потратить.
20
+ */
21
+ export declare function resolveOpenapiCertificateStatus({ annul, used, usedAmount, balance, toPay, expireDate, now, }: {
22
+ annul: boolean;
23
+ used: boolean;
24
+ usedAmount: number;
25
+ balance: number;
26
+ toPay: number;
27
+ expireDate: string;
28
+ now?: Date;
29
+ }): OpenapiCertificateStatusEnum;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenapiCertificateStatusEnum = void 0;
4
+ exports.resolveOpenapiCertificateStatus = resolveOpenapiCertificateStatus;
5
+ /**
6
+ * Статус сертификата в публичном API. Внутри системы отдельной колонки
7
+ * статуса нет — он выводится из флагов продажи (`annul` / `used` / `toPay` /
8
+ * `balance` / `expireDate`), поэтому наружу отдаём короткий стабильный
9
+ * словарь вместо CRM-ного `CertificatesaleStatusEnum`, где половина значений
10
+ * описывает стадию доставки, а не право на погашение.
11
+ */
12
+ var OpenapiCertificateStatusEnum;
13
+ (function (OpenapiCertificateStatusEnum) {
14
+ OpenapiCertificateStatusEnum["ACTIVE"] = "active";
15
+ OpenapiCertificateStatusEnum["PARTLY_USED"] = "partly_used";
16
+ OpenapiCertificateStatusEnum["USED"] = "used";
17
+ OpenapiCertificateStatusEnum["ANNULLED"] = "annulled";
18
+ OpenapiCertificateStatusEnum["EXPIRED"] = "expired";
19
+ OpenapiCertificateStatusEnum["NOT_PAID"] = "not_paid";
20
+ })(OpenapiCertificateStatusEnum || (exports.OpenapiCertificateStatusEnum = OpenapiCertificateStatusEnum = {}));
21
+ /**
22
+ * Порядок проверок повторяет приоритет CRM-статусов (`get-certificate-data`):
23
+ * аннулирование перекрывает всё, затем полное погашение, затем срок, затем
24
+ * неоплата. Частичное погашение показываем только пока остаток можно потратить.
25
+ */
26
+ function resolveOpenapiCertificateStatus({ annul, used, usedAmount, balance, toPay, expireDate, now = new Date(), }) {
27
+ if (annul)
28
+ return OpenapiCertificateStatusEnum.ANNULLED;
29
+ if (used || balance <= 0)
30
+ return OpenapiCertificateStatusEnum.USED;
31
+ if (expireDate && new Date(expireDate) < now)
32
+ return OpenapiCertificateStatusEnum.EXPIRED;
33
+ if (toPay > 0)
34
+ return OpenapiCertificateStatusEnum.NOT_PAID;
35
+ if (usedAmount > 0)
36
+ return OpenapiCertificateStatusEnum.PARTLY_USED;
37
+ return OpenapiCertificateStatusEnum.ACTIVE;
38
+ }
@@ -0,0 +1,3 @@
1
+ export declare class OpenapiAnnulCertificateDto {
2
+ reason?: string;
3
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OpenapiAnnulCertificateDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class OpenapiAnnulCertificateDto {
16
+ }
17
+ exports.OpenapiAnnulCertificateDto = OpenapiAnnulCertificateDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({
20
+ required: false,
21
+ example: 'Refunded to the customer',
22
+ maxLength: 500,
23
+ description: 'Why the certificate is being voided. Stored on the certificate and shown to the venue staff.',
24
+ }),
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.Length)(1, 500),
28
+ __metadata("design:type", String)
29
+ ], OpenapiAnnulCertificateDto.prototype, "reason", void 0);
@@ -0,0 +1,33 @@
1
+ import { ProfileCurrencyEnum } from '../../profile/enum/profile-currency';
2
+ import { SourceEnum } from '../../shared/source.enum';
3
+ import { OpenapiCertificateStatusEnum } from './enum/openapi-certificate-status.enum';
4
+ export declare class OpenapiCertificateClientRO {
5
+ name: string | null;
6
+ surname: string | null;
7
+ phone: string | null;
8
+ email: string | null;
9
+ }
10
+ export declare class OpenapiCertificateUsageRO {
11
+ orderId: number;
12
+ amount: number;
13
+ createdAt: Date;
14
+ }
15
+ export declare class OpenapiCertificateRO {
16
+ certificateId: number;
17
+ code: string;
18
+ externalId: string | null;
19
+ status: OpenapiCertificateStatusEnum;
20
+ nominal: number;
21
+ usedAmount: number;
22
+ balance: number;
23
+ currency: ProfileCurrencyEnum;
24
+ expireDate: string;
25
+ maxUsages: number;
26
+ annulled: boolean;
27
+ annulledAt: Date | null;
28
+ annulReason: string | null;
29
+ source: SourceEnum;
30
+ createdAt: Date;
31
+ client: OpenapiCertificateClientRO | null;
32
+ usages: OpenapiCertificateUsageRO[];
33
+ }