@escapenavigator/types 2.0.28 → 2.0.30

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.
@@ -1,4 +1,5 @@
1
1
  import { QuestroomTypeEnum } from '../../questroom/enum/questroom-type.enum';
2
+ import { SpecialOfferEnum } from '../../questroom/enum/special-offer.enum';
2
3
  import { TagsEnum, TechTagsEnum } from '../../shared/enum/tags.enum';
3
4
  /** Difficulty buckets: beginner 1–2, medium 3–4, hard 5–6 (difficult is 1–6). */
4
5
  export type DifficultyFilter = 'beginner' | 'medium' | 'hard';
@@ -29,6 +30,8 @@ export type QuestroomBrowseFiltersDTO = {
29
30
  players?: number[];
30
31
  /** Age bucket lower bounds (OR): 6,8,10,12,14,16,18 (`18` means 18+). */
31
32
  ages?: number[];
33
+ /** Permanent discounts the quest offers (OR) — `specialOffers && ARRAY[...]`. */
34
+ offers?: SpecialOfferEnum[];
32
35
  };
33
36
  export type QueryLocationsForMapDTO = {
34
37
  center: string;
@@ -4,6 +4,6 @@ export type QueryQuestroomsByIdsDTO = {
4
4
  skip: number;
5
5
  take: number;
6
6
  center: string;
7
- sortBy: 'default' | 'rating' | 'distance' | 'popular';
7
+ sortBy: 'default' | 'rating' | 'distance' | 'popular' | 'priceAsc' | 'priceDesc';
8
8
  language: Languages;
9
9
  };
@@ -35,12 +35,12 @@ exports.allLanguagesByNamespace = {
35
35
  [namespaces_enum_1.NamespacesEnum.IRELAND]: [languages_enum_1.Languages.EN],
36
36
  [namespaces_enum_1.NamespacesEnum.CROATIA]: [languages_enum_1.Languages.HR, languages_enum_1.Languages.EN],
37
37
  [namespaces_enum_1.NamespacesEnum.NEW_ZEALAND]: [languages_enum_1.Languages.EN],
38
+ [namespaces_enum_1.NamespacesEnum.SINGAPORE]: [languages_enum_1.Languages.EN],
38
39
  [namespaces_enum_1.NamespacesEnum.ARGENTINA]: [languages_enum_1.Languages.ES, languages_enum_1.Languages.EN],
40
+ [namespaces_enum_1.NamespacesEnum.MEXICO]: [languages_enum_1.Languages.ES, languages_enum_1.Languages.EN],
39
41
  [namespaces_enum_1.NamespacesEnum.BRAZIL]: [languages_enum_1.Languages.PT, languages_enum_1.Languages.EN],
40
42
  [namespaces_enum_1.NamespacesEnum.TAIWAN]: [languages_enum_1.Languages.ZH, languages_enum_1.Languages.EN],
41
- [namespaces_enum_1.NamespacesEnum.MEXICO]: [languages_enum_1.Languages.ES, languages_enum_1.Languages.EN],
42
43
  [namespaces_enum_1.NamespacesEnum.JAPAN]: [languages_enum_1.Languages.JA, languages_enum_1.Languages.EN],
43
44
  [namespaces_enum_1.NamespacesEnum.SERBIA]: [languages_enum_1.Languages.SR, languages_enum_1.Languages.EN],
44
- [namespaces_enum_1.NamespacesEnum.SINGAPORE]: [languages_enum_1.Languages.EN],
45
45
  [namespaces_enum_1.NamespacesEnum.NORWAY]: [languages_enum_1.Languages.NO, languages_enum_1.Languages.EN],
46
46
  };
@@ -35,12 +35,12 @@ exports.languageByCountry = {
35
35
  [countries_enum_1.CountriesEnum.IRELAND]: languages_enum_1.Languages.EN,
36
36
  [countries_enum_1.CountriesEnum.CROATIA]: languages_enum_1.Languages.HR,
37
37
  [countries_enum_1.CountriesEnum.NEW_ZEALAND]: languages_enum_1.Languages.EN,
38
+ [countries_enum_1.CountriesEnum.SINGAPORE]: languages_enum_1.Languages.EN,
38
39
  [countries_enum_1.CountriesEnum.ARGENTINA]: languages_enum_1.Languages.ES,
40
+ [countries_enum_1.CountriesEnum.MEXICO]: languages_enum_1.Languages.ES,
39
41
  [countries_enum_1.CountriesEnum.BRAZIL]: languages_enum_1.Languages.PT,
40
42
  [countries_enum_1.CountriesEnum.TAIWAN]: languages_enum_1.Languages.ZH,
41
- [countries_enum_1.CountriesEnum.MEXICO]: languages_enum_1.Languages.ES,
42
43
  [countries_enum_1.CountriesEnum.JAPAN]: languages_enum_1.Languages.JA,
43
44
  [countries_enum_1.CountriesEnum.SERBIA]: languages_enum_1.Languages.SR,
44
- [countries_enum_1.CountriesEnum.SINGAPORE]: languages_enum_1.Languages.EN,
45
45
  [countries_enum_1.CountriesEnum.NORWAY]: languages_enum_1.Languages.NO,
46
46
  };
@@ -57,7 +57,8 @@ export declare class AdminProfileRO {
57
57
  nowEscape: boolean;
58
58
  morty: boolean;
59
59
  mainEmail: string;
60
- secondaryEmails: string[];
60
+ /** May be null for older/incomplete rows (column is nullable). */
61
+ secondaryEmails?: string[] | null;
61
62
  site: string;
62
63
  comment: string;
63
64
  facebook: string;
@@ -193,7 +193,9 @@ __decorate([
193
193
  __metadata("design:type", String)
194
194
  ], AdminProfileRO.prototype, "mainEmail", void 0);
195
195
  __decorate([
196
- (0, class_transformer_1.Expose)(),
196
+ (0, class_transformer_1.Expose)()
197
+ /** May be null for older/incomplete rows (column is nullable). */
198
+ ,
197
199
  __metadata("design:type", Array)
198
200
  ], AdminProfileRO.prototype, "secondaryEmails", void 0);
199
201
  __decorate([
@@ -4,6 +4,7 @@ import { PlayersSelectModeEnum } from './enum/players-select-mode.enum';
4
4
  import { QuestroomActorsEnum } from './enum/questroom-actors.enum';
5
5
  import { QuestroomConfirmTypeEnum } from './enum/questroom-confirm-type.enum';
6
6
  import { QuestroomTypeEnum } from './enum/questroom-type.enum';
7
+ import { SpecialOfferEnum } from './enum/special-offer.enum';
7
8
  declare class Locale {
8
9
  language: Languages;
9
10
  legend: string;
@@ -48,6 +49,11 @@ export declare class CreateQuestroomDto {
48
49
  closed?: boolean;
49
50
  disabledLanguages: Languages[];
50
51
  questroomTags: TagsEnum[];
52
+ /**
53
+ * Постоянные скидки — фасет «Спецпредложения» в каталоге агрегатора.
54
+ * Пустой массив = квест не попадает ни в один из этих фильтров.
55
+ */
56
+ specialOffers: SpecialOfferEnum[];
51
57
  legend: string;
52
58
  teaser: string;
53
59
  importantInfo: string;
@@ -20,6 +20,7 @@ const players_select_mode_enum_1 = require("./enum/players-select-mode.enum");
20
20
  const questroom_actors_enum_1 = require("./enum/questroom-actors.enum");
21
21
  const questroom_confirm_type_enum_1 = require("./enum/questroom-confirm-type.enum");
22
22
  const questroom_type_enum_1 = require("./enum/questroom-type.enum");
23
+ const special_offer_enum_1 = require("./enum/special-offer.enum");
23
24
  const lounge_questroom_1 = require("./lounge-questroom");
24
25
  class Locale {
25
26
  }
@@ -257,6 +258,14 @@ __decorate([
257
258
  (0, class_transformer_1.Expose)(),
258
259
  __metadata("design:type", Array)
259
260
  ], CreateQuestroomDto.prototype, "questroomTags", void 0);
261
+ __decorate([
262
+ (0, class_validator_1.IsOptional)(),
263
+ (0, class_validator_1.IsArray)(),
264
+ (0, class_validator_1.IsEnum)(special_offer_enum_1.SpecialOfferEnum, { each: true }),
265
+ (0, class_transformer_1.Transform)(({ value }) => ((value === null || value === void 0 ? void 0 : value.length) ? value : [])),
266
+ (0, class_transformer_1.Expose)(),
267
+ __metadata("design:type", Array)
268
+ ], CreateQuestroomDto.prototype, "specialOffers", void 0);
260
269
  __decorate([
261
270
  (0, class_validator_1.ValidateIf)(lounge_questroom_1.isClassicQuestroomFieldsRequired),
262
271
  (0, is_not_blank_1.IsNotBlank)(),
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Постоянные скидки квеста. Отдельная фасетная группа «Спецпредложения» в
3
+ * каталоге агрегатора — значения совпадают с id опций фильтра, поэтому
4
+ * выборка идёт без маппинга.
5
+ *
6
+ * Это НЕ аудитория квеста: `TagsEnum.CORPORATE` означает «подходит для
7
+ * корпоратива», а `SpecialOfferEnum.CORPORATE` — «для корпоративов есть
8
+ * скидка».
9
+ */
10
+ export declare enum SpecialOfferEnum {
11
+ CORPORATE = "corporate",
12
+ STUDENTS = "students",
13
+ BIRTHDAY = "birthday"
14
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpecialOfferEnum = void 0;
4
+ /**
5
+ * Постоянные скидки квеста. Отдельная фасетная группа «Спецпредложения» в
6
+ * каталоге агрегатора — значения совпадают с id опций фильтра, поэтому
7
+ * выборка идёт без маппинга.
8
+ *
9
+ * Это НЕ аудитория квеста: `TagsEnum.CORPORATE` означает «подходит для
10
+ * корпоратива», а `SpecialOfferEnum.CORPORATE` — «для корпоративов есть
11
+ * скидка».
12
+ */
13
+ var SpecialOfferEnum;
14
+ (function (SpecialOfferEnum) {
15
+ SpecialOfferEnum["CORPORATE"] = "corporate";
16
+ SpecialOfferEnum["STUDENTS"] = "students";
17
+ SpecialOfferEnum["BIRTHDAY"] = "birthday";
18
+ })(SpecialOfferEnum || (exports.SpecialOfferEnum = SpecialOfferEnum = {}));
@@ -1,5 +1,5 @@
1
1
  export type CompletenessCategory = 'media' | 'description' | 'tags' | 'accessibility' | 'pricing' | 'translations';
2
- export type CompletenessItemKey = 'photos' | 'legend' | 'importantInfo' | 'themeTags' | 'audienceTags' | 'accessibility' | 'prices' | 'translations';
2
+ export type CompletenessItemKey = 'photos' | 'legend' | 'importantInfo' | 'themeTags' | 'audienceTags' | 'accessibility' | 'prices' | 'offers' | 'translations';
3
3
  export declare class QuestroomCompletenessItemRO {
4
4
  /** Stable key — maps to `quest-score:{key}Label` / `quest-score:{key}Hint` on the frontend. */
5
5
  key: CompletenessItemKey;
@@ -1,4 +1,5 @@
1
1
  import { Languages } from '../shared/enum/languages.enum';
2
+ import { SpecialOfferEnum } from './enum/special-offer.enum';
2
3
  import { QuestroomLightLocale, QuestroomLightMode, QuestroomLightRO } from './questroom-light.ro';
3
4
  export { QuestroomLightLocale as QuestroomLocale, QuestroomLightMode as QuestroomMode };
4
5
  /**
@@ -36,4 +37,5 @@ export declare class QuestroomRO extends QuestroomLightRO {
36
37
  requiresRunning?: boolean;
37
38
  requiresClimbing?: boolean;
38
39
  petsAllowed?: boolean;
40
+ specialOffers?: SpecialOfferEnum[];
39
41
  }
@@ -130,3 +130,7 @@ __decorate([
130
130
  (0, class_transformer_1.Expose)(),
131
131
  __metadata("design:type", Boolean)
132
132
  ], QuestroomRO.prototype, "petsAllowed", void 0);
133
+ __decorate([
134
+ (0, class_transformer_1.Expose)(),
135
+ __metadata("design:type", Array)
136
+ ], QuestroomRO.prototype, "specialOffers", void 0);