@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.
- package/dist/agregator/agregator-questroom-card.ro.d.ts +6 -0
- package/dist/agregator/agregator-questroom-card.ro.js +4 -0
- package/dist/agregator/agregator-questrooms-and-cities.ro.d.ts +8 -0
- package/dist/agregator/agregator-questrooms-and-cities.ro.js +4 -0
- package/dist/city-quest/bind-city-quest.dto.d.ts +4 -0
- package/dist/city-quest/bind-city-quest.dto.js +22 -0
- package/dist/city-quest/city-quest-content.d.ts +159 -0
- package/dist/city-quest/city-quest-content.js +2 -0
- package/dist/city-quest/city-quest.ro.d.ts +29 -0
- package/dist/city-quest/city-quest.ro.js +89 -0
- package/dist/city-quest/enum/city-quest-play-phase.enum.d.ts +6 -0
- package/dist/city-quest/enum/city-quest-play-phase.enum.js +10 -0
- package/dist/city-quest/enum/city-quest-session-event-type.enum.d.ts +18 -0
- package/dist/city-quest/enum/city-quest-session-event-type.enum.js +22 -0
- package/dist/city-quest/enum/city-quest-session-status.enum.d.ts +5 -0
- package/dist/city-quest/enum/city-quest-session-status.enum.js +9 -0
- package/dist/city-quest/enum/city-quest-status.enum.d.ts +7 -0
- package/dist/city-quest/enum/city-quest-status.enum.js +11 -0
- package/dist/city-quest/import-city-quest.dto.d.ts +6 -0
- package/dist/city-quest/import-city-quest.dto.js +28 -0
- package/dist/city-quest/update-city-quest.dto.d.ts +5 -0
- package/dist/city-quest/update-city-quest.dto.js +30 -0
- package/dist/city-quest/upsert-city-quest-asset.dto.d.ts +11 -0
- package/dist/city-quest/upsert-city-quest-asset.dto.js +40 -0
- package/dist/forms/widget/widget-players-form.dto.d.ts +5 -0
- package/dist/forms/widget/widget-players-form.dto.js +5 -0
- package/dist/openapi/city-quest/play-answer.dto.d.ts +5 -0
- package/dist/openapi/city-quest/play-answer.dto.js +30 -0
- package/dist/openapi/city-quest/play-finale-choice.dto.d.ts +3 -0
- package/dist/openapi/city-quest/play-finale-choice.dto.js +23 -0
- package/dist/openapi/city-quest/play-hint.dto.d.ts +3 -0
- package/dist/openapi/city-quest/play-hint.dto.js +22 -0
- package/dist/openapi/city-quest/play-issue.dto.d.ts +3 -0
- package/dist/openapi/city-quest/play-issue.dto.js +23 -0
- package/dist/openapi/city-quest/play-start-session.dto.d.ts +8 -0
- package/dist/openapi/city-quest/play-start-session.dto.js +41 -0
- package/dist/openapi/city-quest/play-state.ro.d.ts +144 -0
- package/dist/openapi/city-quest/play-state.ro.js +2 -0
- package/dist/openapi/orders/openapi-create-preorder.dto.d.ts +8 -0
- package/dist/openapi/orders/openapi-create-preorder.dto.js +6 -0
- package/dist/openapi/orders/openapi-order.ro.d.ts +6 -0
- package/dist/openapi/orders/openapi-order.ro.js +4 -0
- package/dist/openapi/orders/openapi-update-order.dto.d.ts +6 -0
- package/dist/openapi/orders/openapi-update-order.dto.js +6 -0
- package/dist/openapi/shared/openapi-questroom.ro.d.ts +2 -1
- package/dist/openapi/shared/openapi-questroom.ro.js +3 -2
- package/dist/order/order.ro.d.ts +6 -0
- package/dist/order/order.ro.js +4 -0
- package/dist/order/waivers/sign-order.dto.js +1 -1
- package/dist/questroom/create-questroom.dto.d.ts +2 -1
- package/dist/questroom/create-questroom.dto.js +5 -4
- package/dist/questroom/enum/players-select-mode.enum.d.ts +22 -0
- package/dist/questroom/enum/players-select-mode.enum.js +26 -0
- package/dist/questroom/questroom-admin.ro.d.ts +2 -0
- package/dist/questroom/questroom-admin.ro.js +4 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/widget-funnel/widget-funnel-dimension.js +15 -5
- package/package.json +2 -2
|
@@ -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,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,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,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
|
+
};
|
|
@@ -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
|
-
|
|
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",
|
|
224
|
-
], OpenapiQuestroomRO.prototype, "
|
|
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)
|
package/dist/order/order.ro.d.ts
CHANGED
|
@@ -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
|
/**
|
package/dist/order/order.ro.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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.
|
|
305
|
-
(0, class_transformer_1.Transform)(({ 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",
|
|
308
|
-
], CreateQuestroomDto.prototype, "
|
|
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)
|