@escapenavigator/types 2.1.18 → 2.1.20

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.
@@ -82,15 +82,29 @@ export type AdminIntegrationResourceRow = {
82
82
  matchConfidence: number | null;
83
83
  lastSeenAt: string | null;
84
84
  };
85
+ /**
86
+ * Поле доступа в карточке: значение целиком не отдаём.
87
+ * Для URL — хост и путь без query (там часто лежит ключ), для секрета — хвост.
88
+ */
89
+ export type AdminCredentialPreview = {
90
+ key: string;
91
+ kind: 'url' | 'secret' | 'text';
92
+ preview: string;
93
+ };
85
94
  /** Карточка подключения: всё, что нужно для разговора с квестом. */
86
95
  export type AdminIntegrationConnection = AdminIntegrationConnectionRow & {
87
96
  /** Какие поля доступа заполнены. Значения не отдаются никогда. */
88
97
  credentialsFilled: string[];
98
+ /** Ссылки и прочие доступы в безопасном виде — чтобы видеть, что именно подключено. */
99
+ credentialPreviews: AdminCredentialPreview[];
89
100
  settings: Record<string, unknown>;
90
101
  createdAt: string;
91
102
  lastSuccessAt: string | null;
92
103
  lastVerifiedAt: string | null;
93
104
  breakerOpenUntil: string | null;
105
+ verifyError: string | null;
106
+ adminComment: string | null;
107
+ selfServed: boolean;
94
108
  resourceRows: AdminIntegrationResourceRow[];
95
109
  incidents: AdminIntegrationIncidentRow[];
96
110
  runs: AdminIntegrationRunRow[];
@@ -81,3 +81,15 @@ export type CrmIntegrationStatus = {
81
81
  /** С какого момента проблема, если она есть. */
82
82
  problemSince: string | null;
83
83
  };
84
+ /**
85
+ * Данные для формы редактирования. Владелец видит свои же ссылки — иначе
86
+ * мастер открывается пустым, и кажется, что подключение стёрлось.
87
+ */
88
+ export type CrmIntegrationConnectionEdit = {
89
+ connectionId: number;
90
+ providerCode: IntegrationProviderCodeEnum;
91
+ title: string;
92
+ questroomId: number | null;
93
+ credentials: Record<string, string>;
94
+ settings: Record<string, unknown>;
95
+ };
@@ -5,14 +5,14 @@
5
5
  * - **наружу** — `/morty/*` и любой партнёр, который читает наше расписание;
6
6
  * сериализуется классами `MortyTimeslotRO`, `MortyAttractionRO`,
7
7
  * `MortyBookingRO`;
8
- * - **внутрь** — Partner Booking API: мы читаем внешнюю систему клиентом
9
- * `PartnerClientService`.
8
+ * - **внутрь** — Partner Booking API: мы читаем внешнюю систему транспортом
9
+ * `PartnerApiTransport`.
10
10
  *
11
11
  * Документ для партнёров обещает побайтовое зеркало: *«If you already expose an
12
12
  * API for Morty, you can reuse it as is — just issue us a separate token»*.
13
13
  * Пока схема была объявлена дважды (декорированные RO для исходящего и
14
- * локальные типы в `partner-client.service.ts` для входящего), это обещание
15
- * держалось на честном слове: правка одной копии не ломала ничего в другой.
14
+ * локальные типы на входящем клиенте), это обещание держалось на честном
15
+ * слове: правка одной копии не ломала ничего в другой.
16
16
  * Здесь — единственное объявление; RO-классы проверяются на совместимость с
17
17
  * ним на этапе компиляции (см. `morty-timeslot.ro.ts`).
18
18
  *
@@ -6,14 +6,14 @@
6
6
  * - **наружу** — `/morty/*` и любой партнёр, который читает наше расписание;
7
7
  * сериализуется классами `MortyTimeslotRO`, `MortyAttractionRO`,
8
8
  * `MortyBookingRO`;
9
- * - **внутрь** — Partner Booking API: мы читаем внешнюю систему клиентом
10
- * `PartnerClientService`.
9
+ * - **внутрь** — Partner Booking API: мы читаем внешнюю систему транспортом
10
+ * `PartnerApiTransport`.
11
11
  *
12
12
  * Документ для партнёров обещает побайтовое зеркало: *«If you already expose an
13
13
  * API for Morty, you can reuse it as is — just issue us a separate token»*.
14
14
  * Пока схема была объявлена дважды (декорированные RO для исходящего и
15
- * локальные типы в `partner-client.service.ts` для входящего), это обещание
16
- * держалось на честном слове: правка одной копии не ломала ничего в другой.
15
+ * локальные типы на входящем клиенте), это обещание держалось на честном
16
+ * слове: правка одной копии не ломала ничего в другой.
17
17
  * Здесь — единственное объявление; RO-классы проверяются на совместимость с
18
18
  * ним на этапе компиляции (см. `morty-timeslot.ro.ts`).
19
19
  *
@@ -14,7 +14,7 @@ import { OpenapiCreatePreorderDto } from '../orders/openapi-create-preorder.dto'
14
14
  * ни одного ордера не осталось.
15
15
  *
16
16
  * Ограничения:
17
- * • `items.length` в [2, 5] — одиночный preorder идёт через
17
+ * • `items.length` в [2, ORDER_GROUP_SIZE_LIMIT] — одиночный preorder идёт через
18
18
  * POST /openapi/orders/preorder (там нет смысла создавать группу);
19
19
  * верхний лимит — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
20
20
  * • Все items должны иметь идентичные client-fields (name/phone/email/...).
@@ -28,7 +28,7 @@ const openapi_create_preorder_dto_1 = require("../orders/openapi-create-preorder
28
28
  * ни одного ордера не осталось.
29
29
  *
30
30
  * Ограничения:
31
- * • `items.length` в [2, 5] — одиночный preorder идёт через
31
+ * • `items.length` в [2, ORDER_GROUP_SIZE_LIMIT] — одиночный preorder идёт через
32
32
  * POST /openapi/orders/preorder (там нет смысла создавать группу);
33
33
  * верхний лимит — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
34
34
  * • Все items должны иметь идентичные client-fields (name/phone/email/...).
@@ -19,7 +19,7 @@ export declare class OpenapiCreatePreorderDto extends ClientFormDto {
19
19
  * непустой массив, бэкенд создаёт OrderGroupEntity (если её ещё нет)
20
20
  * и привязывает все указанные ордеры + только что созданный к группе.
21
21
  * Используется для оплаты нескольких игр одной транзакцией. Лимит
22
- * группы — 5 ордеров (см. OrderGroupService.ORDER_GROUP_SIZE_LIMIT).
22
+ * группы — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
23
23
  */
24
24
  attachToOrderTokens?: string[];
25
25
  players: number;
@@ -45,7 +45,7 @@ __decorate([
45
45
  __decorate([
46
46
  (0, class_validator_1.IsOptional)(),
47
47
  (0, class_transformer_1.Expose)(),
48
- (0, class_validator_1.MaxLength)(2500),
48
+ (0, class_validator_1.MaxLength)(3000),
49
49
  __metadata("design:type", String)
50
50
  ], Locale.prototype, "importantInfo", void 0);
51
51
  __decorate([
@@ -294,7 +294,7 @@ __decorate([
294
294
  __decorate([
295
295
  (0, class_validator_1.IsOptional)(),
296
296
  (0, class_transformer_1.Expose)(),
297
- (0, class_validator_1.MaxLength)(2500),
297
+ (0, class_validator_1.MaxLength)(3000),
298
298
  __metadata("design:type", String)
299
299
  ], CreateQuestroomDto.prototype, "importantInfo", void 0);
300
300
  __decorate([