@escapenavigator/types 2.0.13 → 2.0.15

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 (150) hide show
  1. package/dist/city-attraction/attraction-content-languages.d.ts +5 -0
  2. package/dist/city-attraction/attraction-content-languages.js +14 -0
  3. package/dist/city-attraction/attraction-content-prompt-version.d.ts +1 -0
  4. package/dist/city-attraction/attraction-content-prompt-version.js +5 -0
  5. package/dist/city-attraction/attraction-content.d.ts +24 -0
  6. package/dist/city-attraction/attraction-route-meta.d.ts +21 -0
  7. package/dist/city-attraction/attraction-triage.d.ts +29 -0
  8. package/dist/city-attraction/attraction-triage.js +41 -0
  9. package/dist/city-attraction/city-attraction-artifact.ro.d.ts +19 -0
  10. package/dist/city-attraction/city-attraction-artifact.ro.js +2 -0
  11. package/dist/city-attraction/city-attraction-locale.ro.d.ts +15 -0
  12. package/dist/city-attraction/city-attraction-locale.ro.js +2 -0
  13. package/dist/city-attraction/city-attraction.ro.d.ts +49 -0
  14. package/dist/city-attraction/city-attraction.ro.js +2 -0
  15. package/dist/city-attraction/create-city-attraction.dto.d.ts +40 -0
  16. package/dist/city-attraction/create-city-attraction.dto.js +215 -0
  17. package/dist/city-attraction/enum/attraction-artifact-kind.enum.d.ts +13 -0
  18. package/dist/city-attraction/enum/attraction-artifact-kind.enum.js +17 -0
  19. package/dist/city-attraction/enum/attraction-category.enum.d.ts +21 -0
  20. package/dist/city-attraction/enum/attraction-category.enum.js +25 -0
  21. package/dist/city-attraction/enum/attraction-fame.enum.d.ts +10 -0
  22. package/dist/city-attraction/enum/attraction-fame.enum.js +14 -0
  23. package/dist/city-attraction/enum/attraction-fun-fact-kind.enum.d.ts +4 -0
  24. package/dist/city-attraction/enum/attraction-fun-fact-kind.enum.js +8 -0
  25. package/dist/city-attraction/enum/attraction-indoor-outdoor.enum.d.ts +5 -0
  26. package/dist/city-attraction/enum/attraction-indoor-outdoor.enum.js +9 -0
  27. package/dist/city-attraction/enum/attraction-locale-status.enum.d.ts +11 -0
  28. package/dist/city-attraction/enum/attraction-locale-status.enum.js +15 -0
  29. package/dist/city-attraction/enum/attraction-review-status.enum.d.ts +10 -0
  30. package/dist/city-attraction/enum/attraction-review-status.enum.js +14 -0
  31. package/dist/city-attraction/enum/attraction-route-role.enum.d.ts +11 -0
  32. package/dist/city-attraction/enum/attraction-route-role.enum.js +15 -0
  33. package/dist/city-attraction/enum/attraction-source.enum.d.ts +12 -0
  34. package/dist/city-attraction/enum/attraction-source.enum.js +16 -0
  35. package/dist/city-attraction/moderate-city-attraction.dto.d.ts +5 -0
  36. package/dist/{partners-portal/admin/admin-moderate-portal-story.dto.js → city-attraction/moderate-city-attraction.dto.js} +7 -13
  37. package/dist/city-attraction/update-city-attraction.dto.d.ts +5 -0
  38. package/dist/city-attraction/update-city-attraction.dto.js +8 -0
  39. package/dist/city-attraction/upsert-city-attraction-artifact.dto.d.ts +19 -0
  40. package/dist/city-attraction/upsert-city-attraction-artifact.dto.js +104 -0
  41. package/dist/city-attraction/upsert-city-attraction-locale.dto.d.ts +14 -0
  42. package/dist/city-attraction/upsert-city-attraction-locale.dto.js +62 -0
  43. package/dist/city-person/city-person-attraction-link.dto.d.ts +12 -0
  44. package/dist/city-person/city-person-attraction-link.dto.js +61 -0
  45. package/dist/city-person/city-person-attraction-link.ro.d.ts +15 -0
  46. package/dist/city-person/city-person-attraction-link.ro.js +2 -0
  47. package/dist/city-person/city-person-locale.ro.d.ts +15 -0
  48. package/dist/city-person/city-person-locale.ro.js +2 -0
  49. package/dist/city-person/city-person.ro.d.ts +31 -0
  50. package/dist/city-person/city-person.ro.js +2 -0
  51. package/dist/city-person/create-city-person.dto.d.ts +24 -0
  52. package/dist/city-person/create-city-person.dto.js +128 -0
  53. package/dist/city-person/enum/person-attraction-role.enum.d.ts +8 -0
  54. package/dist/city-person/enum/person-attraction-role.enum.js +12 -0
  55. package/dist/city-person/enum/person-domain.enum.d.ts +5 -0
  56. package/dist/city-person/enum/person-domain.enum.js +9 -0
  57. package/dist/city-person/enum/person-fact-kind.enum.d.ts +7 -0
  58. package/dist/city-person/enum/person-fact-kind.enum.js +11 -0
  59. package/dist/city-person/enum/person-locale-status.enum.d.ts +8 -0
  60. package/dist/city-person/enum/person-locale-status.enum.js +12 -0
  61. package/dist/city-person/enum/person-occupation.enum.d.ts +21 -0
  62. package/dist/city-person/enum/person-occupation.enum.js +25 -0
  63. package/dist/city-person/enum/person-source.enum.d.ts +7 -0
  64. package/dist/city-person/enum/person-source.enum.js +11 -0
  65. package/dist/city-person/person-attraction-facts.d.ts +3 -0
  66. package/dist/city-person/person-attraction-facts.js +2 -0
  67. package/dist/city-person/person-content-languages.d.ts +5 -0
  68. package/dist/city-person/person-content-languages.js +14 -0
  69. package/dist/city-person/person-content-prompt-version.d.ts +2 -0
  70. package/dist/city-person/person-content-prompt-version.js +5 -0
  71. package/dist/city-person/person-locale-fact.d.ts +7 -0
  72. package/dist/city-person/person-locale-fact.js +2 -0
  73. package/dist/city-person/update-city-person.dto.d.ts +5 -0
  74. package/dist/city-person/update-city-person.dto.js +8 -0
  75. package/dist/city-person/upsert-city-person-locale.dto.d.ts +21 -0
  76. package/dist/{partners-portal/create-portal-story.dto.js → city-person/upsert-city-person-locale.dto.js} +35 -32
  77. package/dist/city-person/wikidata-autolink.d.ts +23 -0
  78. package/dist/city-person/wikidata-autolink.js +23 -0
  79. package/dist/city-quest/city-quest-content.d.ts +19 -5
  80. package/dist/city-quest/city-quest-locale-content.d.ts +35 -0
  81. package/dist/city-quest/city-quest-locale-content.js +2 -0
  82. package/dist/city-quest/city-quest-locale.ro.d.ts +12 -0
  83. package/dist/city-quest/city-quest-locale.ro.js +2 -0
  84. package/dist/city-quest/city-quest.ro.d.ts +11 -4
  85. package/dist/city-quest/city-quest.ro.js +17 -1
  86. package/dist/city-quest/enum/city-quest-locale-status.enum.d.ts +11 -0
  87. package/dist/city-quest/enum/city-quest-locale-status.enum.js +15 -0
  88. package/dist/city-quest/enum/city-quest-status.enum.d.ts +10 -5
  89. package/dist/city-quest/enum/city-quest-status.enum.js +9 -4
  90. package/dist/city-quest/quest-content-languages.d.ts +5 -0
  91. package/dist/city-quest/quest-content-languages.js +14 -0
  92. package/dist/city-quest/update-city-quest-content.dto.d.ts +5 -0
  93. package/dist/city-quest/update-city-quest-content.dto.js +23 -0
  94. package/dist/city-quest/update-city-quest-stop.dto.d.ts +9 -0
  95. package/dist/city-quest/update-city-quest-stop.dto.js +45 -0
  96. package/dist/city-quest/update-city-quest.dto.d.ts +6 -1
  97. package/dist/city-quest/update-city-quest.dto.js +12 -0
  98. package/dist/city-quest/upsert-city-quest-locale.dto.d.ts +10 -0
  99. package/dist/{partners-portal/update-portal-story.dto.js → city-quest/upsert-city-quest-locale.dto.js} +14 -17
  100. package/dist/google-places/apply-google-places-match.dto.d.ts +4 -0
  101. package/dist/google-places/apply-google-places-match.dto.js +25 -0
  102. package/dist/google-places/google-places-country-stats.ro.d.ts +10 -0
  103. package/dist/google-places/google-places-country-stats.ro.js +45 -0
  104. package/dist/google-places/google-places-match-preview.ro.d.ts +19 -0
  105. package/dist/google-places/google-places-match-preview.ro.js +67 -0
  106. package/dist/google-places/google-places.ro.d.ts +7 -0
  107. package/dist/google-places/google-places.ro.js +25 -1
  108. package/dist/google-places/update-google-places.dto.d.ts +2 -2
  109. package/dist/google-places/update-google-places.dto.js +2 -0
  110. package/dist/openapi/city-player/city-player.ro.d.ts +27 -0
  111. package/dist/openapi/city-player/free-route.d.ts +35 -0
  112. package/dist/openapi/city-player/free-route.js +2 -0
  113. package/dist/openapi/city-quest/play-state.ro.d.ts +15 -0
  114. package/dist/partners-portal/admin/admin-portal-partner.ro.d.ts +3 -3
  115. package/dist/partners-portal/create-partner-attraction.dto.d.ts +33 -0
  116. package/dist/partners-portal/create-partner-attraction.dto.js +173 -0
  117. package/dist/partners-portal/partner-city-quest.dto.d.ts +31 -0
  118. package/dist/partners-portal/partner-city-quest.dto.js +160 -0
  119. package/dist/partners-portal/partner-city-quest.ro.d.ts +11 -0
  120. package/dist/partners-portal/partner-city-quest.ro.js +2 -0
  121. package/dist/partners-portal/portal-stats.ro.d.ts +6 -6
  122. package/dist/partners-portal/update-partner-attraction.dto.d.ts +11 -0
  123. package/dist/partners-portal/update-partner-attraction.dto.js +35 -0
  124. package/dist/shared/ai-cover.d.ts +8 -0
  125. package/dist/shared/ai-cover.js +26 -0
  126. package/dist/shared/city-pipeline.d.ts +40 -0
  127. package/dist/shared/city-pipeline.js +52 -0
  128. package/dist/shared/city-research.d.ts +46 -0
  129. package/dist/shared/city-research.js +49 -0
  130. package/dist/shared/content-batch.d.ts +27 -0
  131. package/dist/shared/content-batch.js +41 -0
  132. package/dist/shared/wikidata-enrichment.d.ts +24 -0
  133. package/dist/shared/wikidata-enrichment.js +31 -0
  134. package/dist/shared/wikidata-import.d.ts +33 -0
  135. package/dist/shared/wikidata-import.js +53 -0
  136. package/dist/tsconfig.build.tsbuildinfo +1 -1
  137. package/dist/upload/enum/image-type.enum.d.ts +3 -1
  138. package/dist/upload/enum/image-type.enum.js +2 -0
  139. package/dist/user/crud/create-user.dto.js +1 -0
  140. package/dist/user/crud/update-user.dto.js +1 -0
  141. package/package.json +2 -2
  142. package/dist/partners-portal/admin/admin-moderate-portal-story.dto.d.ts +0 -8
  143. package/dist/partners-portal/create-portal-story.dto.d.ts +0 -18
  144. package/dist/partners-portal/enum/portal-story-status.enum.d.ts +0 -12
  145. package/dist/partners-portal/enum/portal-story-status.enum.js +0 -16
  146. package/dist/partners-portal/portal-story-step.d.ts +0 -19
  147. package/dist/partners-portal/portal-story.ro.d.ts +0 -19
  148. package/dist/partners-portal/update-portal-story.dto.d.ts +0 -9
  149. /package/dist/{partners-portal/portal-story-step.js → city-attraction/attraction-content.js} +0 -0
  150. /package/dist/{partners-portal/portal-story.ro.js → city-attraction/attraction-route-meta.js} +0 -0
@@ -0,0 +1,5 @@
1
+ import { Languages } from '../shared/enum/languages.enum';
2
+ /** First-wave languages for attraction place content. */
3
+ export declare const ATTRACTION_CONTENT_LANGUAGES: readonly [Languages.EN, Languages.RU, Languages.DE, Languages.FR, Languages.ES];
4
+ export type AttractionContentLanguage = (typeof ATTRACTION_CONTENT_LANGUAGES)[number];
5
+ export declare const isAttractionContentLanguage: (lang: string) => lang is AttractionContentLanguage;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAttractionContentLanguage = exports.ATTRACTION_CONTENT_LANGUAGES = void 0;
4
+ const languages_enum_1 = require("../shared/enum/languages.enum");
5
+ /** First-wave languages for attraction place content. */
6
+ exports.ATTRACTION_CONTENT_LANGUAGES = [
7
+ languages_enum_1.Languages.EN,
8
+ languages_enum_1.Languages.RU,
9
+ languages_enum_1.Languages.DE,
10
+ languages_enum_1.Languages.FR,
11
+ languages_enum_1.Languages.ES,
12
+ ];
13
+ const isAttractionContentLanguage = (lang) => exports.ATTRACTION_CONTENT_LANGUAGES.includes(lang);
14
+ exports.isAttractionContentLanguage = isAttractionContentLanguage;
@@ -0,0 +1 @@
1
+ export declare const ATTRACTION_CONTENT_PROMPT_VERSION = "v2";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ATTRACTION_CONTENT_PROMPT_VERSION = void 0;
4
+ // v2: фирменный тон «умный друг травит байку» (стайл-гайд + few-shot).
5
+ exports.ATTRACTION_CONTENT_PROMPT_VERSION = 'v2';
@@ -0,0 +1,24 @@
1
+ import { AttractionFunFactKindEnum } from './enum/attraction-fun-fact-kind.enum';
2
+ export type AttractionContentCard = {
3
+ emoji: string;
4
+ title: string;
5
+ body: string;
6
+ };
7
+ /** @deprecated Use AttractionFunFactKindEnum */
8
+ export type AttractionFunFactKind = AttractionFunFactKindEnum | `${AttractionFunFactKindEnum}`;
9
+ export type AttractionFunFact = {
10
+ emoji?: string;
11
+ title?: string;
12
+ body: string;
13
+ kind: AttractionFunFactKindEnum;
14
+ };
15
+ /** Guide-style place content package (language-agnostic shape). */
16
+ export type AttractionContent = {
17
+ hook: string;
18
+ cards: AttractionContentCard[];
19
+ guideTalk: string;
20
+ funFact: AttractionFunFact;
21
+ lookFor: string[];
22
+ };
23
+ /** @deprecated Use AttractionContent */
24
+ export type AttractionContentRu = AttractionContent;
@@ -0,0 +1,21 @@
1
+ import { AttractionIndoorOutdoorEnum } from './enum/attraction-indoor-outdoor.enum';
2
+ /**
3
+ * Optional visit / routing hints stored on `CityAttraction.routeMeta`.
4
+ * Null fields mean “unknown” — authors fill what they know.
5
+ */
6
+ export type AttractionRouteMeta = {
7
+ indoorOutdoor?: AttractionIndoorOutdoorEnum | null;
8
+ visitDurationMin?: number | null;
9
+ visitDurationMax?: number | null;
10
+ recommendedDurationMin?: number | null;
11
+ bestTimeOfDay?: string | null;
12
+ seasonality?: string | null;
13
+ isFree?: boolean | null;
14
+ bookingRequired?: boolean | null;
15
+ ticketRequired?: boolean | null;
16
+ accessibilityNotes?: string | null;
17
+ familyFriendly?: boolean | null;
18
+ rainFriendly?: boolean | null;
19
+ nightFriendly?: boolean | null;
20
+ walkingCluster?: string | null;
21
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * AI-триаж импортированных атракшенов: авто-reject объектов без
3
+ * сторителлинг-потенциала (магистрали, вокзалы, стадионы). Только
4
+ * записи в needReview — решения админа не трогаем.
5
+ */
6
+ export declare class TriageAttractionsDto {
7
+ cityId: number;
8
+ limit?: number;
9
+ /** true — только показать вердикты, ничего не менять. */
10
+ dryRun?: boolean;
11
+ }
12
+ export type AttractionTriageVerdict = 'keep' | 'reject' | 'unsure';
13
+ export type AttractionTriageItemRO = {
14
+ id: number;
15
+ title: string;
16
+ verdict: AttractionTriageVerdict;
17
+ reason: string | null;
18
+ /** rejected — статус изменён; dry-run / kept / unsure — без изменений. */
19
+ action: 'rejected' | 'kept' | 'unsure' | 'dry-run';
20
+ };
21
+ export type AttractionTriageReportRO = {
22
+ cityId: number;
23
+ dryRun: boolean;
24
+ processed: number;
25
+ rejected: number;
26
+ kept: number;
27
+ unsure: number;
28
+ items: AttractionTriageItemRO[];
29
+ };
@@ -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.TriageAttractionsDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * AI-триаж импортированных атракшенов: авто-reject объектов без
17
+ * сторителлинг-потенциала (магистрали, вокзалы, стадионы). Только
18
+ * записи в needReview — решения админа не трогаем.
19
+ */
20
+ class TriageAttractionsDto {
21
+ }
22
+ exports.TriageAttractionsDto = TriageAttractionsDto;
23
+ __decorate([
24
+ (0, class_validator_1.IsInt)(),
25
+ (0, class_transformer_1.Expose)(),
26
+ __metadata("design:type", Number)
27
+ ], TriageAttractionsDto.prototype, "cityId", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsOptional)(),
30
+ (0, class_validator_1.IsInt)(),
31
+ (0, class_validator_1.Min)(1),
32
+ (0, class_validator_1.Max)(200),
33
+ (0, class_transformer_1.Expose)(),
34
+ __metadata("design:type", Number)
35
+ ], TriageAttractionsDto.prototype, "limit", 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
+ ], TriageAttractionsDto.prototype, "dryRun", void 0);
@@ -0,0 +1,19 @@
1
+ import { Languages } from '../shared/enum/languages.enum';
2
+ import { ResponseObject } from '../shared/ro';
3
+ import { AttractionArtifactKindEnum } from './enum/attraction-artifact-kind.enum';
4
+ export type CityAttractionArtifactRO = ResponseObject & {
5
+ attractionId: number;
6
+ personId: number | null;
7
+ kind: AttractionArtifactKindEnum;
8
+ title: string;
9
+ description: string | null;
10
+ knownFor: string | null;
11
+ /** Where to find it inside the place (floor, room, “left of altar”) — not GPS. */
12
+ findHint: string | null;
13
+ wikidataId: string | null;
14
+ photos: string[];
15
+ sortOrder: number;
16
+ archived: boolean;
17
+ /** Optional localized title overrides. */
18
+ titles?: Partial<Record<Languages, string>> | null;
19
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import { Languages } from '../shared/enum/languages.enum';
2
+ import { ResponseObject } from '../shared/ro';
3
+ import { AttractionContent } from './attraction-content';
4
+ import { AttractionLocaleStatusEnum } from './enum/attraction-locale-status.enum';
5
+ export type CityAttractionLocaleRO = ResponseObject & {
6
+ attractionId: number;
7
+ language: Languages;
8
+ title: string;
9
+ description: string | null;
10
+ knownFor: string | null;
11
+ content: AttractionContent | null;
12
+ status: AttractionLocaleStatusEnum;
13
+ contentGeneratedAt: Date | null;
14
+ contentPromptVersion: string | null;
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,49 @@
1
+ import { CountriesEnum } from '../shared/enum/countries.enum';
2
+ import { ResponseObject } from '../shared/ro';
3
+ import { AttractionRouteMeta } from './attraction-route-meta';
4
+ import { CityAttractionArtifactRO } from './city-attraction-artifact.ro';
5
+ import { CityAttractionLocaleRO } from './city-attraction-locale.ro';
6
+ import { AttractionCategoryEnum } from './enum/attraction-category.enum';
7
+ import { AttractionFameEnum } from './enum/attraction-fame.enum';
8
+ import { AttractionIndoorOutdoorEnum } from './enum/attraction-indoor-outdoor.enum';
9
+ import { AttractionReviewStatusEnum } from './enum/attraction-review-status.enum';
10
+ import { AttractionRouteRoleEnum } from './enum/attraction-route-role.enum';
11
+ import { AttractionSourceEnum } from './enum/attraction-source.enum';
12
+ export type CityAttractionRO = ResponseObject & {
13
+ title: string;
14
+ description: string | null;
15
+ knownFor: string | null;
16
+ knownForRu: string | null;
17
+ category: AttractionCategoryEnum;
18
+ fame: AttractionFameEnum;
19
+ country: CountriesEnum;
20
+ cityId: number;
21
+ cityTitle?: string | null;
22
+ address: string | null;
23
+ district: string | null;
24
+ lat: number | null;
25
+ lng: number | null;
26
+ photos: string[];
27
+ coverPhotoIndex: number | null;
28
+ /** Языки, на которых уже есть готовый контент локали (hook). */
29
+ languages?: string[];
30
+ tags: string[];
31
+ mustSeeScore: number | null;
32
+ wowScore: number | null;
33
+ touristCrowdScore: number | null;
34
+ localExperienceScore: number | null;
35
+ routeRole: AttractionRouteRoleEnum | null;
36
+ routePriority: number | null;
37
+ /** Mirrored from `routeMeta.indoorOutdoor` for form convenience. */
38
+ indoorOutdoor?: AttractionIndoorOutdoorEnum | null;
39
+ routeMeta?: AttractionRouteMeta | null;
40
+ wikidataId: string | null;
41
+ googlePlaceId: string | null;
42
+ archived: boolean;
43
+ source: AttractionSourceEnum;
44
+ reviewStatus: AttractionReviewStatusEnum;
45
+ rejectionReason: string | null;
46
+ createdByPartnerId: number | null;
47
+ locales?: CityAttractionLocaleRO[];
48
+ artifacts?: CityAttractionArtifactRO[];
49
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,40 @@
1
+ import { CountriesEnum } from '../shared/enum/countries.enum';
2
+ import { AttractionRouteMeta } from './attraction-route-meta';
3
+ import { AttractionCategoryEnum } from './enum/attraction-category.enum';
4
+ import { AttractionFameEnum } from './enum/attraction-fame.enum';
5
+ import { AttractionIndoorOutdoorEnum } from './enum/attraction-indoor-outdoor.enum';
6
+ import { AttractionReviewStatusEnum } from './enum/attraction-review-status.enum';
7
+ import { AttractionRouteRoleEnum } from './enum/attraction-route-role.enum';
8
+ import { AttractionSourceEnum } from './enum/attraction-source.enum';
9
+ export declare class CreateCityAttractionDto {
10
+ title: string;
11
+ description?: string | null;
12
+ knownFor?: string | null;
13
+ knownForRu?: string | null;
14
+ category: AttractionCategoryEnum;
15
+ fame: AttractionFameEnum;
16
+ country: CountriesEnum;
17
+ cityId: number;
18
+ address?: string | null;
19
+ district?: string | null;
20
+ lat?: number | null;
21
+ lng?: number | null;
22
+ photos?: string[];
23
+ coverPhotoIndex?: number | null;
24
+ tags?: string[];
25
+ mustSeeScore?: number | null;
26
+ wowScore?: number | null;
27
+ touristCrowdScore?: number | null;
28
+ localExperienceScore?: number | null;
29
+ routeRole?: AttractionRouteRoleEnum | null;
30
+ routePriority?: number | null;
31
+ /** Convenience field; persisted into `routeMeta.indoorOutdoor`. */
32
+ indoorOutdoor?: AttractionIndoorOutdoorEnum | null;
33
+ routeMeta?: AttractionRouteMeta | null;
34
+ wikidataId?: string | null;
35
+ googlePlaceId?: string | null;
36
+ archived?: boolean;
37
+ source?: AttractionSourceEnum;
38
+ reviewStatus?: AttractionReviewStatusEnum;
39
+ rejectionReason?: string | null;
40
+ }
@@ -0,0 +1,215 @@
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.CreateCityAttractionDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const countries_enum_1 = require("../shared/enum/countries.enum");
16
+ const is_not_blank_1 = require("../shared/is-not-blank");
17
+ const attraction_category_enum_1 = require("./enum/attraction-category.enum");
18
+ const attraction_fame_enum_1 = require("./enum/attraction-fame.enum");
19
+ const attraction_indoor_outdoor_enum_1 = require("./enum/attraction-indoor-outdoor.enum");
20
+ const attraction_review_status_enum_1 = require("./enum/attraction-review-status.enum");
21
+ const attraction_route_role_enum_1 = require("./enum/attraction-route-role.enum");
22
+ const attraction_source_enum_1 = require("./enum/attraction-source.enum");
23
+ class CreateCityAttractionDto {
24
+ }
25
+ exports.CreateCityAttractionDto = CreateCityAttractionDto;
26
+ __decorate([
27
+ (0, is_not_blank_1.IsNotBlank)(),
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", String)
30
+ ], CreateCityAttractionDto.prototype, "title", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_transformer_1.Expose)(),
35
+ __metadata("design:type", String)
36
+ ], CreateCityAttractionDto.prototype, "description", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsOptional)(),
39
+ (0, class_validator_1.IsString)(),
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", String)
42
+ ], CreateCityAttractionDto.prototype, "knownFor", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.IsString)(),
46
+ (0, class_transformer_1.Expose)(),
47
+ __metadata("design:type", String)
48
+ ], CreateCityAttractionDto.prototype, "knownForRu", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsEnum)(attraction_category_enum_1.AttractionCategoryEnum),
51
+ (0, class_transformer_1.Expose)(),
52
+ __metadata("design:type", String)
53
+ ], CreateCityAttractionDto.prototype, "category", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsEnum)(attraction_fame_enum_1.AttractionFameEnum),
56
+ (0, class_transformer_1.Expose)(),
57
+ __metadata("design:type", String)
58
+ ], CreateCityAttractionDto.prototype, "fame", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsEnum)(countries_enum_1.CountriesEnum),
61
+ (0, class_transformer_1.Expose)(),
62
+ __metadata("design:type", String)
63
+ ], CreateCityAttractionDto.prototype, "country", void 0);
64
+ __decorate([
65
+ (0, class_transformer_1.Type)(() => Number),
66
+ (0, class_validator_1.IsInt)(),
67
+ (0, class_transformer_1.Expose)(),
68
+ __metadata("design:type", Number)
69
+ ], CreateCityAttractionDto.prototype, "cityId", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsOptional)(),
72
+ (0, class_validator_1.IsString)(),
73
+ (0, class_transformer_1.Expose)(),
74
+ __metadata("design:type", String)
75
+ ], CreateCityAttractionDto.prototype, "address", 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
+ ], CreateCityAttractionDto.prototype, "district", void 0);
82
+ __decorate([
83
+ (0, class_validator_1.IsOptional)(),
84
+ (0, class_transformer_1.Type)(() => Number),
85
+ (0, class_validator_1.IsNumber)(),
86
+ (0, class_transformer_1.Expose)(),
87
+ __metadata("design:type", Number)
88
+ ], CreateCityAttractionDto.prototype, "lat", void 0);
89
+ __decorate([
90
+ (0, class_validator_1.IsOptional)(),
91
+ (0, class_transformer_1.Type)(() => Number),
92
+ (0, class_validator_1.IsNumber)(),
93
+ (0, class_transformer_1.Expose)(),
94
+ __metadata("design:type", Number)
95
+ ], CreateCityAttractionDto.prototype, "lng", void 0);
96
+ __decorate([
97
+ (0, class_validator_1.IsOptional)(),
98
+ (0, class_validator_1.IsArray)(),
99
+ (0, class_validator_1.IsString)({ each: true }),
100
+ (0, class_transformer_1.Expose)(),
101
+ __metadata("design:type", Array)
102
+ ], CreateCityAttractionDto.prototype, "photos", void 0);
103
+ __decorate([
104
+ (0, class_validator_1.IsOptional)(),
105
+ (0, class_transformer_1.Type)(() => Number),
106
+ (0, class_validator_1.IsInt)(),
107
+ (0, class_validator_1.Min)(0),
108
+ (0, class_transformer_1.Expose)(),
109
+ __metadata("design:type", Number)
110
+ ], CreateCityAttractionDto.prototype, "coverPhotoIndex", void 0);
111
+ __decorate([
112
+ (0, class_validator_1.IsOptional)(),
113
+ (0, class_validator_1.IsArray)(),
114
+ (0, class_validator_1.IsString)({ each: true }),
115
+ (0, class_transformer_1.Expose)(),
116
+ __metadata("design:type", Array)
117
+ ], CreateCityAttractionDto.prototype, "tags", void 0);
118
+ __decorate([
119
+ (0, class_validator_1.IsOptional)(),
120
+ (0, class_transformer_1.Type)(() => Number),
121
+ (0, class_validator_1.IsInt)(),
122
+ (0, class_validator_1.Min)(1),
123
+ (0, class_validator_1.Max)(10),
124
+ (0, class_transformer_1.Expose)(),
125
+ __metadata("design:type", Number)
126
+ ], CreateCityAttractionDto.prototype, "mustSeeScore", void 0);
127
+ __decorate([
128
+ (0, class_validator_1.IsOptional)(),
129
+ (0, class_transformer_1.Type)(() => Number),
130
+ (0, class_validator_1.IsInt)(),
131
+ (0, class_validator_1.Min)(1),
132
+ (0, class_validator_1.Max)(10),
133
+ (0, class_transformer_1.Expose)(),
134
+ __metadata("design:type", Number)
135
+ ], CreateCityAttractionDto.prototype, "wowScore", void 0);
136
+ __decorate([
137
+ (0, class_validator_1.IsOptional)(),
138
+ (0, class_transformer_1.Type)(() => Number),
139
+ (0, class_validator_1.IsInt)(),
140
+ (0, class_validator_1.Min)(1),
141
+ (0, class_validator_1.Max)(10),
142
+ (0, class_transformer_1.Expose)(),
143
+ __metadata("design:type", Number)
144
+ ], CreateCityAttractionDto.prototype, "touristCrowdScore", void 0);
145
+ __decorate([
146
+ (0, class_validator_1.IsOptional)(),
147
+ (0, class_transformer_1.Type)(() => Number),
148
+ (0, class_validator_1.IsInt)(),
149
+ (0, class_validator_1.Min)(1),
150
+ (0, class_validator_1.Max)(10),
151
+ (0, class_transformer_1.Expose)(),
152
+ __metadata("design:type", Number)
153
+ ], CreateCityAttractionDto.prototype, "localExperienceScore", void 0);
154
+ __decorate([
155
+ (0, class_validator_1.IsOptional)(),
156
+ (0, class_validator_1.IsEnum)(attraction_route_role_enum_1.AttractionRouteRoleEnum),
157
+ (0, class_transformer_1.Expose)(),
158
+ __metadata("design:type", String)
159
+ ], CreateCityAttractionDto.prototype, "routeRole", void 0);
160
+ __decorate([
161
+ (0, class_validator_1.IsOptional)(),
162
+ (0, class_transformer_1.Type)(() => Number),
163
+ (0, class_validator_1.IsInt)(),
164
+ (0, class_validator_1.Min)(1),
165
+ (0, class_validator_1.Max)(100),
166
+ (0, class_transformer_1.Expose)(),
167
+ __metadata("design:type", Number)
168
+ ], CreateCityAttractionDto.prototype, "routePriority", void 0);
169
+ __decorate([
170
+ (0, class_validator_1.IsOptional)(),
171
+ (0, class_validator_1.IsEnum)(attraction_indoor_outdoor_enum_1.AttractionIndoorOutdoorEnum),
172
+ (0, class_transformer_1.Expose)(),
173
+ __metadata("design:type", String)
174
+ ], CreateCityAttractionDto.prototype, "indoorOutdoor", void 0);
175
+ __decorate([
176
+ (0, class_validator_1.IsOptional)(),
177
+ (0, class_transformer_1.Expose)(),
178
+ __metadata("design:type", Object)
179
+ ], CreateCityAttractionDto.prototype, "routeMeta", void 0);
180
+ __decorate([
181
+ (0, class_validator_1.IsOptional)(),
182
+ (0, class_validator_1.IsString)(),
183
+ (0, class_transformer_1.Expose)(),
184
+ __metadata("design:type", String)
185
+ ], CreateCityAttractionDto.prototype, "wikidataId", void 0);
186
+ __decorate([
187
+ (0, class_validator_1.IsOptional)(),
188
+ (0, class_validator_1.IsString)(),
189
+ (0, class_transformer_1.Expose)(),
190
+ __metadata("design:type", String)
191
+ ], CreateCityAttractionDto.prototype, "googlePlaceId", void 0);
192
+ __decorate([
193
+ (0, class_validator_1.IsOptional)(),
194
+ (0, class_validator_1.IsBoolean)(),
195
+ (0, class_transformer_1.Expose)(),
196
+ __metadata("design:type", Boolean)
197
+ ], CreateCityAttractionDto.prototype, "archived", void 0);
198
+ __decorate([
199
+ (0, class_validator_1.IsOptional)(),
200
+ (0, class_validator_1.IsEnum)(attraction_source_enum_1.AttractionSourceEnum),
201
+ (0, class_transformer_1.Expose)(),
202
+ __metadata("design:type", String)
203
+ ], CreateCityAttractionDto.prototype, "source", void 0);
204
+ __decorate([
205
+ (0, class_validator_1.IsOptional)(),
206
+ (0, class_validator_1.IsEnum)(attraction_review_status_enum_1.AttractionReviewStatusEnum),
207
+ (0, class_transformer_1.Expose)(),
208
+ __metadata("design:type", String)
209
+ ], CreateCityAttractionDto.prototype, "reviewStatus", void 0);
210
+ __decorate([
211
+ (0, class_validator_1.IsOptional)(),
212
+ (0, class_validator_1.IsString)(),
213
+ (0, class_transformer_1.Expose)(),
214
+ __metadata("design:type", String)
215
+ ], CreateCityAttractionDto.prototype, "rejectionReason", void 0);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Objects inside/on an attraction — not separate map points.
3
+ * e.g. icon, manuscript, plaque, famous painting in a museum.
4
+ */
5
+ export declare enum AttractionArtifactKindEnum {
6
+ ARTWORK = "artwork",
7
+ MANUSCRIPT = "manuscript",
8
+ PLAQUE = "plaque",
9
+ RELIC = "relic",
10
+ SCULPTURE_DETAIL = "sculpture_detail",
11
+ EXHIBIT = "exhibit",
12
+ OTHER = "other"
13
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttractionArtifactKindEnum = void 0;
4
+ /**
5
+ * Objects inside/on an attraction — not separate map points.
6
+ * e.g. icon, manuscript, plaque, famous painting in a museum.
7
+ */
8
+ var AttractionArtifactKindEnum;
9
+ (function (AttractionArtifactKindEnum) {
10
+ AttractionArtifactKindEnum["ARTWORK"] = "artwork";
11
+ AttractionArtifactKindEnum["MANUSCRIPT"] = "manuscript";
12
+ AttractionArtifactKindEnum["PLAQUE"] = "plaque";
13
+ AttractionArtifactKindEnum["RELIC"] = "relic";
14
+ AttractionArtifactKindEnum["SCULPTURE_DETAIL"] = "sculpture_detail";
15
+ AttractionArtifactKindEnum["EXHIBIT"] = "exhibit";
16
+ AttractionArtifactKindEnum["OTHER"] = "other";
17
+ })(AttractionArtifactKindEnum || (exports.AttractionArtifactKindEnum = AttractionArtifactKindEnum = {}));
@@ -0,0 +1,21 @@
1
+ export declare enum AttractionCategoryEnum {
2
+ MUSEUM = "museum",
3
+ TEMPLE_CHURCH = "temple_church",
4
+ ARCHITECTURE_LANDMARK = "architecture_landmark",
5
+ PALACE_FORTRESS = "palace_fortress",
6
+ ARCHAEOLOGICAL_SITE = "archaeological_site",
7
+ PARK_GARDEN = "park_garden",
8
+ VIEWPOINT = "viewpoint",
9
+ SQUARE = "square",
10
+ STREET_DISTRICT = "street_district",
11
+ BRIDGE = "bridge",
12
+ MARKET = "market",
13
+ CEMETERY_NECROPOLIS = "cemetery_necropolis",
14
+ THEATER_CULTURAL_VENUE = "theater_cultural_venue",
15
+ MONUMENT_MEMORIAL = "monument_memorial",
16
+ CANAL_WATERFRONT = "canal_waterfront",
17
+ TRANSPORT_LANDMARK = "transport_landmark",
18
+ STADIUM = "stadium",
19
+ ZOO_AQUARIUM = "zoo_aquarium",
20
+ UNUSUAL_PLACE = "unusual_place"
21
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttractionCategoryEnum = void 0;
4
+ var AttractionCategoryEnum;
5
+ (function (AttractionCategoryEnum) {
6
+ AttractionCategoryEnum["MUSEUM"] = "museum";
7
+ AttractionCategoryEnum["TEMPLE_CHURCH"] = "temple_church";
8
+ AttractionCategoryEnum["ARCHITECTURE_LANDMARK"] = "architecture_landmark";
9
+ AttractionCategoryEnum["PALACE_FORTRESS"] = "palace_fortress";
10
+ AttractionCategoryEnum["ARCHAEOLOGICAL_SITE"] = "archaeological_site";
11
+ AttractionCategoryEnum["PARK_GARDEN"] = "park_garden";
12
+ AttractionCategoryEnum["VIEWPOINT"] = "viewpoint";
13
+ AttractionCategoryEnum["SQUARE"] = "square";
14
+ AttractionCategoryEnum["STREET_DISTRICT"] = "street_district";
15
+ AttractionCategoryEnum["BRIDGE"] = "bridge";
16
+ AttractionCategoryEnum["MARKET"] = "market";
17
+ AttractionCategoryEnum["CEMETERY_NECROPOLIS"] = "cemetery_necropolis";
18
+ AttractionCategoryEnum["THEATER_CULTURAL_VENUE"] = "theater_cultural_venue";
19
+ AttractionCategoryEnum["MONUMENT_MEMORIAL"] = "monument_memorial";
20
+ AttractionCategoryEnum["CANAL_WATERFRONT"] = "canal_waterfront";
21
+ AttractionCategoryEnum["TRANSPORT_LANDMARK"] = "transport_landmark";
22
+ AttractionCategoryEnum["STADIUM"] = "stadium";
23
+ AttractionCategoryEnum["ZOO_AQUARIUM"] = "zoo_aquarium";
24
+ AttractionCategoryEnum["UNUSUAL_PLACE"] = "unusual_place";
25
+ })(AttractionCategoryEnum || (exports.AttractionCategoryEnum = AttractionCategoryEnum = {}));
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Продуктовая шкала известности для city-quest каталога.
3
+ * Оценивает узнаваемость/место в типичном маршруте, не «качество» места.
4
+ */
5
+ export declare enum AttractionFameEnum {
6
+ ICON = "icon",
7
+ WELL_KNOWN = "well_known",
8
+ OFFBEAT = "offbeat",
9
+ HIDDEN_GEM = "hidden_gem"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttractionFameEnum = void 0;
4
+ /**
5
+ * Продуктовая шкала известности для city-quest каталога.
6
+ * Оценивает узнаваемость/место в типичном маршруте, не «качество» места.
7
+ */
8
+ var AttractionFameEnum;
9
+ (function (AttractionFameEnum) {
10
+ AttractionFameEnum["ICON"] = "icon";
11
+ AttractionFameEnum["WELL_KNOWN"] = "well_known";
12
+ AttractionFameEnum["OFFBEAT"] = "offbeat";
13
+ AttractionFameEnum["HIDDEN_GEM"] = "hidden_gem";
14
+ })(AttractionFameEnum || (exports.AttractionFameEnum = AttractionFameEnum = {}));
@@ -0,0 +1,4 @@
1
+ export declare enum AttractionFunFactKindEnum {
2
+ FACT = "fact",
3
+ LEGEND = "legend"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttractionFunFactKindEnum = void 0;
4
+ var AttractionFunFactKindEnum;
5
+ (function (AttractionFunFactKindEnum) {
6
+ AttractionFunFactKindEnum["FACT"] = "fact";
7
+ AttractionFunFactKindEnum["LEGEND"] = "legend";
8
+ })(AttractionFunFactKindEnum || (exports.AttractionFunFactKindEnum = AttractionFunFactKindEnum = {}));
@@ -0,0 +1,5 @@
1
+ export declare enum AttractionIndoorOutdoorEnum {
2
+ INDOOR = "indoor",
3
+ OUTDOOR = "outdoor",
4
+ MIXED = "mixed"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttractionIndoorOutdoorEnum = void 0;
4
+ var AttractionIndoorOutdoorEnum;
5
+ (function (AttractionIndoorOutdoorEnum) {
6
+ AttractionIndoorOutdoorEnum["INDOOR"] = "indoor";
7
+ AttractionIndoorOutdoorEnum["OUTDOOR"] = "outdoor";
8
+ AttractionIndoorOutdoorEnum["MIXED"] = "mixed";
9
+ })(AttractionIndoorOutdoorEnum || (exports.AttractionIndoorOutdoorEnum = AttractionIndoorOutdoorEnum = {}));