@escapenavigator/types 2.0.7 → 2.0.9

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 (58) hide show
  1. package/dist/agregator/agregator-questroom-card.ro.d.ts +6 -0
  2. package/dist/agregator/agregator-questroom-card.ro.js +4 -0
  3. package/dist/agregator/agregator-questrooms-and-cities.ro.d.ts +8 -0
  4. package/dist/agregator/agregator-questrooms-and-cities.ro.js +4 -0
  5. package/dist/city-quest/bind-city-quest.dto.d.ts +4 -0
  6. package/dist/city-quest/bind-city-quest.dto.js +22 -0
  7. package/dist/city-quest/city-quest-content.d.ts +159 -0
  8. package/dist/city-quest/city-quest-content.js +2 -0
  9. package/dist/city-quest/city-quest.ro.d.ts +29 -0
  10. package/dist/city-quest/city-quest.ro.js +89 -0
  11. package/dist/city-quest/enum/city-quest-play-phase.enum.d.ts +6 -0
  12. package/dist/city-quest/enum/city-quest-play-phase.enum.js +10 -0
  13. package/dist/city-quest/enum/city-quest-session-event-type.enum.d.ts +18 -0
  14. package/dist/city-quest/enum/city-quest-session-event-type.enum.js +22 -0
  15. package/dist/city-quest/enum/city-quest-session-status.enum.d.ts +5 -0
  16. package/dist/city-quest/enum/city-quest-session-status.enum.js +9 -0
  17. package/dist/city-quest/enum/city-quest-status.enum.d.ts +7 -0
  18. package/dist/city-quest/enum/city-quest-status.enum.js +11 -0
  19. package/dist/city-quest/import-city-quest.dto.d.ts +6 -0
  20. package/dist/city-quest/import-city-quest.dto.js +28 -0
  21. package/dist/city-quest/update-city-quest.dto.d.ts +5 -0
  22. package/dist/city-quest/update-city-quest.dto.js +30 -0
  23. package/dist/city-quest/upsert-city-quest-asset.dto.d.ts +11 -0
  24. package/dist/city-quest/upsert-city-quest-asset.dto.js +40 -0
  25. package/dist/forms/widget/widget-players-form.dto.d.ts +5 -0
  26. package/dist/forms/widget/widget-players-form.dto.js +5 -0
  27. package/dist/openapi/city-quest/play-answer.dto.d.ts +5 -0
  28. package/dist/openapi/city-quest/play-answer.dto.js +30 -0
  29. package/dist/openapi/city-quest/play-finale-choice.dto.d.ts +3 -0
  30. package/dist/openapi/city-quest/play-finale-choice.dto.js +23 -0
  31. package/dist/openapi/city-quest/play-hint.dto.d.ts +3 -0
  32. package/dist/openapi/city-quest/play-hint.dto.js +22 -0
  33. package/dist/openapi/city-quest/play-issue.dto.d.ts +3 -0
  34. package/dist/openapi/city-quest/play-issue.dto.js +23 -0
  35. package/dist/openapi/city-quest/play-start-session.dto.d.ts +8 -0
  36. package/dist/openapi/city-quest/play-start-session.dto.js +41 -0
  37. package/dist/openapi/city-quest/play-state.ro.d.ts +144 -0
  38. package/dist/openapi/city-quest/play-state.ro.js +2 -0
  39. package/dist/openapi/orders/openapi-create-preorder.dto.d.ts +8 -0
  40. package/dist/openapi/orders/openapi-create-preorder.dto.js +6 -0
  41. package/dist/openapi/orders/openapi-order.ro.d.ts +6 -0
  42. package/dist/openapi/orders/openapi-order.ro.js +4 -0
  43. package/dist/openapi/orders/openapi-update-order.dto.d.ts +6 -0
  44. package/dist/openapi/orders/openapi-update-order.dto.js +6 -0
  45. package/dist/openapi/shared/openapi-questroom.ro.d.ts +2 -1
  46. package/dist/openapi/shared/openapi-questroom.ro.js +3 -2
  47. package/dist/order/order.ro.d.ts +6 -0
  48. package/dist/order/order.ro.js +4 -0
  49. package/dist/order/waivers/sign-order.dto.js +1 -1
  50. package/dist/questroom/create-questroom.dto.d.ts +2 -1
  51. package/dist/questroom/create-questroom.dto.js +5 -4
  52. package/dist/questroom/enum/players-select-mode.enum.d.ts +22 -0
  53. package/dist/questroom/enum/players-select-mode.enum.js +26 -0
  54. package/dist/questroom/questroom-admin.ro.d.ts +2 -0
  55. package/dist/questroom/questroom-admin.ro.js +4 -0
  56. package/dist/tsconfig.build.tsbuildinfo +1 -1
  57. package/dist/widget-funnel/widget-funnel-dimension.js +15 -5
  58. package/package.json +2 -2
@@ -0,0 +1,3 @@
1
+ export declare class PlayFinaleChoiceDto {
2
+ choiceId: string;
3
+ }
@@ -0,0 +1,23 @@
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.PlayFinaleChoiceDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ class PlayFinaleChoiceDto {
16
+ }
17
+ exports.PlayFinaleChoiceDto = PlayFinaleChoiceDto;
18
+ __decorate([
19
+ (0, class_validator_1.IsString)(),
20
+ (0, class_validator_1.MaxLength)(40),
21
+ (0, class_transformer_1.Expose)(),
22
+ __metadata("design:type", String)
23
+ ], PlayFinaleChoiceDto.prototype, "choiceId", void 0);
@@ -0,0 +1,3 @@
1
+ export declare class PlayHintDto {
2
+ level: 1 | 2 | 3;
3
+ }
@@ -0,0 +1,22 @@
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.PlayHintDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ class PlayHintDto {
16
+ }
17
+ exports.PlayHintDto = PlayHintDto;
18
+ __decorate([
19
+ (0, class_validator_1.IsIn)([1, 2, 3]),
20
+ (0, class_transformer_1.Expose)(),
21
+ __metadata("design:type", Number)
22
+ ], PlayHintDto.prototype, "level", void 0);
@@ -0,0 +1,3 @@
1
+ export declare class PlayIssueDto {
2
+ text: string;
3
+ }
@@ -0,0 +1,23 @@
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.PlayIssueDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ class PlayIssueDto {
16
+ }
17
+ exports.PlayIssueDto = PlayIssueDto;
18
+ __decorate([
19
+ (0, class_validator_1.IsString)(),
20
+ (0, class_validator_1.MaxLength)(1000),
21
+ (0, class_transformer_1.Expose)(),
22
+ __metadata("design:type", String)
23
+ ], PlayIssueDto.prototype, "text", void 0);
@@ -0,0 +1,8 @@
1
+ import { Languages } from '../../shared/enum/languages.enum';
2
+ export declare class PlayStartSessionDto {
3
+ /** Access-токен из ссылки в письме (play.../g/:token). */
4
+ accessToken: string;
5
+ teamName: string;
6
+ language?: Languages;
7
+ raceMode?: boolean;
8
+ }
@@ -0,0 +1,41 @@
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.PlayStartSessionDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const languages_enum_1 = require("../../shared/enum/languages.enum");
16
+ class PlayStartSessionDto {
17
+ }
18
+ exports.PlayStartSessionDto = PlayStartSessionDto;
19
+ __decorate([
20
+ (0, class_validator_1.IsString)(),
21
+ (0, class_transformer_1.Expose)(),
22
+ __metadata("design:type", String)
23
+ ], PlayStartSessionDto.prototype, "accessToken", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.MaxLength)(60),
27
+ (0, class_transformer_1.Expose)(),
28
+ __metadata("design:type", String)
29
+ ], PlayStartSessionDto.prototype, "teamName", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsEnum)(languages_enum_1.Languages),
33
+ (0, class_transformer_1.Expose)(),
34
+ __metadata("design:type", String)
35
+ ], PlayStartSessionDto.prototype, "language", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsBoolean)(),
39
+ (0, class_transformer_1.Expose)(),
40
+ __metadata("design:type", Boolean)
41
+ ], PlayStartSessionDto.prototype, "raceMode", void 0);
@@ -0,0 +1,144 @@
1
+ import { Languages } from '../../shared/enum/languages.enum';
2
+ import { CityQuestPlayPhaseEnum } from '../../city-quest/enum/city-quest-play-phase.enum';
3
+ import { CityQuestSessionStatusEnum } from '../../city-quest/enum/city-quest-session-status.enum';
4
+ /**
5
+ * Публичные (безопасные) представления контента для игрока.
6
+ * Формируются сервером вручную — accepted_answers и будущие
7
+ * главы наружу не отдаются.
8
+ */
9
+ export type PlayAssetRO = {
10
+ assetKey: string;
11
+ url: string;
12
+ transcript?: string | null;
13
+ };
14
+ export type PlayHintStateRO = {
15
+ level: number;
16
+ penalty: number;
17
+ /** Текст возвращается только после покупки подсказки. */
18
+ text?: string;
19
+ used: boolean;
20
+ };
21
+ export type PlayChallengeRO = {
22
+ type: string;
23
+ prompt: string;
24
+ choices?: Array<{
25
+ id: string;
26
+ label: string;
27
+ }>;
28
+ teamSplitRoles?: Array<{
29
+ role: string;
30
+ task: string;
31
+ }>;
32
+ audio?: PlayAssetRO | null;
33
+ hints: PlayHintStateRO[];
34
+ };
35
+ export type PlayStopRO = {
36
+ id: string;
37
+ order: number;
38
+ totalStops: number;
39
+ chapterTitle?: string;
40
+ locationName: string;
41
+ address?: string;
42
+ lat: number;
43
+ lng: number;
44
+ gpsRadiusM: number;
45
+ arrivalInstruction?: string;
46
+ fromPrevious?: string;
47
+ walkAudio?: PlayAssetRO | null;
48
+ walkMicroTask?: string;
49
+ storyBefore: string;
50
+ challenge: PlayChallengeRO;
51
+ photoChallenge?: {
52
+ prompt: string;
53
+ collageSlot?: number;
54
+ };
55
+ /** true — сервер перевёл точку в fallback-режим (стройка/закрыто). */
56
+ fallbackActive: boolean;
57
+ fallbackPrompt?: string;
58
+ arrived: boolean;
59
+ };
60
+ export type PlayRouteEventRO = {
61
+ id: string;
62
+ type: 'message' | 'theft_bonus' | 'timed_challenge';
63
+ from?: string;
64
+ text?: string;
65
+ bonusChallenge?: PlayChallengeRO;
66
+ bonusPoints?: number;
67
+ softTimerSeconds?: number;
68
+ };
69
+ export type PlayFinaleRO = {
70
+ puzzle?: PlayChallengeRO;
71
+ choicePrompt?: string;
72
+ choices?: Array<{
73
+ id: string;
74
+ label: string;
75
+ }>;
76
+ };
77
+ export type PlayResultRO = {
78
+ score: number;
79
+ bonusPoints: number;
80
+ durationSec: number;
81
+ hintsUsed: number;
82
+ stopsSkipped: number;
83
+ endingId?: string;
84
+ endingText?: string;
85
+ shareCard?: unknown;
86
+ /** Место в топе города за 30 дней (если игра финишировала). */
87
+ leaderboardRank?: number | null;
88
+ leaderboardTotal?: number | null;
89
+ };
90
+ export type PlayStateRO = {
91
+ sessionToken: string;
92
+ teamName: string;
93
+ language: Languages;
94
+ status: CityQuestSessionStatusEnum;
95
+ phase: CityQuestPlayPhaseEnum;
96
+ title: string;
97
+ score: number;
98
+ bonusPoints: number;
99
+ startedAt: string;
100
+ pausedAccumulatedMs: number;
101
+ /** Прогресс: сколько точек закрыто. */
102
+ solvedStops: number;
103
+ totalStops: number;
104
+ /** Собранные жетоны метазагадки — в порядке получения. */
105
+ collectedTokens: string[];
106
+ /** Состояние артефакта (ключ ассета последнего reward.artifact_state). */
107
+ artifactState?: string | null;
108
+ artifactAsset?: PlayAssetRO | null;
109
+ currentStop?: PlayStopRO | null;
110
+ /** Событие маршрута, ожидающее реакции игрока. */
111
+ pendingRouteEvent?: PlayRouteEventRO | null;
112
+ finale?: PlayFinaleRO | null;
113
+ result?: PlayResultRO | null;
114
+ onboarding?: unknown;
115
+ selfGuidedSupport?: unknown;
116
+ };
117
+ export type PlayAnswerResultRO = {
118
+ correct: boolean;
119
+ /** Пояснение решения — приходит после верного ответа/reveal. */
120
+ solutionExplanation?: string;
121
+ storyAfter?: string;
122
+ historicalNote?: string;
123
+ earnedToken?: string;
124
+ /** Секунды до следующей попытки (rate-limit после серии ошибок). */
125
+ cooldownSeconds?: number;
126
+ state: PlayStateRO;
127
+ };
128
+ export type PlayAccessInfoRO = {
129
+ valid: boolean;
130
+ title?: string;
131
+ tagline?: string;
132
+ city?: string;
133
+ durationMinutes?: number;
134
+ distanceKm?: number;
135
+ availableLanguages?: Languages[];
136
+ /** Уже начатые командные сессии этого доступа. */
137
+ sessions?: Array<{
138
+ sessionToken: string;
139
+ teamName: string;
140
+ status: CityQuestSessionStatusEnum;
141
+ score: number;
142
+ }>;
143
+ expiresAt?: string | null;
144
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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),
@@ -73,7 +73,7 @@ class SignOrderDTO {
73
73
  exports.SignOrderDTO = SignOrderDTO;
74
74
  __decorate([
75
75
  (0, class_validator_1.ValidateIf)(({ step }) => step === 'sign'),
76
- (0, class_validator_1.IsBoolean)(),
76
+ (0, class_validator_1.Equals)(true, { message: 'agree Required' }),
77
77
  (0, class_transformer_1.Expose)(),
78
78
  __metadata("design:type", Boolean)
79
79
  ], SignOrderDTO.prototype, "agree", void 0);
@@ -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 = {}));
@@ -36,6 +36,8 @@ export declare class QuestroomAdminRO extends QuestroomRO {
36
36
  minPrice: number;
37
37
  maxPrice: number;
38
38
  top: boolean;
39
+ /** Приоритетное размещение в агрегаторе. Меняется только супер-админом. */
40
+ promoted: boolean;
39
41
  verified: boolean;
40
42
  location: LocationAdminRO;
41
43
  techlocales: QuestroomLocale[];
@@ -129,6 +129,10 @@ __decorate([
129
129
  (0, class_transformer_1.Expose)(),
130
130
  __metadata("design:type", Boolean)
131
131
  ], QuestroomAdminRO.prototype, "top", void 0);
132
+ __decorate([
133
+ (0, class_transformer_1.Expose)(),
134
+ __metadata("design:type", Boolean)
135
+ ], QuestroomAdminRO.prototype, "promoted", void 0);
132
136
  __decorate([
133
137
  (0, class_transformer_1.Expose)(),
134
138
  __metadata("design:type", Boolean)