@escapenavigator/types 2.0.21 → 2.0.22
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/city-attraction/city-attraction.ro.d.ts +2 -0
- package/dist/city-attraction/create-city-attraction.dto.d.ts +1 -0
- package/dist/city-attraction/create-city-attraction.dto.js +6 -0
- package/dist/openapi/city-player/city-entitlement.dto.d.ts +23 -0
- package/dist/openapi/city-player/city-entitlement.dto.js +81 -0
- package/dist/openapi/city-player/city-explore.ro.d.ts +5 -0
- package/dist/openapi/city-player/city-player.ro.d.ts +9 -0
- package/dist/openapi/city-player/city-ready-route.ro.d.ts +10 -0
- package/dist/shared/city-pipeline.d.ts +6 -4
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -44,6 +44,8 @@ export type CityAttractionRO = ResponseObject & {
|
|
|
44
44
|
wikidataId: string | null;
|
|
45
45
|
googlePlaceId: string | null;
|
|
46
46
|
archived: boolean;
|
|
47
|
+
/** Free-mode preview: up to 3 per city fully unlocked without city pack. */
|
|
48
|
+
isFreePreview: boolean;
|
|
47
49
|
source: AttractionSourceEnum;
|
|
48
50
|
reviewStatus: AttractionReviewStatusEnum;
|
|
49
51
|
rejectionReason: string | null;
|
|
@@ -34,6 +34,7 @@ export declare class CreateCityAttractionDto {
|
|
|
34
34
|
wikidataId?: string | null;
|
|
35
35
|
googlePlaceId?: string | null;
|
|
36
36
|
archived?: boolean;
|
|
37
|
+
isFreePreview?: boolean;
|
|
37
38
|
source?: AttractionSourceEnum;
|
|
38
39
|
reviewStatus?: AttractionReviewStatusEnum;
|
|
39
40
|
rejectionReason?: string | null;
|
|
@@ -195,6 +195,12 @@ __decorate([
|
|
|
195
195
|
(0, class_transformer_1.Expose)(),
|
|
196
196
|
__metadata("design:type", Boolean)
|
|
197
197
|
], CreateCityAttractionDto.prototype, "archived", void 0);
|
|
198
|
+
__decorate([
|
|
199
|
+
(0, class_validator_1.IsOptional)(),
|
|
200
|
+
(0, class_validator_1.IsBoolean)(),
|
|
201
|
+
(0, class_transformer_1.Expose)(),
|
|
202
|
+
__metadata("design:type", Boolean)
|
|
203
|
+
], CreateCityAttractionDto.prototype, "isFreePreview", void 0);
|
|
198
204
|
__decorate([
|
|
199
205
|
(0, class_validator_1.IsOptional)(),
|
|
200
206
|
(0, class_validator_1.IsEnum)(attraction_source_enum_1.AttractionSourceEnum),
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare enum CityPlayerEntitlementScopeDtoEnum {
|
|
2
|
+
ROUTE = "route",
|
|
3
|
+
CITY = "city",
|
|
4
|
+
QUEST = "quest",
|
|
5
|
+
PASS = "pass"
|
|
6
|
+
}
|
|
7
|
+
export declare class CityPlayerDevGrantDto {
|
|
8
|
+
scope: CityPlayerEntitlementScopeDtoEnum;
|
|
9
|
+
scopeId?: number | null;
|
|
10
|
+
/** Matches CITY_ENTITLEMENT_DEV_SECRET when set. */
|
|
11
|
+
secret?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class CityPlayerDevRevokeDto {
|
|
14
|
+
entitlementId: number;
|
|
15
|
+
secret?: string;
|
|
16
|
+
}
|
|
17
|
+
/** After StoreKit/Play purchase via RevenueCat — grant entitlement on our side. */
|
|
18
|
+
export declare class CityPlayerIapGrantDto {
|
|
19
|
+
scope: CityPlayerEntitlementScopeDtoEnum;
|
|
20
|
+
scopeId?: number | null;
|
|
21
|
+
storeTransactionId: string;
|
|
22
|
+
productId?: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
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.CityPlayerIapGrantDto = exports.CityPlayerDevRevokeDto = exports.CityPlayerDevGrantDto = exports.CityPlayerEntitlementScopeDtoEnum = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
var CityPlayerEntitlementScopeDtoEnum;
|
|
16
|
+
(function (CityPlayerEntitlementScopeDtoEnum) {
|
|
17
|
+
CityPlayerEntitlementScopeDtoEnum["ROUTE"] = "route";
|
|
18
|
+
CityPlayerEntitlementScopeDtoEnum["CITY"] = "city";
|
|
19
|
+
CityPlayerEntitlementScopeDtoEnum["QUEST"] = "quest";
|
|
20
|
+
CityPlayerEntitlementScopeDtoEnum["PASS"] = "pass";
|
|
21
|
+
})(CityPlayerEntitlementScopeDtoEnum || (exports.CityPlayerEntitlementScopeDtoEnum = CityPlayerEntitlementScopeDtoEnum = {}));
|
|
22
|
+
class CityPlayerDevGrantDto {
|
|
23
|
+
}
|
|
24
|
+
exports.CityPlayerDevGrantDto = CityPlayerDevGrantDto;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_validator_1.IsEnum)(CityPlayerEntitlementScopeDtoEnum),
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], CityPlayerDevGrantDto.prototype, "scope", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsInt)(),
|
|
33
|
+
(0, class_transformer_1.Expose)(),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], CityPlayerDevGrantDto.prototype, "scopeId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_validator_1.IsOptional)(),
|
|
38
|
+
(0, class_validator_1.IsString)(),
|
|
39
|
+
(0, class_transformer_1.Expose)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], CityPlayerDevGrantDto.prototype, "secret", void 0);
|
|
42
|
+
class CityPlayerDevRevokeDto {
|
|
43
|
+
}
|
|
44
|
+
exports.CityPlayerDevRevokeDto = CityPlayerDevRevokeDto;
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.IsInt)(),
|
|
47
|
+
(0, class_transformer_1.Expose)(),
|
|
48
|
+
__metadata("design:type", Number)
|
|
49
|
+
], CityPlayerDevRevokeDto.prototype, "entitlementId", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, class_validator_1.IsOptional)(),
|
|
52
|
+
(0, class_validator_1.IsString)(),
|
|
53
|
+
(0, class_transformer_1.Expose)(),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], CityPlayerDevRevokeDto.prototype, "secret", void 0);
|
|
56
|
+
/** After StoreKit/Play purchase via RevenueCat — grant entitlement on our side. */
|
|
57
|
+
class CityPlayerIapGrantDto {
|
|
58
|
+
}
|
|
59
|
+
exports.CityPlayerIapGrantDto = CityPlayerIapGrantDto;
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, class_validator_1.IsEnum)(CityPlayerEntitlementScopeDtoEnum),
|
|
62
|
+
(0, class_transformer_1.Expose)(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], CityPlayerIapGrantDto.prototype, "scope", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_validator_1.IsOptional)(),
|
|
67
|
+
(0, class_validator_1.IsInt)(),
|
|
68
|
+
(0, class_transformer_1.Expose)(),
|
|
69
|
+
__metadata("design:type", Number)
|
|
70
|
+
], CityPlayerIapGrantDto.prototype, "scopeId", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_validator_1.IsString)(),
|
|
73
|
+
(0, class_transformer_1.Expose)(),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], CityPlayerIapGrantDto.prototype, "storeTransactionId", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, class_validator_1.IsOptional)(),
|
|
78
|
+
(0, class_validator_1.IsString)(),
|
|
79
|
+
(0, class_transformer_1.Expose)(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], CityPlayerIapGrantDto.prototype, "productId", void 0);
|
|
@@ -45,6 +45,8 @@ export type CityPlayerPersonDetailRO = {
|
|
|
45
45
|
name: string;
|
|
46
46
|
knownFor: string | null;
|
|
47
47
|
description: string | null;
|
|
48
|
+
/** True when deep bio needs city pack / pass. */
|
|
49
|
+
descriptionLocked?: boolean;
|
|
48
50
|
photoUrl: string | null;
|
|
49
51
|
photos: string[];
|
|
50
52
|
domains: PersonDomainEnum[];
|
|
@@ -89,6 +91,9 @@ export type CityPlayerAttractionMapItemRO = {
|
|
|
89
91
|
cards: CityPlayerAttractionCardRO[];
|
|
90
92
|
funFact: CityPlayerAttractionFunFactRO | null;
|
|
91
93
|
lookFor: string[];
|
|
94
|
+
/** True when guide content is gated (needs city pack / pass). */
|
|
95
|
+
locked: boolean;
|
|
96
|
+
isFreePreview: boolean;
|
|
92
97
|
/**
|
|
93
98
|
* Нормированная значимость места 0..1 (fame + mustSee + wow).
|
|
94
99
|
* Управляет размером маркера на карте: топ-вехи крупнее.
|
|
@@ -46,8 +46,12 @@ export type CityPlayerCatalogGameRO = {
|
|
|
46
46
|
cityQuestId: number;
|
|
47
47
|
key: string;
|
|
48
48
|
title: string;
|
|
49
|
+
tagline?: string | null;
|
|
49
50
|
coverUrl?: string | null;
|
|
50
51
|
availableLanguages: Languages[];
|
|
52
|
+
durationMinutes?: number | null;
|
|
53
|
+
distanceKm?: number | null;
|
|
54
|
+
pointsCount?: number;
|
|
51
55
|
/**
|
|
52
56
|
* Ссылка на booking-страницу виджета привязанного questroom
|
|
53
57
|
* (`{ordersDomain}/booking/{widgetUuid}`). Плеер открывает её для
|
|
@@ -96,6 +100,7 @@ export type CityPlayerQuestPreviewRO = {
|
|
|
96
100
|
title: string;
|
|
97
101
|
tagline?: string | null;
|
|
98
102
|
city?: string | null;
|
|
103
|
+
cityId?: number | null;
|
|
99
104
|
coverUrl?: string | null;
|
|
100
105
|
voicedBy?: string | null;
|
|
101
106
|
durationMinutes?: number | null;
|
|
@@ -106,4 +111,8 @@ export type CityPlayerQuestPreviewRO = {
|
|
|
106
111
|
bookingUrl?: string | null;
|
|
107
112
|
/** Ключевые вехи маршрута для схемы (фото + название + координаты). */
|
|
108
113
|
keyMilestones: PlayKeyMilestoneRO[];
|
|
114
|
+
/** Entitlement / IAP unlock for this quest (logged-in player). */
|
|
115
|
+
fullyUnlocked?: boolean;
|
|
116
|
+
/** Ready-to-play access token when player already owns the quest. */
|
|
117
|
+
accessToken?: string | null;
|
|
109
118
|
};
|
|
@@ -33,6 +33,8 @@ export type CityPlayerReadyRouteStopRO = {
|
|
|
33
33
|
/** Озвучка guideTalk стопа (маршрутная, не аудио самой точки). */
|
|
34
34
|
guideAudioUrl: string | null;
|
|
35
35
|
guideAudioDurationSec: number | null;
|
|
36
|
+
/** True when stop is past freemium and user has no entitlement. */
|
|
37
|
+
locked: boolean;
|
|
36
38
|
/**
|
|
37
39
|
* Нормированная значимость места 0..1 (fame + mustSee + wow).
|
|
38
40
|
* Управляет размером маркера на карте: топ-вехи крупнее.
|
|
@@ -41,6 +43,13 @@ export type CityPlayerReadyRouteStopRO = {
|
|
|
41
43
|
/** Личности, связанные с точкой стопа. */
|
|
42
44
|
people: CityPlayerAttractionPersonRO[];
|
|
43
45
|
};
|
|
46
|
+
export type CityPlayerContentAccessRO = {
|
|
47
|
+
freeStopCount: number;
|
|
48
|
+
routeUnlocked: boolean;
|
|
49
|
+
cityUnlocked: boolean;
|
|
50
|
+
passActive: boolean;
|
|
51
|
+
fullyUnlocked: boolean;
|
|
52
|
+
};
|
|
44
53
|
export type CityPlayerReadyRouteDetailRO = {
|
|
45
54
|
routeId: number;
|
|
46
55
|
cityId: number;
|
|
@@ -55,6 +64,7 @@ export type CityPlayerReadyRouteDetailRO = {
|
|
|
55
64
|
durationToMinutes: number | null;
|
|
56
65
|
distanceKm: number | null;
|
|
57
66
|
stopsCount: number;
|
|
67
|
+
access: CityPlayerContentAccessRO;
|
|
58
68
|
/** Attraction stops only (waypoints omitted from markers). */
|
|
59
69
|
stops: CityPlayerReadyRouteStopRO[];
|
|
60
70
|
/** Full path including invisible waypoints [lng, lat]. */
|
|
@@ -14,10 +14,12 @@ export declare class StartCityPipelineDto {
|
|
|
14
14
|
*/
|
|
15
15
|
withEnglish?: boolean;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* true — дополнительно сгенерировать AI-тексты (content-ru/content-en)
|
|
18
|
+
* для точек без контента (существующие тексты не перезаписываются).
|
|
19
|
+
* По умолчанию false — режим «скелет»: импорт → ресёрч → триаж →
|
|
20
|
+
* обогащение → автосвязи; тексты пишет редактор/агент по плейбуку.
|
|
21
|
+
* Генерация уместна как базовый черновик для «хвостовых» городов
|
|
22
|
+
* без ручной редактуры.
|
|
21
23
|
*/
|
|
22
24
|
withContent?: boolean;
|
|
23
25
|
/**
|