@escapenavigator/types 2.1.6 → 2.1.8

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 (132) hide show
  1. package/dist/admin/aggregator-order/aggregator-order.ro.d.ts +16 -0
  2. package/dist/admin/aggregator-order/aggregator-order.ro.js +16 -0
  3. package/dist/admin/aggregator-order/create-aggregator-order.dto.d.ts +6 -0
  4. package/dist/admin/aggregator-order/create-aggregator-order.dto.js +6 -0
  5. package/dist/agregator/agregator-find-questroom-by-title.ro.js +4 -1
  6. package/dist/agregator/agregator-questroom-card.ro.d.ts +17 -0
  7. package/dist/agregator/agregator-questroom-card.ro.js +36 -2
  8. package/dist/agregator/agregator-questroom.ro.d.ts +2 -0
  9. package/dist/agregator/agregator-questroom.ro.js +14 -1
  10. package/dist/client/update-client-billing-defaults.dto.d.ts +5 -0
  11. package/dist/client/update-client-billing-defaults.dto.js +35 -0
  12. package/dist/constants/navigator-certificate-nominal-bounds.d.ts +8 -0
  13. package/dist/constants/navigator-certificate-nominal-bounds.js +45 -0
  14. package/dist/integrations/admin-integration.ro.d.ts +122 -0
  15. package/dist/integrations/admin-integration.ro.js +2 -0
  16. package/dist/integrations/booking-mode.enum.d.ts +24 -0
  17. package/dist/integrations/booking-mode.enum.js +28 -0
  18. package/dist/integrations/connect-integration.dto.d.ts +44 -0
  19. package/dist/integrations/connect-integration.dto.js +101 -0
  20. package/dist/integrations/connection-status.enum.d.ts +30 -0
  21. package/dist/integrations/connection-status.enum.js +34 -0
  22. package/dist/integrations/connector-capabilities.d.ts +85 -0
  23. package/dist/integrations/connector-capabilities.js +2 -0
  24. package/dist/integrations/credential-field.d.ts +80 -0
  25. package/dist/integrations/credential-field.js +2 -0
  26. package/dist/integrations/crm-integration-status.ro.d.ts +70 -0
  27. package/dist/integrations/crm-integration-status.ro.js +43 -0
  28. package/dist/integrations/incident-status.enum.d.ts +31 -0
  29. package/dist/integrations/incident-status.enum.js +36 -0
  30. package/dist/integrations/incident-type.enum.d.ts +30 -0
  31. package/dist/integrations/incident-type.enum.js +34 -0
  32. package/dist/integrations/integration-request-status.enum.d.ts +22 -0
  33. package/dist/integrations/integration-request-status.enum.js +26 -0
  34. package/dist/integrations/normalized-slot.d.ts +79 -0
  35. package/dist/integrations/normalized-slot.js +2 -0
  36. package/dist/integrations/partner-wire.d.ts +124 -0
  37. package/dist/integrations/partner-wire.js +26 -0
  38. package/dist/integrations/partners-booking-v1-schedule.dto.d.ts +11 -0
  39. package/dist/integrations/partners-booking-v1-schedule.dto.js +43 -0
  40. package/dist/integrations/partners-booking-v1.d.ts +124 -0
  41. package/dist/integrations/partners-booking-v1.js +2 -0
  42. package/dist/integrations/pending-booking-request.ro.d.ts +32 -0
  43. package/dist/integrations/pending-booking-request.ro.js +2 -0
  44. package/dist/integrations/provider-code.enum.d.ts +37 -0
  45. package/dist/integrations/provider-code.enum.js +41 -0
  46. package/dist/integrations/resource-match-status.enum.d.ts +25 -0
  47. package/dist/integrations/resource-match-status.enum.js +29 -0
  48. package/dist/integrations/run-operation.enum.d.ts +22 -0
  49. package/dist/integrations/run-operation.enum.js +26 -0
  50. package/dist/integrations/run-outcome.enum.d.ts +23 -0
  51. package/dist/integrations/run-outcome.enum.js +27 -0
  52. package/dist/navigator-certificate/create-navigator-certificate-sale.dto.d.ts +2 -2
  53. package/dist/navigator-certificate/create-navigator-certificate-sale.dto.js +4 -2
  54. package/dist/navigator-certificate/create-navigator-certificate-template.dto.d.ts +3 -2
  55. package/dist/navigator-certificate/create-navigator-certificate-template.dto.js +10 -2
  56. package/dist/navigator-certificate/enum/navigator-certificate-tag-nav-mode.enum.d.ts +5 -0
  57. package/dist/navigator-certificate/enum/navigator-certificate-tag-nav-mode.enum.js +9 -0
  58. package/dist/navigator-certificate/enum/navigator-certificate-tag-slug.enum.d.ts +23 -0
  59. package/dist/navigator-certificate/enum/navigator-certificate-tag-slug.enum.js +27 -0
  60. package/dist/navigator-certificate/index.d.ts +6 -0
  61. package/dist/navigator-certificate/index.js +6 -0
  62. package/dist/navigator-certificate/navigator-certificate-tag-catalog.d.ts +8 -0
  63. package/dist/navigator-certificate/navigator-certificate-tag-catalog.js +107 -0
  64. package/dist/navigator-certificate/navigator-certificate-tag-season.d.ts +8 -0
  65. package/dist/navigator-certificate/navigator-certificate-tag-season.js +86 -0
  66. package/dist/navigator-certificate/navigator-certificate-tag.ro.d.ts +8 -0
  67. package/dist/navigator-certificate/navigator-certificate-tag.ro.js +31 -0
  68. package/dist/navigator-certificate/navigator-certificate-template.ro.d.ts +3 -2
  69. package/dist/navigator-certificate/navigator-certificate-template.ro.js +5 -1
  70. package/dist/navigator-certificate/navigator-certificate-templates.ro.d.ts +16 -0
  71. package/dist/navigator-certificate/navigator-certificate-templates.ro.js +54 -1
  72. package/dist/navigator-certificate/update-navigator-certificate-tag.dto.d.ts +5 -0
  73. package/dist/navigator-certificate/update-navigator-certificate-tag.dto.js +30 -0
  74. package/dist/navigator-certificate/update-navigator-certificate-template.dto.d.ts +3 -2
  75. package/dist/navigator-certificate/update-navigator-certificate-template.dto.js +9 -2
  76. package/dist/openapi/external-booking/openapi-external-quote.dto.d.ts +22 -0
  77. package/dist/openapi/external-booking/openapi-external-quote.dto.js +43 -0
  78. package/dist/openapi/external-booking/openapi-external-quote.ro.d.ts +65 -0
  79. package/dist/openapi/external-booking/openapi-external-quote.ro.js +83 -0
  80. package/dist/openapi/morty/morty-timeslot.ro.js +13 -0
  81. package/dist/openapi/shared/openapi-questroom.ro.d.ts +1 -0
  82. package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
  83. package/dist/openapi/slots/openapi-slot-add-hold.dto.d.ts +9 -0
  84. package/dist/openapi/slots/openapi-slot-add-hold.dto.js +6 -0
  85. package/dist/openapi/slots/openapi-slot-hold.ro.d.ts +50 -0
  86. package/dist/openapi/slots/openapi-slot-hold.ro.js +37 -0
  87. package/dist/openapi/slots/openapi-widget-slot.ro.d.ts +16 -1
  88. package/dist/openapi/slots/openapi-widget-slot.ro.js +11 -0
  89. package/dist/openapi/widget/bookeo/openapi-widget-bookeo-get-prices.dto.d.ts +9 -0
  90. package/dist/openapi/widget/bookeo/openapi-widget-bookeo-get-prices.dto.js +6 -0
  91. package/dist/openapi/widget/bookeo/openapi-widget-create-bookeo-order.dto.d.ts +19 -0
  92. package/dist/openapi/widget/bookeo/openapi-widget-create-bookeo-order.dto.js +18 -0
  93. package/dist/order/update-order.dto.d.ts +4 -0
  94. package/dist/order/update-order.dto.js +24 -0
  95. package/dist/parse-results/booking-provider-signatures.d.ts +35 -0
  96. package/dist/parse-results/booking-provider-signatures.js +93 -0
  97. package/dist/player/player-leaderboard.ro.d.ts +20 -0
  98. package/dist/player/player-leaderboard.ro.js +81 -0
  99. package/dist/player/player.ro.d.ts +30 -1
  100. package/dist/player/player.ro.js +85 -1
  101. package/dist/profile/admin-profile.ro.d.ts +3 -0
  102. package/dist/profile/admin-profile.ro.js +9 -0
  103. package/dist/profile/create-profile.dto.d.ts +1 -0
  104. package/dist/profile/create-profile.dto.js +6 -0
  105. package/dist/profile/enum/navigator-certificate-program.enum.d.ts +5 -0
  106. package/dist/profile/enum/navigator-certificate-program.enum.js +9 -0
  107. package/dist/profile/profile.ro.d.ts +2 -0
  108. package/dist/profile/profile.ro.js +5 -0
  109. package/dist/profile/query-admin-profile.dto.d.ts +2 -0
  110. package/dist/profile/query-admin-profile.dto.js +4 -0
  111. package/dist/questroom/agregator-questroom.ro.d.ts +1 -0
  112. package/dist/questroom/create-questroom-admin.dto.d.ts +1 -0
  113. package/dist/questroom/create-questroom-admin.dto.js +6 -0
  114. package/dist/questroom/create-questroom.dto.d.ts +4 -0
  115. package/dist/questroom/create-questroom.dto.js +6 -0
  116. package/dist/questroom/questroom.ro.d.ts +1 -0
  117. package/dist/questroom/questroom.ro.js +4 -0
  118. package/dist/questroom/questrooms-list-admin.ro.d.ts +2 -0
  119. package/dist/questroom/questrooms-list-admin.ro.js +8 -0
  120. package/dist/rating-badge/create-rating-badge.dto.d.ts +9 -0
  121. package/dist/{questroom/bind-bookeo.dto.js → rating-badge/create-rating-badge.dto.js} +8 -7
  122. package/dist/rating-badge/enum/rating-badge-status.enum.d.ts +6 -0
  123. package/dist/rating-badge/enum/rating-badge-status.enum.js +10 -0
  124. package/dist/rating-badge/ranking-overview.ro.d.ts +65 -0
  125. package/dist/rating-badge/ranking-overview.ro.js +249 -0
  126. package/dist/rating-badge/rating-badge-admin.ro.d.ts +7 -0
  127. package/dist/rating-badge/rating-badge-admin.ro.js +33 -0
  128. package/dist/rating-badge/rating-badge.ro.d.ts +12 -0
  129. package/dist/rating-badge/rating-badge.ro.js +50 -0
  130. package/dist/tsconfig.build.tsbuildinfo +1 -1
  131. package/package.json +2 -2
  132. package/dist/questroom/bind-bookeo.dto.d.ts +0 -4
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Сигнатуры систем бронирования в HTML сайта квеста: script src, iframe,
3
+ * ссылки, глобальные переменные. По ним краулер заполняет
4
+ * `profiles.bookingProvider` — а это единственный источник настоящих цифр
5
+ * «сколько наших квестов сидит на каком движке». Именно по этой статистике
6
+ * выбирается очередь интеграций (см. `docs/integrations-v2/providers-wave-1.md`),
7
+ * поэтому ложное срабатывание здесь дороже пропуска: оно уводит приоритеты.
8
+ *
9
+ * Список должен быть один на всех. Раньше их было два — в
10
+ * `site-crawler.service.ts` (19 движков) и в скрипте
11
+ * `scripts/enrich-profile-contacts.mjs` (58), — и они разошлись: краулер,
12
+ * который работает постоянно, знал втрое меньше разового скрипта. Оба
13
+ * потребителя теперь читают этот файл.
14
+ *
15
+ * Правила для новых записей:
16
+ * - паттерн должен цепляться за домен вендора, а не за слово. `/roller/i`
17
+ * поймает `scroller`, `/regiondo/i` — чей-нибудь `regiondoors`;
18
+ * - домен нужно проверить, а не угадать. Неверная регулярка молча портит
19
+ * статистику, по которой мы потом планируем работу;
20
+ * - порядок важен: первое совпадение выигрывает, поэтому наша собственная
21
+ * сигнатура идёт первой (квест с нашим виджетом мог оставить на сайте
22
+ * ссылку на старую систему).
23
+ *
24
+ * Сознательно не добавлен Tempus: слово латинское и встречается в шрифтах
25
+ * (Tempus Sans ITC) и темах, а домена вендора найти не удалось. Ловить его по
26
+ * подстроке — это гарантированные ложные срабатывания. Нужен домен: тогда
27
+ * запись добавляется как обычная.
28
+ */
29
+ export type BookingProviderSignature = {
30
+ provider: string;
31
+ pattern: RegExp;
32
+ };
33
+ export declare const BOOKING_PROVIDER_SIGNATURES: BookingProviderSignature[];
34
+ /** Первое совпадение по списку выше; `null` — движок не опознан. */
35
+ export declare const detectBookingProvider: (html?: string | null) => string | null;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectBookingProvider = exports.BOOKING_PROVIDER_SIGNATURES = void 0;
4
+ exports.BOOKING_PROVIDER_SIGNATURES = [
5
+ { provider: 'escapenavigator', pattern: /escapenavigator\.com|en-widget/i },
6
+ // --- Движки, специализированные на квестах ---
7
+ { provider: 'bookeo', pattern: /bookeo\.com/i },
8
+ { provider: 'resova', pattern: /resova\.com/i },
9
+ { provider: 'xola', pattern: /xola\.com|xola\.me/i },
10
+ { provider: 'offthecouch', pattern: /offthecouch\.io/i },
11
+ { provider: 'buzzshot', pattern: /buzzshot\.com/i },
12
+ { provider: 'morty', pattern: /mortyapp\.com|morty\.app/i },
13
+ { provider: 'fareharbor', pattern: /fareharbor\.com|fareharbor\.is/i },
14
+ { provider: 'bottleneck', pattern: /blackfoxstudios|bottleneck/i },
15
+ { provider: 'buka', pattern: /buka\.io|bukaapp/i },
16
+ { provider: 'escaperoomsmaster', pattern: /escaperoomsmaster/i },
17
+ { provider: 'questcompass', pattern: /questcompass/i },
18
+ { provider: 'turnkey', pattern: /turnkeyescaperooms|tk-booking/i },
19
+ { provider: 'lockme', pattern: /lock\.me|lockme\.pl|lockme\./i },
20
+ { provider: 'questly', pattern: /questly/i },
21
+ { provider: 'escapekit', pattern: /escape-?kit/i },
22
+ { provider: 'bookescape', pattern: /bookescape/i },
23
+ { provider: 'erbooking', pattern: /erbooking|escape-room-booking/i },
24
+ { provider: 'rezbot', pattern: /rezbot/i },
25
+ // Бренд достаточно редкий, чтобы ловить его по слову: домен вендора не
26
+ // подтверждён, а подстрока «quinbook» в обычном тексте не встречается.
27
+ { provider: 'quinbook', pattern: /quinbook/i },
28
+ { provider: 'voltris', pattern: /voltris/i },
29
+ // --- Общие движки для активностей и туров ---
30
+ { provider: 'bookinglayer', pattern: /bookinglayer/i },
31
+ { provider: 'checkfront', pattern: /checkfront\.com/i },
32
+ { provider: 'regiondo', pattern: /regiondo\.(com|de)/i },
33
+ { provider: 'bokun', pattern: /bokun\.(io|com)/i },
34
+ { provider: 'peek', pattern: /peek\.com|peekpro/i },
35
+ { provider: 'rezdy', pattern: /rezdy\.com/i },
36
+ { provider: 'bookingkit', pattern: /bookingkit/i },
37
+ { provider: 'trekksoft', pattern: /trekksoft/i },
38
+ { provider: 'ventrata', pattern: /ventrata/i },
39
+ { provider: 'rezgo', pattern: /rezgo\.com/i },
40
+ { provider: 'guestplan', pattern: /guestplan/i },
41
+ { provider: 'cubilis', pattern: /cubilis/i },
42
+ // ROLLER на Premium разрешает свой домен чекаута (tickets.venue.com),
43
+ // так что часть их квестов детектор пропустит — цифра будет нижней оценкой.
44
+ { provider: 'roller', pattern: /roller\.software|roller\.app/i },
45
+ { provider: 'digitickets', pattern: /digitickets\.co\.uk/i },
46
+ // --- Маркетплейсы: часто стоят вместо своего движка ---
47
+ { provider: 'eventbrite', pattern: /eventbrite\.(com|co\.uk)/i },
48
+ { provider: 'designmynight', pattern: /designmynight\.com/i },
49
+ { provider: 'fever', pattern: /feverup\.com|fever\.com/i },
50
+ { provider: 'getyourguide', pattern: /getyourguide\.com/i },
51
+ { provider: 'viator', pattern: /viator\.com/i },
52
+ { provider: 'headout', pattern: /headout\.com/i },
53
+ { provider: 'ticketsource', pattern: /ticketsource\.(co\.uk|com)/i },
54
+ { provider: 'eventix', pattern: /eventix\.(io|nl)/i },
55
+ { provider: 'playpass', pattern: /playpass/i },
56
+ // --- RU / CIS ---
57
+ { provider: 'mir-kvestov', pattern: /mir-kvestov|mirkvestov/i },
58
+ { provider: 'zarezervuj', pattern: /zarezervuj/i },
59
+ { provider: 'reservio', pattern: /reservio/i },
60
+ // --- Универсальные системы записи и WordPress-плагины ---
61
+ { provider: 'simplybook', pattern: /simplybook\.(me|com)|simplybookme/i },
62
+ { provider: 'bookwhen', pattern: /bookwhen\.com/i },
63
+ { provider: 'acuity', pattern: /acuityscheduling\.com|acuity\.com/i },
64
+ { provider: 'wix-bookings', pattern: /wix\.com\/bookings|wixbookings|bookings\.wix/i },
65
+ { provider: 'supersaas', pattern: /supersaas/i },
66
+ { provider: 'calendly', pattern: /calendly\.com/i },
67
+ { provider: 'setmore', pattern: /setmore\.com/i },
68
+ { provider: 'bookly', pattern: /bookly|cdn\.bookly/i },
69
+ { provider: 'amelia', pattern: /wpamelia|ameliabooking/i },
70
+ { provider: 'latepoint', pattern: /latepoint/i },
71
+ { provider: 'woocommerce-bookings', pattern: /woocommerce-bookings|wc-bookings/i },
72
+ { provider: 'easyappointments', pattern: /easyappointments/i },
73
+ // WP-плагины ловим по пути к папке плагина, а не по названию: слово
74
+ // «booked» само по себе встречается в тексте на каждом втором сайте.
75
+ { provider: 'booked-wp', pattern: /wp-content\/plugins\/booked\//i },
76
+ { provider: 'pinpoint-wp', pattern: /pinpoint-booking-system/i },
77
+ { provider: 'cal.com', pattern: /cal\.com|calendso/i },
78
+ { provider: 'youcanbook.me', pattern: /youcanbook\.me/i },
79
+ { provider: 'timify', pattern: /timify\.com/i },
80
+ { provider: 'square', pattern: /squareup\.com\/appointments|square\.site/i },
81
+ { provider: 'mindbody', pattern: /mindbodyonline\.com/i },
82
+ ];
83
+ /** Первое совпадение по списку выше; `null` — движок не опознан. */
84
+ const detectBookingProvider = (html) => {
85
+ if (!html)
86
+ return null;
87
+ for (const { provider, pattern } of exports.BOOKING_PROVIDER_SIGNATURES) {
88
+ if (pattern.test(html))
89
+ return provider;
90
+ }
91
+ return null;
92
+ };
93
+ exports.detectBookingProvider = detectBookingProvider;
@@ -0,0 +1,20 @@
1
+ export declare class PlayerLeaderboardEntryRO {
2
+ rank: number;
3
+ id: number;
4
+ displayName: string;
5
+ photo: string;
6
+ bonuses: number;
7
+ ordersCount: number;
8
+ reviewsCount: number;
9
+ isMe: boolean;
10
+ }
11
+ export declare class PlayerLeaderboardMeRO {
12
+ rank: number;
13
+ bonuses: number;
14
+ displayName: string;
15
+ photo: string;
16
+ }
17
+ export declare class PlayerLeaderboardRO {
18
+ top: PlayerLeaderboardEntryRO[];
19
+ me?: PlayerLeaderboardMeRO;
20
+ }
@@ -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.PlayerLeaderboardRO = exports.PlayerLeaderboardMeRO = exports.PlayerLeaderboardEntryRO = void 0;
13
+ /* eslint-disable max-classes-per-file */
14
+ const class_transformer_1 = require("class-transformer");
15
+ class PlayerLeaderboardEntryRO {
16
+ }
17
+ exports.PlayerLeaderboardEntryRO = PlayerLeaderboardEntryRO;
18
+ __decorate([
19
+ (0, class_transformer_1.Expose)(),
20
+ __metadata("design:type", Number)
21
+ ], PlayerLeaderboardEntryRO.prototype, "rank", void 0);
22
+ __decorate([
23
+ (0, class_transformer_1.Expose)(),
24
+ __metadata("design:type", Number)
25
+ ], PlayerLeaderboardEntryRO.prototype, "id", void 0);
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ __metadata("design:type", String)
29
+ ], PlayerLeaderboardEntryRO.prototype, "displayName", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)(),
32
+ __metadata("design:type", String)
33
+ ], PlayerLeaderboardEntryRO.prototype, "photo", void 0);
34
+ __decorate([
35
+ (0, class_transformer_1.Expose)(),
36
+ __metadata("design:type", Number)
37
+ ], PlayerLeaderboardEntryRO.prototype, "bonuses", void 0);
38
+ __decorate([
39
+ (0, class_transformer_1.Expose)(),
40
+ __metadata("design:type", Number)
41
+ ], PlayerLeaderboardEntryRO.prototype, "ordersCount", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ __metadata("design:type", Number)
45
+ ], PlayerLeaderboardEntryRO.prototype, "reviewsCount", void 0);
46
+ __decorate([
47
+ (0, class_transformer_1.Expose)(),
48
+ __metadata("design:type", Boolean)
49
+ ], PlayerLeaderboardEntryRO.prototype, "isMe", void 0);
50
+ class PlayerLeaderboardMeRO {
51
+ }
52
+ exports.PlayerLeaderboardMeRO = PlayerLeaderboardMeRO;
53
+ __decorate([
54
+ (0, class_transformer_1.Expose)(),
55
+ __metadata("design:type", Number)
56
+ ], PlayerLeaderboardMeRO.prototype, "rank", void 0);
57
+ __decorate([
58
+ (0, class_transformer_1.Expose)(),
59
+ __metadata("design:type", Number)
60
+ ], PlayerLeaderboardMeRO.prototype, "bonuses", void 0);
61
+ __decorate([
62
+ (0, class_transformer_1.Expose)(),
63
+ __metadata("design:type", String)
64
+ ], PlayerLeaderboardMeRO.prototype, "displayName", void 0);
65
+ __decorate([
66
+ (0, class_transformer_1.Expose)(),
67
+ __metadata("design:type", String)
68
+ ], PlayerLeaderboardMeRO.prototype, "photo", void 0);
69
+ class PlayerLeaderboardRO {
70
+ }
71
+ exports.PlayerLeaderboardRO = PlayerLeaderboardRO;
72
+ __decorate([
73
+ (0, class_transformer_1.Expose)(),
74
+ (0, class_transformer_1.Type)(() => PlayerLeaderboardEntryRO),
75
+ __metadata("design:type", Array)
76
+ ], PlayerLeaderboardRO.prototype, "top", void 0);
77
+ __decorate([
78
+ (0, class_transformer_1.Expose)(),
79
+ (0, class_transformer_1.Type)(() => PlayerLeaderboardMeRO),
80
+ __metadata("design:type", PlayerLeaderboardMeRO)
81
+ ], PlayerLeaderboardRO.prototype, "me", void 0);
@@ -9,6 +9,28 @@ declare class Review {
9
9
  createdAt: Date;
10
10
  accepted?: boolean;
11
11
  }
12
+ export declare class PlayerAggregatorQuestroomRO {
13
+ id: number;
14
+ title: string;
15
+ photo: string;
16
+ slug: string;
17
+ }
18
+ export declare class PlayerAggregatorOrderRO {
19
+ id: number;
20
+ questroomId: number;
21
+ date: string;
22
+ time: string;
23
+ price: number;
24
+ currency: string;
25
+ status: string;
26
+ /** Нетто кэшбэка по этой брони в минорах. 0 — ещё не начислили или реверс. */
27
+ cashbackAmount: number;
28
+ questroom?: PlayerAggregatorQuestroomRO;
29
+ }
30
+ export declare class PlayerCashbackRO {
31
+ currency: string;
32
+ amount: number;
33
+ }
12
34
  export declare class PlayerRO {
13
35
  id: number;
14
36
  fullName: string;
@@ -23,7 +45,14 @@ export declare class PlayerRO {
23
45
  orders?: OrderRO[];
24
46
  reviewsCount?: number;
25
47
  ordersCount?: number;
26
- /** Накопленные квестобаллы: 200 за бронь со слотом + 50 за принятый отзыв. */
48
+ /**
49
+ * Квестобаллы: 200 за бронь со слотом, 50 за принятый отзыв,
50
+ * плюс квесты профиля (имя / фото / телефон).
51
+ */
27
52
  bonuses?: number;
53
+ /** Место в общем рейтинге по квестобаллам. 1 — лидер. */
54
+ rank?: number;
55
+ aggregatorOrders?: PlayerAggregatorOrderRO[];
56
+ cashback?: PlayerCashbackRO[];
28
57
  }
29
58
  export {};
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PlayerRO = void 0;
12
+ exports.PlayerRO = exports.PlayerCashbackRO = exports.PlayerAggregatorOrderRO = exports.PlayerAggregatorQuestroomRO = void 0;
13
13
  /* eslint-disable max-classes-per-file */
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const order_ro_1 = require("../order/order.ro");
@@ -44,6 +44,76 @@ __decorate([
44
44
  (0, class_transformer_1.Expose)(),
45
45
  __metadata("design:type", Boolean)
46
46
  ], Review.prototype, "accepted", void 0);
47
+ class PlayerAggregatorQuestroomRO {
48
+ }
49
+ exports.PlayerAggregatorQuestroomRO = PlayerAggregatorQuestroomRO;
50
+ __decorate([
51
+ (0, class_transformer_1.Expose)(),
52
+ __metadata("design:type", Number)
53
+ ], PlayerAggregatorQuestroomRO.prototype, "id", void 0);
54
+ __decorate([
55
+ (0, class_transformer_1.Expose)(),
56
+ __metadata("design:type", String)
57
+ ], PlayerAggregatorQuestroomRO.prototype, "title", void 0);
58
+ __decorate([
59
+ (0, class_transformer_1.Expose)(),
60
+ __metadata("design:type", String)
61
+ ], PlayerAggregatorQuestroomRO.prototype, "photo", void 0);
62
+ __decorate([
63
+ (0, class_transformer_1.Expose)(),
64
+ __metadata("design:type", String)
65
+ ], PlayerAggregatorQuestroomRO.prototype, "slug", void 0);
66
+ class PlayerAggregatorOrderRO {
67
+ }
68
+ exports.PlayerAggregatorOrderRO = PlayerAggregatorOrderRO;
69
+ __decorate([
70
+ (0, class_transformer_1.Expose)(),
71
+ __metadata("design:type", Number)
72
+ ], PlayerAggregatorOrderRO.prototype, "id", void 0);
73
+ __decorate([
74
+ (0, class_transformer_1.Expose)(),
75
+ __metadata("design:type", Number)
76
+ ], PlayerAggregatorOrderRO.prototype, "questroomId", void 0);
77
+ __decorate([
78
+ (0, class_transformer_1.Expose)(),
79
+ __metadata("design:type", String)
80
+ ], PlayerAggregatorOrderRO.prototype, "date", void 0);
81
+ __decorate([
82
+ (0, class_transformer_1.Expose)(),
83
+ __metadata("design:type", String)
84
+ ], PlayerAggregatorOrderRO.prototype, "time", void 0);
85
+ __decorate([
86
+ (0, class_transformer_1.Expose)(),
87
+ __metadata("design:type", Number)
88
+ ], PlayerAggregatorOrderRO.prototype, "price", void 0);
89
+ __decorate([
90
+ (0, class_transformer_1.Expose)(),
91
+ __metadata("design:type", String)
92
+ ], PlayerAggregatorOrderRO.prototype, "currency", void 0);
93
+ __decorate([
94
+ (0, class_transformer_1.Expose)(),
95
+ __metadata("design:type", String)
96
+ ], PlayerAggregatorOrderRO.prototype, "status", void 0);
97
+ __decorate([
98
+ (0, class_transformer_1.Expose)(),
99
+ __metadata("design:type", Number)
100
+ ], PlayerAggregatorOrderRO.prototype, "cashbackAmount", void 0);
101
+ __decorate([
102
+ (0, class_transformer_1.Expose)(),
103
+ (0, class_transformer_1.Type)(() => PlayerAggregatorQuestroomRO),
104
+ __metadata("design:type", PlayerAggregatorQuestroomRO)
105
+ ], PlayerAggregatorOrderRO.prototype, "questroom", void 0);
106
+ class PlayerCashbackRO {
107
+ }
108
+ exports.PlayerCashbackRO = PlayerCashbackRO;
109
+ __decorate([
110
+ (0, class_transformer_1.Expose)(),
111
+ __metadata("design:type", String)
112
+ ], PlayerCashbackRO.prototype, "currency", void 0);
113
+ __decorate([
114
+ (0, class_transformer_1.Expose)(),
115
+ __metadata("design:type", Number)
116
+ ], PlayerCashbackRO.prototype, "amount", void 0);
47
117
  class PlayerRO {
48
118
  }
49
119
  exports.PlayerRO = PlayerRO;
@@ -106,3 +176,17 @@ __decorate([
106
176
  (0, class_transformer_1.Expose)(),
107
177
  __metadata("design:type", Number)
108
178
  ], PlayerRO.prototype, "bonuses", void 0);
179
+ __decorate([
180
+ (0, class_transformer_1.Expose)(),
181
+ __metadata("design:type", Number)
182
+ ], PlayerRO.prototype, "rank", void 0);
183
+ __decorate([
184
+ (0, class_transformer_1.Expose)(),
185
+ (0, class_transformer_1.Type)(() => PlayerAggregatorOrderRO),
186
+ __metadata("design:type", Array)
187
+ ], PlayerRO.prototype, "aggregatorOrders", void 0);
188
+ __decorate([
189
+ (0, class_transformer_1.Expose)(),
190
+ (0, class_transformer_1.Type)(() => PlayerCashbackRO),
191
+ __metadata("design:type", Array)
192
+ ], PlayerRO.prototype, "cashback", void 0);
@@ -2,6 +2,7 @@ import { GooglePlacesStatusEnum } from '../google-places/google-places-status.en
2
2
  import { CountriesEnum } from '../shared/enum/countries.enum';
3
3
  import { ProfileActionRO } from './action/profile-action.ro';
4
4
  import { CrmVerificationEnum } from './enum/crm-verifiaction.enum';
5
+ import { NavigatorCertificateProgramEnum } from './enum/navigator-certificate-program.enum';
5
6
  import { PartnerProgramEnum } from './enum/partner-program.enum';
6
7
  import { ProfileIntegrationTypeEnum } from './enum/profile-integration-type.enum';
7
8
  import { ProfileLostReasonEnum } from './enum/profile-lost-reason.enum';
@@ -33,6 +34,7 @@ export declare class AdminProfileRO {
33
34
  lostReason: ProfileLostReasonEnum;
34
35
  commissions?: ProfileCommissionRO;
35
36
  partnerProgram: PartnerProgramEnum;
37
+ navigatorCertificateProgram: NavigatorCertificateProgramEnum;
36
38
  lastEmailSendId: string;
37
39
  subscriptionStatus: ProfileSubscriptionEnum;
38
40
  crmVerification: CrmVerificationEnum;
@@ -56,6 +58,7 @@ export declare class AdminProfileRO {
56
58
  tags: ProfileTagEnum[];
57
59
  nowEscape: boolean;
58
60
  morty: boolean;
61
+ doNotContact: boolean;
59
62
  mainEmail: string;
60
63
  /** May be null for older/incomplete rows (column is nullable). */
61
64
  secondaryEmails?: string[] | null;
@@ -16,6 +16,7 @@ const google_places_status_enum_1 = require("../google-places/google-places-stat
16
16
  const countries_enum_1 = require("../shared/enum/countries.enum");
17
17
  const profile_action_ro_1 = require("./action/profile-action.ro");
18
18
  const crm_verifiaction_enum_1 = require("./enum/crm-verifiaction.enum");
19
+ const navigator_certificate_program_enum_1 = require("./enum/navigator-certificate-program.enum");
19
20
  const partner_program_enum_1 = require("./enum/partner-program.enum");
20
21
  const profile_integration_type_enum_1 = require("./enum/profile-integration-type.enum");
21
22
  const profile_lost_reason_enum_1 = require("./enum/profile-lost-reason.enum");
@@ -96,6 +97,10 @@ __decorate([
96
97
  (0, class_transformer_1.Expose)(),
97
98
  __metadata("design:type", String)
98
99
  ], AdminProfileRO.prototype, "partnerProgram", void 0);
100
+ __decorate([
101
+ (0, class_transformer_1.Expose)(),
102
+ __metadata("design:type", String)
103
+ ], AdminProfileRO.prototype, "navigatorCertificateProgram", void 0);
99
104
  __decorate([
100
105
  (0, class_transformer_1.Expose)(),
101
106
  __metadata("design:type", String)
@@ -188,6 +193,10 @@ __decorate([
188
193
  (0, class_transformer_1.Expose)(),
189
194
  __metadata("design:type", Boolean)
190
195
  ], AdminProfileRO.prototype, "morty", void 0);
196
+ __decorate([
197
+ (0, class_transformer_1.Expose)(),
198
+ __metadata("design:type", Boolean)
199
+ ], AdminProfileRO.prototype, "doNotContact", void 0);
191
200
  __decorate([
192
201
  (0, class_transformer_1.Expose)(),
193
202
  __metadata("design:type", String)
@@ -24,6 +24,7 @@ export declare class CreateProfileDto {
24
24
  logo: string;
25
25
  nowEscape: boolean;
26
26
  status: ProfileStatusEnum;
27
+ doNotContact?: boolean;
27
28
  mainEmail: string;
28
29
  secondaryEmails: string[];
29
30
  tags: ProfileTagEnum[];
@@ -94,6 +94,12 @@ __decorate([
94
94
  (0, class_transformer_1.Expose)(),
95
95
  __metadata("design:type", String)
96
96
  ], CreateProfileDto.prototype, "status", void 0);
97
+ __decorate([
98
+ (0, class_validator_1.IsOptional)(),
99
+ (0, class_validator_1.IsBoolean)(),
100
+ (0, class_transformer_1.Expose)(),
101
+ __metadata("design:type", Boolean)
102
+ ], CreateProfileDto.prototype, "doNotContact", void 0);
97
103
  __decorate([
98
104
  (0, class_validator_1.IsOptional)(),
99
105
  (0, class_validator_1.IsEmail)(),
@@ -0,0 +1,5 @@
1
+ export declare enum NavigatorCertificateProgramEnum {
2
+ NONE = "none",
3
+ ACTIVE = "active",
4
+ PAUSED = "paused"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NavigatorCertificateProgramEnum = void 0;
4
+ var NavigatorCertificateProgramEnum;
5
+ (function (NavigatorCertificateProgramEnum) {
6
+ NavigatorCertificateProgramEnum["NONE"] = "none";
7
+ NavigatorCertificateProgramEnum["ACTIVE"] = "active";
8
+ NavigatorCertificateProgramEnum["PAUSED"] = "paused";
9
+ })(NavigatorCertificateProgramEnum || (exports.NavigatorCertificateProgramEnum = NavigatorCertificateProgramEnum = {}));
@@ -2,6 +2,7 @@ import { CountriesEnum } from '../shared/enum/countries.enum';
2
2
  import { Languages } from '../shared/enum/languages.enum';
3
3
  import { WidgetBookingFiledEnum } from '../widget/enum/widget-booking-filed.enum';
4
4
  import { CrmVerificationEnum } from './enum/crm-verifiaction.enum';
5
+ import { NavigatorCertificateProgramEnum } from './enum/navigator-certificate-program.enum';
5
6
  import { PartnerProgramEnum } from './enum/partner-program.enum';
6
7
  import { ProfileIntegrationTypeEnum } from './enum/profile-integration-type.enum';
7
8
  import { ProfileStatusEnum } from './enum/profile-step.enum';
@@ -24,6 +25,7 @@ export declare class ProfileRO {
24
25
  gaCoversationId: string;
25
26
  gaCoversationLabel: string;
26
27
  partnerProgram: PartnerProgramEnum;
28
+ navigatorCertificateProgram: NavigatorCertificateProgramEnum;
27
29
  crmVerification: CrmVerificationEnum;
28
30
  /**
29
31
  * Когда владелец акцептовал оферту (Nutzungsbedingungen + AVV) в
@@ -15,6 +15,7 @@ const class_transformer_1 = require("class-transformer");
15
15
  const countries_enum_1 = require("../shared/enum/countries.enum");
16
16
  const languages_enum_1 = require("../shared/enum/languages.enum");
17
17
  const crm_verifiaction_enum_1 = require("./enum/crm-verifiaction.enum");
18
+ const navigator_certificate_program_enum_1 = require("./enum/navigator-certificate-program.enum");
18
19
  const partner_program_enum_1 = require("./enum/partner-program.enum");
19
20
  const profile_integration_type_enum_1 = require("./enum/profile-integration-type.enum");
20
21
  const profile_step_enum_1 = require("./enum/profile-step.enum");
@@ -79,6 +80,10 @@ __decorate([
79
80
  (0, class_transformer_1.Expose)(),
80
81
  __metadata("design:type", String)
81
82
  ], ProfileRO.prototype, "partnerProgram", void 0);
83
+ __decorate([
84
+ (0, class_transformer_1.Expose)(),
85
+ __metadata("design:type", String)
86
+ ], ProfileRO.prototype, "navigatorCertificateProgram", void 0);
82
87
  __decorate([
83
88
  (0, class_transformer_1.Expose)(),
84
89
  __metadata("design:type", String)
@@ -29,4 +29,6 @@ export declare class QueryAdminProfileDto {
29
29
  lastEmailSendId?: string;
30
30
  notlastEmailSendId?: string;
31
31
  integrationType?: ProfileIntegrationTypeEnum;
32
+ /** true — только DNC; false — без DNC; пусто — все. */
33
+ doNotContact?: boolean;
32
34
  }
@@ -96,3 +96,7 @@ __decorate([
96
96
  (0, class_transformer_1.Expose)(),
97
97
  __metadata("design:type", String)
98
98
  ], QueryAdminProfileDto.prototype, "integrationType", void 0);
99
+ __decorate([
100
+ (0, class_transformer_1.Expose)(),
101
+ __metadata("design:type", Boolean)
102
+ ], QueryAdminProfileDto.prototype, "doNotContact", void 0);
@@ -4,6 +4,7 @@ import { ResponseObject } from '../shared/ro';
4
4
  export type AgregatorQuestroomResponseObject = ResponseObject & {
5
5
  title: string;
6
6
  video?: string;
7
+ previewVideo?: string;
7
8
  photo: string;
8
9
  photos?: string[];
9
10
  time: number;
@@ -3,6 +3,7 @@ import { QuestroomTypeEnum } from './enum/questroom-type.enum';
3
3
  export declare class CreateQuestroomAdminDto {
4
4
  title: string;
5
5
  video?: string;
6
+ previewVideo?: string;
6
7
  photo: string;
7
8
  photos: string[];
8
9
  teaser: string;
@@ -31,6 +31,12 @@ __decorate([
31
31
  (0, class_transformer_1.Expose)(),
32
32
  __metadata("design:type", String)
33
33
  ], CreateQuestroomAdminDto.prototype, "video", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_transformer_1.Expose)(),
38
+ __metadata("design:type", String)
39
+ ], CreateQuestroomAdminDto.prototype, "previewVideo", void 0);
34
40
  __decorate([
35
41
  (0, class_validator_1.ValidateIf)((o) => !o.closed),
36
42
  (0, is_not_blank_1.IsNotBlank)(),
@@ -47,6 +47,10 @@ export declare class CreateQuestroomDto {
47
47
  photo: string;
48
48
  photos: string[];
49
49
  video?: string;
50
+ /**
51
+ * Short muted MP4 teaser for card hover. Not the full trailer (`video`).
52
+ */
53
+ previewVideo?: string;
50
54
  closed?: boolean;
51
55
  disabledLanguages: Languages[];
52
56
  questroomTags: TagsEnum[];
@@ -242,6 +242,12 @@ __decorate([
242
242
  (0, class_transformer_1.Expose)(),
243
243
  __metadata("design:type", String)
244
244
  ], CreateQuestroomDto.prototype, "video", void 0);
245
+ __decorate([
246
+ (0, class_validator_1.IsOptional)(),
247
+ (0, class_validator_1.IsString)(),
248
+ (0, class_transformer_1.Expose)(),
249
+ __metadata("design:type", String)
250
+ ], CreateQuestroomDto.prototype, "previewVideo", void 0);
245
251
  __decorate([
246
252
  (0, class_validator_1.IsOptional)(),
247
253
  (0, class_validator_1.IsBoolean)(),
@@ -18,6 +18,7 @@ export declare class QuestroomRO extends QuestroomLightRO {
18
18
  requiredPositionsIds: number[];
19
19
  alternativeScenarioIds: number[];
20
20
  video?: string;
21
+ previewVideo?: string;
21
22
  teaser: string;
22
23
  disabledLanguages: Languages[];
23
24
  slug: string;
@@ -53,6 +53,10 @@ __decorate([
53
53
  (0, class_transformer_1.Expose)(),
54
54
  __metadata("design:type", String)
55
55
  ], QuestroomRO.prototype, "video", void 0);
56
+ __decorate([
57
+ (0, class_transformer_1.Expose)(),
58
+ __metadata("design:type", String)
59
+ ], QuestroomRO.prototype, "previewVideo", void 0);
56
60
  __decorate([
57
61
  (0, class_transformer_1.Expose)(),
58
62
  __metadata("design:type", String)
@@ -46,6 +46,8 @@ export declare class AdminQuestroomsListRO {
46
46
  slug: string;
47
47
  photo: string;
48
48
  photos: string[];
49
+ video?: string;
50
+ previewVideo?: string;
49
51
  legend: string;
50
52
  importantInfo: string;
51
53
  teaser: string;
@@ -144,6 +144,14 @@ __decorate([
144
144
  (0, class_transformer_1.Expose)(),
145
145
  __metadata("design:type", Array)
146
146
  ], AdminQuestroomsListRO.prototype, "photos", void 0);
147
+ __decorate([
148
+ (0, class_transformer_1.Expose)(),
149
+ __metadata("design:type", String)
150
+ ], AdminQuestroomsListRO.prototype, "video", void 0);
151
+ __decorate([
152
+ (0, class_transformer_1.Expose)(),
153
+ __metadata("design:type", String)
154
+ ], AdminQuestroomsListRO.prototype, "previewVideo", void 0);
147
155
  __decorate([
148
156
  (0, class_transformer_1.Expose)(),
149
157
  __metadata("design:type", String)
@@ -0,0 +1,9 @@
1
+ export declare class CreateRatingBadgeDto {
2
+ /** Страница на сайте партнёра, куда вставлен бейдж. */
3
+ pageUrl: string;
4
+ /**
5
+ * Квест, к карточке которого ведёт бейдж.
6
+ * Если не передан — бейдж считается компанейским и даёт бонус всем квестам.
7
+ */
8
+ questroomId?: number | null;
9
+ }