@escapenavigator/types 2.0.7 → 2.0.8

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.
@@ -9,6 +9,11 @@ export declare class WidgetPlayersFormDto {
9
9
  language: Languages;
10
10
  players: number;
11
11
  children: number;
12
+ /**
13
+ * «Определимся на месте» (playersSelectMode=OPTIONAL/HIDDEN): состав не
14
+ * определён, `players` засеян минимумом квеста, дети скрыты/сброшены.
15
+ */
16
+ flexPlayers?: boolean;
12
17
  comment: string;
13
18
  hasModes: boolean;
14
19
  mode: string;
@@ -50,6 +50,11 @@ __decorate([
50
50
  (0, class_transformer_1.Expose)(),
51
51
  __metadata("design:type", Number)
52
52
  ], WidgetPlayersFormDto.prototype, "children", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsOptional)(),
55
+ (0, class_transformer_1.Expose)(),
56
+ __metadata("design:type", Boolean)
57
+ ], WidgetPlayersFormDto.prototype, "flexPlayers", void 0);
53
58
  __decorate([
54
59
  (0, class_validator_1.IsOptional)(),
55
60
  (0, class_transformer_1.Expose)(),
@@ -23,6 +23,14 @@ export declare class OpenapiCreatePreorderDto extends ClientFormDto {
23
23
  attachToOrderTokens?: string[];
24
24
  players: number;
25
25
  children: number;
26
+ /**
27
+ * Состав группы не определён: гость выбрал «Определимся на месте»
28
+ * (playersSelectMode=OPTIONAL) или квест вовсе не спрашивает количество
29
+ * (HIDDEN). `players` при этом всё равно передаётся — минимальный состав
30
+ * квеста, по нему считается «базовая стоимость от». Флаг сохраняется на
31
+ * заказе и снимается, когда гость/оператор укажет точное число.
32
+ */
33
+ flexPlayers?: boolean;
26
34
  mode: string;
27
35
  customFields: CustomFiled[];
28
36
  slotId?: number;
@@ -85,6 +85,12 @@ __decorate([
85
85
  (0, class_transformer_1.Expose)(),
86
86
  __metadata("design:type", Number)
87
87
  ], OpenapiCreatePreorderDto.prototype, "children", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsOptional)(),
90
+ (0, class_validator_1.IsBoolean)(),
91
+ (0, class_transformer_1.Expose)(),
92
+ __metadata("design:type", Boolean)
93
+ ], OpenapiCreatePreorderDto.prototype, "flexPlayers", void 0);
88
94
  __decorate([
89
95
  (0, class_validator_1.IsOptional)(),
90
96
  (0, class_transformer_1.Expose)(),
@@ -57,6 +57,12 @@ export declare class OpenapiOrderRO extends QuestroomRow {
57
57
  total: number;
58
58
  players: number;
59
59
  children: number;
60
+ /**
61
+ * Состав группы не определён («Определимся на месте»). `players` при
62
+ * этом = минимальный состав, а `total` — базовая стоимость «от».
63
+ * Снимается, когда гость/оператор укажет точное число участников.
64
+ */
65
+ flexPlayers: boolean;
60
66
  utcDate: string;
61
67
  mode: string;
62
68
  client: OpenapiClientRO;
@@ -171,6 +171,10 @@ __decorate([
171
171
  (0, class_transformer_1.Expose)(),
172
172
  __metadata("design:type", Number)
173
173
  ], OpenapiOrderRO.prototype, "children", void 0);
174
+ __decorate([
175
+ (0, class_transformer_1.Expose)(),
176
+ __metadata("design:type", Boolean)
177
+ ], OpenapiOrderRO.prototype, "flexPlayers", void 0);
174
178
  __decorate([
175
179
  (0, class_transformer_1.Expose)(),
176
180
  __metadata("design:type", String)
@@ -5,6 +5,12 @@ export declare class OpenapiUpdateOrderDto extends ClientFormDto {
5
5
  orderToken?: string;
6
6
  players?: number;
7
7
  children?: number;
8
+ /**
9
+ * Состав не определён («Определимся на месте»). Прокидывается при
10
+ * повторном сабмите шага «Контакт» (retry-путь виджета), чтобы флаг на
11
+ * заказе соответствовал актуальному выбору гостя.
12
+ */
13
+ flexPlayers?: boolean;
8
14
  comment?: string;
9
15
  mode: string;
10
16
  language?: Languages;
@@ -35,6 +35,12 @@ __decorate([
35
35
  (0, class_transformer_1.Expose)(),
36
36
  __metadata("design:type", Number)
37
37
  ], OpenapiUpdateOrderDto.prototype, "children", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsBoolean)(),
41
+ (0, class_transformer_1.Expose)(),
42
+ __metadata("design:type", Boolean)
43
+ ], OpenapiUpdateOrderDto.prototype, "flexPlayers", void 0);
38
44
  __decorate([
39
45
  (0, class_validator_1.IsOptional)(),
40
46
  (0, class_transformer_1.Expose)(),
@@ -1,3 +1,4 @@
1
+ import { PlayersSelectModeEnum } from '../../questroom/enum/players-select-mode.enum';
1
2
  import { QuestroomConfirmTypeEnum } from '../../questroom/enum/questroom-confirm-type.enum';
2
3
  import { QuestroomTypeEnum } from '../../questroom/enum/questroom-type.enum';
3
4
  import { Languages } from '../../shared/enum/languages.enum';
@@ -61,7 +62,7 @@ export declare class OpenapiQuestroomRO {
61
62
  minAge: number;
62
63
  location: Location;
63
64
  locales: QuestroomLocale[];
64
- flexPlayersSelect: boolean;
65
+ playersSelectMode: PlayersSelectModeEnum;
65
66
  slotStepMinutes: number;
66
67
  questOpeningDate?: string;
67
68
  }
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.QuestroomRow = exports.OpenapiQuestroomRO = exports.transformQuestroom = void 0;
24
24
  /* eslint-disable max-classes-per-file */
25
25
  const class_transformer_1 = require("class-transformer");
26
+ const players_select_mode_enum_1 = require("../../questroom/enum/players-select-mode.enum");
26
27
  const questroom_confirm_type_enum_1 = require("../../questroom/enum/questroom-confirm-type.enum");
27
28
  const questroom_type_enum_1 = require("../../questroom/enum/questroom-type.enum");
28
29
  const languages_enum_1 = require("../../shared/enum/languages.enum");
@@ -220,8 +221,8 @@ __decorate([
220
221
  ], OpenapiQuestroomRO.prototype, "locales", void 0);
221
222
  __decorate([
222
223
  (0, class_transformer_1.Expose)(),
223
- __metadata("design:type", Boolean)
224
- ], OpenapiQuestroomRO.prototype, "flexPlayersSelect", void 0);
224
+ __metadata("design:type", String)
225
+ ], OpenapiQuestroomRO.prototype, "playersSelectMode", void 0);
225
226
  __decorate([
226
227
  (0, class_transformer_1.Expose)(),
227
228
  __metadata("design:type", Number)
@@ -218,6 +218,12 @@ export declare class OrderRO extends RO {
218
218
  groupShare?: number;
219
219
  players: number;
220
220
  children: number;
221
+ /**
222
+ * Состав группы не определён — гость записался «Определимся на месте».
223
+ * `players` = минимальный состав, `total` — базовая стоимость «от».
224
+ * Снимается при любом изменении числа игроков (гостем или оператором).
225
+ */
226
+ flexPlayers: boolean;
221
227
  participants: OrderParticipant[];
222
228
  canceledWithFine: boolean;
223
229
  /**
@@ -530,6 +530,10 @@ __decorate([
530
530
  (0, class_transformer_1.Expose)(),
531
531
  __metadata("design:type", Number)
532
532
  ], OrderRO.prototype, "children", void 0);
533
+ __decorate([
534
+ (0, class_transformer_1.Expose)(),
535
+ __metadata("design:type", Boolean)
536
+ ], OrderRO.prototype, "flexPlayers", void 0);
533
537
  __decorate([
534
538
  (0, class_transformer_1.Expose)(),
535
539
  (0, class_transformer_1.Type)(() => OrderParticipant),
@@ -1,5 +1,6 @@
1
1
  import { Languages } from '../shared/enum/languages.enum';
2
2
  import { TagsEnum } from '../shared/enum/tags.enum';
3
+ import { PlayersSelectModeEnum } from './enum/players-select-mode.enum';
3
4
  import { QuestroomActorsEnum } from './enum/questroom-actors.enum';
4
5
  import { QuestroomConfirmTypeEnum } from './enum/questroom-confirm-type.enum';
5
6
  import { QuestroomTypeEnum } from './enum/questroom-type.enum';
@@ -54,7 +55,7 @@ export declare class CreateQuestroomDto {
54
55
  modes: Mode[];
55
56
  photoFrame: string;
56
57
  alternativeScenarioIds: number[];
57
- flexPlayersSelect?: boolean;
58
+ playersSelectMode?: PlayersSelectModeEnum;
58
59
  slotStepMinutes?: number;
59
60
  questOpeningDate?: string;
60
61
  aiNote?: string;
@@ -16,6 +16,7 @@ const class_validator_1 = require("class-validator");
16
16
  const languages_enum_1 = require("../shared/enum/languages.enum");
17
17
  const tags_enum_1 = require("../shared/enum/tags.enum");
18
18
  const is_not_blank_1 = require("../shared/is-not-blank");
19
+ const players_select_mode_enum_1 = require("./enum/players-select-mode.enum");
19
20
  const questroom_actors_enum_1 = require("./enum/questroom-actors.enum");
20
21
  const questroom_confirm_type_enum_1 = require("./enum/questroom-confirm-type.enum");
21
22
  const questroom_type_enum_1 = require("./enum/questroom-type.enum");
@@ -301,11 +302,11 @@ __decorate([
301
302
  ], CreateQuestroomDto.prototype, "alternativeScenarioIds", void 0);
302
303
  __decorate([
303
304
  (0, class_validator_1.IsOptional)(),
304
- (0, class_validator_1.IsBoolean)(),
305
- (0, class_transformer_1.Transform)(({ value }) => (value === undefined ? false : value)),
305
+ (0, class_validator_1.IsEnum)(players_select_mode_enum_1.PlayersSelectModeEnum),
306
+ (0, class_transformer_1.Transform)(({ value }) => value || players_select_mode_enum_1.PlayersSelectModeEnum.REQUIRED),
306
307
  (0, class_transformer_1.Expose)(),
307
- __metadata("design:type", Boolean)
308
- ], CreateQuestroomDto.prototype, "flexPlayersSelect", void 0);
308
+ __metadata("design:type", String)
309
+ ], CreateQuestroomDto.prototype, "playersSelectMode", void 0);
309
310
  __decorate([
310
311
  (0, class_validator_1.IsOptional)(),
311
312
  (0, class_validator_1.IsPositive)(),
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Режим выбора количества участников при онлайн-записи.
3
+ *
4
+ * Заменяет булево `flexPlayersSelect`: гипотеза «если не спрашивать
5
+ * количество человек — конверсия выше», но части компаний важно оставить
6
+ * выбор. Поэтому три режима вместо двух:
7
+ * - REQUIRED — классический флоу, гость обязан выбрать состав (дефолт);
8
+ * - OPTIONAL — в пикере первым пунктом «Определимся на месте» (выбран по
9
+ * умолчанию), но гость может указать точное число;
10
+ * - HIDDEN — выбор скрыт полностью, гость бронирует только время
11
+ * (бывший `flexPlayersSelect=true`).
12
+ *
13
+ * Во всех режимах детализация цены показывается всегда: при
14
+ * неопределённом составе — «Базовая стоимость от <мин. цена>» + прайс за
15
+ * участника. Заказ при этом создаётся на минимальный состав с флагом
16
+ * `order.flexPlayers=true` (см. OrderEntity).
17
+ */
18
+ export declare enum PlayersSelectModeEnum {
19
+ REQUIRED = "players_select_required",
20
+ OPTIONAL = "players_select_optional",
21
+ HIDDEN = "players_select_hidden"
22
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlayersSelectModeEnum = void 0;
4
+ /**
5
+ * Режим выбора количества участников при онлайн-записи.
6
+ *
7
+ * Заменяет булево `flexPlayersSelect`: гипотеза «если не спрашивать
8
+ * количество человек — конверсия выше», но части компаний важно оставить
9
+ * выбор. Поэтому три режима вместо двух:
10
+ * - REQUIRED — классический флоу, гость обязан выбрать состав (дефолт);
11
+ * - OPTIONAL — в пикере первым пунктом «Определимся на месте» (выбран по
12
+ * умолчанию), но гость может указать точное число;
13
+ * - HIDDEN — выбор скрыт полностью, гость бронирует только время
14
+ * (бывший `flexPlayersSelect=true`).
15
+ *
16
+ * Во всех режимах детализация цены показывается всегда: при
17
+ * неопределённом составе — «Базовая стоимость от <мин. цена>» + прайс за
18
+ * участника. Заказ при этом создаётся на минимальный состав с флагом
19
+ * `order.flexPlayers=true` (см. OrderEntity).
20
+ */
21
+ var PlayersSelectModeEnum;
22
+ (function (PlayersSelectModeEnum) {
23
+ PlayersSelectModeEnum["REQUIRED"] = "players_select_required";
24
+ PlayersSelectModeEnum["OPTIONAL"] = "players_select_optional";
25
+ PlayersSelectModeEnum["HIDDEN"] = "players_select_hidden";
26
+ })(PlayersSelectModeEnum || (exports.PlayersSelectModeEnum = PlayersSelectModeEnum = {}));