@escapenavigator/types 1.10.157 → 1.10.159

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 (50) hide show
  1. package/dist/balance/balance-item-type.enum.d.ts +2 -1
  2. package/dist/balance/balance-item-type.enum.js +1 -0
  3. package/dist/location/create-location.dto.d.ts +1 -0
  4. package/dist/location/create-location.dto.js +6 -0
  5. package/dist/location/location-light.ro.d.ts +1 -0
  6. package/dist/location/location-light.ro.js +4 -0
  7. package/dist/openapi/orders/openapi-create-preorder.dto.d.ts +7 -0
  8. package/dist/openapi/orders/openapi-create-preorder.dto.js +6 -0
  9. package/dist/profile/company-ai-context.d.ts +58 -0
  10. package/dist/profile/company-ai-context.js +2 -0
  11. package/dist/questroom/create-questroom.dto.d.ts +2 -0
  12. package/dist/questroom/create-questroom.dto.js +15 -0
  13. package/dist/questroom/questroom-ai-context.d.ts +94 -0
  14. package/dist/questroom/questroom-ai-context.js +2 -0
  15. package/dist/questroom/questroom.ro.d.ts +2 -0
  16. package/dist/questroom/questroom.ro.js +8 -0
  17. package/dist/tsconfig.build.tsbuildinfo +1 -1
  18. package/dist/widget-chat/enum/widget-chat-conversation-status.enum.d.ts +5 -0
  19. package/dist/widget-chat/enum/widget-chat-conversation-status.enum.js +12 -0
  20. package/dist/widget-chat/enum/widget-chat-outcome.enum.d.ts +10 -0
  21. package/dist/widget-chat/enum/widget-chat-outcome.enum.js +25 -0
  22. package/dist/widget-chat/enum/widget-chat-resolution-reason.enum.d.ts +8 -0
  23. package/dist/widget-chat/enum/widget-chat-resolution-reason.enum.js +20 -0
  24. package/dist/widget-chat/enum/widget-chat-resolved-by.enum.d.ts +6 -0
  25. package/dist/widget-chat/enum/widget-chat-resolved-by.enum.js +11 -0
  26. package/dist/widget-chat/enum/widget-chat-satisfaction.enum.d.ts +4 -0
  27. package/dist/widget-chat/enum/widget-chat-satisfaction.enum.js +9 -0
  28. package/dist/widget-chat/widget-chat-ai-settings-update.dto.d.ts +12 -0
  29. package/dist/widget-chat/widget-chat-ai-settings-update.dto.js +73 -0
  30. package/dist/widget-chat/widget-chat-booking-info.ro.d.ts +9 -0
  31. package/dist/widget-chat/widget-chat-booking-info.ro.js +2 -0
  32. package/dist/widget-chat/widget-chat-conversation.ro.d.ts +17 -0
  33. package/dist/widget-chat/widget-chat-conversations-query.dto.d.ts +2 -0
  34. package/dist/widget-chat/widget-chat-conversations-query.dto.js +26 -0
  35. package/dist/widget-chat/widget-chat-conversations.ro.d.ts +10 -0
  36. package/dist/widget-chat/widget-chat-conversations.ro.js +2 -0
  37. package/dist/widget-chat/widget-chat-feedback.dto.d.ts +5 -0
  38. package/dist/widget-chat/widget-chat-feedback.dto.js +33 -0
  39. package/dist/widget-chat/widget-chat-identify.dto.d.ts +5 -0
  40. package/dist/widget-chat/widget-chat-identify.dto.js +33 -0
  41. package/dist/widget-chat/widget-chat-knowledge-save.dto.d.ts +10 -0
  42. package/dist/widget-chat/widget-chat-knowledge-save.dto.js +54 -0
  43. package/dist/widget-chat/widget-chat-message.ro.d.ts +11 -0
  44. package/dist/widget-chat/widget-chat-outcome.util.d.ts +11 -0
  45. package/dist/widget-chat/widget-chat-outcome.util.js +35 -0
  46. package/dist/widget-chat/widget-chat-resolution.dto.d.ts +5 -0
  47. package/dist/widget-chat/widget-chat-resolution.dto.js +33 -0
  48. package/dist/widget-chat/widget-chat-satisfaction.dto.d.ts +6 -0
  49. package/dist/widget-chat/widget-chat-satisfaction.dto.js +34 -0
  50. package/package.json +2 -2
@@ -3,5 +3,6 @@ export declare enum BalanceItemTypeEnum {
3
3
  BONUS = "bonus",
4
4
  PAYMENT = "payment",
5
5
  CHARGE = "charge",
6
- AGGREGATOR = "aggregator"
6
+ AGGREGATOR = "aggregator",
7
+ AI_USAGE = "ai_usage"
7
8
  }
@@ -8,4 +8,5 @@ var BalanceItemTypeEnum;
8
8
  BalanceItemTypeEnum["PAYMENT"] = "payment";
9
9
  BalanceItemTypeEnum["CHARGE"] = "charge";
10
10
  BalanceItemTypeEnum["AGGREGATOR"] = "aggregator";
11
+ BalanceItemTypeEnum["AI_USAGE"] = "ai_usage";
11
12
  })(BalanceItemTypeEnum || (exports.BalanceItemTypeEnum = BalanceItemTypeEnum = {}));
@@ -17,6 +17,7 @@ export declare class CreateLocationDto {
17
17
  parking: boolean;
18
18
  waitingArea: boolean;
19
19
  site: string;
20
+ hideFromChat: boolean;
20
21
  waitingAreaSize?: number;
21
22
  locales: Locale[];
22
23
  correctedAddress?: string;
@@ -107,6 +107,12 @@ __decorate([
107
107
  (0, class_transformer_1.Expose)(),
108
108
  __metadata("design:type", String)
109
109
  ], CreateLocationDto.prototype, "site", void 0);
110
+ __decorate([
111
+ (0, class_validator_1.IsBoolean)(),
112
+ (0, class_transformer_1.Transform)(({ value }) => value || false),
113
+ (0, class_transformer_1.Expose)(),
114
+ __metadata("design:type", Boolean)
115
+ ], CreateLocationDto.prototype, "hideFromChat", void 0);
110
116
  __decorate([
111
117
  (0, class_validator_1.ValidateIf)((o) => o.waitingArea),
112
118
  (0, class_validator_1.IsPositive)(),
@@ -31,6 +31,7 @@ export declare class LocationLightRO extends RO {
31
31
  waitingArea: boolean;
32
32
  waitingAreaSize: number;
33
33
  site: string;
34
+ hideFromChat?: boolean;
34
35
  timeZone: string;
35
36
  locales: LocationLocaleLight[];
36
37
  }
@@ -98,6 +98,10 @@ __decorate([
98
98
  (0, class_transformer_1.Expose)(),
99
99
  __metadata("design:type", String)
100
100
  ], LocationLightRO.prototype, "site", void 0);
101
+ __decorate([
102
+ (0, class_transformer_1.Expose)(),
103
+ __metadata("design:type", Boolean)
104
+ ], LocationLightRO.prototype, "hideFromChat", void 0);
101
105
  __decorate([
102
106
  (0, class_transformer_1.Expose)(),
103
107
  __metadata("design:type", String)
@@ -47,4 +47,11 @@ export declare class OpenapiCreatePreorderDto extends ClientFormDto {
47
47
  * — фронт может обработать `errorCodes` отдельным сообщением.
48
48
  */
49
49
  promocodeId?: number;
50
+ /**
51
+ * Если бронь оформляется из чат-виджета (клик по слоту, который предложил
52
+ * ИИ), сюда прокидывается id беседы — бэкенд свяжет заказ с диалогом и
53
+ * пометит «начал бронь», а после подтверждения — закроет диалог как
54
+ * решённый через бронирование.
55
+ */
56
+ conversationId?: number;
50
57
  }
@@ -163,3 +163,9 @@ __decorate([
163
163
  (0, class_transformer_1.Expose)(),
164
164
  __metadata("design:type", Number)
165
165
  ], OpenapiCreatePreorderDto.prototype, "promocodeId", void 0);
166
+ __decorate([
167
+ (0, class_validator_1.IsOptional)(),
168
+ (0, class_validator_1.IsNumber)(),
169
+ (0, class_transformer_1.Expose)(),
170
+ __metadata("design:type", Number)
171
+ ], OpenapiCreatePreorderDto.prototype, "conversationId", void 0);
@@ -0,0 +1,58 @@
1
+ import { QuestroomCancelationTypeEnum } from '../questroom/enum/questroom-cancelation-type.enum';
2
+ import { Languages } from '../shared/enum/languages.enum';
3
+ import { PrepaymentTypeEnum } from '../slot/enum/prepayment-type.enum';
4
+ /**
5
+ * Живой контекст КОМПАНИИ для ИИ-ассистента чата (всё, что не про конкретный
6
+ * квест): контакты, языки, локации, правила бронирования и часы работы.
7
+ *
8
+ * Собирается на лету (`CompanyAiContextService`) из профиля, локаций,
9
+ * default-правила слотов и расписания — в БД не хранится, всегда актуально.
10
+ * Свободный FAQ (что нельзя вывести из структуры) ведётся вручную в
11
+ * `widget_chat_knowledge` и ищется через searchKnowledge.
12
+ */
13
+ export type CompanyAiWorkingDay = {
14
+ open: string;
15
+ close: string;
16
+ };
17
+ export type CompanyAiContext = {
18
+ title: string;
19
+ country?: string;
20
+ timeZone?: string;
21
+ languages: Languages[];
22
+ contacts: {
23
+ phone?: string;
24
+ site?: string;
25
+ instagram?: string;
26
+ agreementLink?: string;
27
+ };
28
+ locations: Array<{
29
+ id?: number;
30
+ displayName?: string;
31
+ title?: string;
32
+ address: string;
33
+ city?: string;
34
+ subwayStation?: string | null;
35
+ phone?: string;
36
+ howToFind?: string;
37
+ prepareText?: string;
38
+ timeZone?: string;
39
+ amenities: {
40
+ wifi: boolean;
41
+ wardrobe: boolean;
42
+ freeParking: boolean;
43
+ parking: boolean;
44
+ waitingArea: boolean;
45
+ waitingAreaSize?: number;
46
+ };
47
+ }>;
48
+ booking?: {
49
+ prepaymentType: PrepaymentTypeEnum;
50
+ prepayment: number;
51
+ currency?: string;
52
+ freeCancelHours?: number;
53
+ minBookingHours?: number;
54
+ cancelationRule: QuestroomCancelationTypeEnum;
55
+ clientCanCancel: boolean;
56
+ };
57
+ workingHours?: Partial<Record<'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun', CompanyAiWorkingDay>>;
58
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -34,6 +34,7 @@ export declare class CreateQuestroomDto {
34
34
  paypalCashbox: number;
35
35
  awailableForWidgets: boolean;
36
36
  awailableForNavigator: boolean;
37
+ hideFromChat: boolean;
37
38
  time: number;
38
39
  ticketSystem: boolean;
39
40
  resourceUnitsTotal: number;
@@ -54,5 +55,6 @@ export declare class CreateQuestroomDto {
54
55
  flexPlayersSelect?: boolean;
55
56
  slotStepMinutes?: number;
56
57
  questOpeningDate?: string;
58
+ aiNote?: string;
57
59
  }
58
60
  export {};
@@ -176,6 +176,13 @@ __decorate([
176
176
  (0, class_transformer_1.Expose)(),
177
177
  __metadata("design:type", Boolean)
178
178
  ], CreateQuestroomDto.prototype, "awailableForNavigator", void 0);
179
+ __decorate([
180
+ (0, class_validator_1.IsOptional)(),
181
+ (0, class_validator_1.IsBoolean)(),
182
+ (0, class_transformer_1.Transform)(({ value }) => (value !== undefined ? value : false)),
183
+ (0, class_transformer_1.Expose)(),
184
+ __metadata("design:type", Boolean)
185
+ ], CreateQuestroomDto.prototype, "hideFromChat", void 0);
179
186
  __decorate([
180
187
  (0, class_validator_1.ValidateIf)(lounge_questroom_1.isClassicQuestroomFieldsRequired),
181
188
  (0, class_validator_1.IsPositive)(),
@@ -306,3 +313,11 @@ __decorate([
306
313
  (0, class_transformer_1.Expose)(),
307
314
  __metadata("design:type", String)
308
315
  ], CreateQuestroomDto.prototype, "questOpeningDate", void 0);
316
+ __decorate([
317
+ (0, class_validator_1.IsOptional)(),
318
+ (0, class_validator_1.IsString)(),
319
+ (0, class_transformer_1.Transform)(({ value }) => value || null),
320
+ (0, class_transformer_1.Expose)(),
321
+ (0, class_validator_1.MaxLength)(2000),
322
+ __metadata("design:type", String)
323
+ ], CreateQuestroomDto.prototype, "aiNote", void 0);
@@ -0,0 +1,94 @@
1
+ import { Languages } from '../shared/enum/languages.enum';
2
+ import { TagsEnum } from '../shared/enum/tags.enum';
3
+ import { QuestroomActorsEnum } from './enum/questroom-actors.enum';
4
+ import { QuestroomTypeEnum } from './enum/questroom-type.enum';
5
+ /**
6
+ * Структурированный контекст квеста для ИИ-ассистента виджет-чата.
7
+ *
8
+ * Собирается «на лету» из `QuestroomEntity` (+ профиль/локация) билдером
9
+ * `buildQuestroomAiContext` — в БД НЕ хранится, поэтому всегда актуален при
10
+ * любом изменении квеста. Единственное, что владелец правит руками, — это
11
+ * `aiNote` («Что учесть перед ответом»), оно живёт на самом квесте.
12
+ *
13
+ * Шкалы (`difficulty`/`fear`) отдаются вместе с максимумом (`X из max`),
14
+ * чтобы модель понимала диапазон, а не абсолютное число. Значения enum'ов
15
+ * расшифровываются глоссарием в системном промпте ассистента.
16
+ */
17
+ export type QuestroomAiScale = {
18
+ value: number;
19
+ max: number;
20
+ };
21
+ export type QuestroomAiContext = {
22
+ id: number;
23
+ title: string;
24
+ location?: {
25
+ phone?: string;
26
+ address: string;
27
+ city?: string;
28
+ subwayStation?: string | null;
29
+ howToFind?: string;
30
+ prepareText?: string;
31
+ amenities?: {
32
+ wifi: boolean;
33
+ wardrobe: boolean;
34
+ freeParking: boolean;
35
+ parking: boolean;
36
+ waitingArea: boolean;
37
+ waitingAreaSize?: number;
38
+ };
39
+ };
40
+ description?: {
41
+ teaser?: string;
42
+ legend?: string;
43
+ importantInfo?: string;
44
+ };
45
+ gameplay: {
46
+ type: QuestroomTypeEnum;
47
+ tags: TagsEnum[];
48
+ actors: QuestroomActorsEnum;
49
+ difficulty: QuestroomAiScale;
50
+ fear: QuestroomAiScale;
51
+ minAge: number;
52
+ durationMinutes: number;
53
+ playersMin: number;
54
+ playersMax: number;
55
+ };
56
+ price?: {
57
+ min?: number;
58
+ max?: number;
59
+ currency?: string;
60
+ };
61
+ languages?: Languages[];
62
+ booking: {
63
+ isClosed: boolean;
64
+ openingDate?: string;
65
+ };
66
+ media?: {
67
+ mainPhoto?: string;
68
+ photos?: string[];
69
+ video?: string;
70
+ };
71
+ aiNote?: string;
72
+ };
73
+ /**
74
+ * Компактная карточка квеста для «индекса» — одна строка на квест. Кладётся
75
+ * в системный контекст целиком (все квесты профиля), чтобы модель видела весь
76
+ * ассортимент и ничего не «пропадало» при большом числе квестов. Полный
77
+ * `QuestroomAiContext` модель догружает по id через tool getQuestroomDetails.
78
+ */
79
+ export type QuestroomAiIndexItem = {
80
+ id: number;
81
+ title: string;
82
+ type: QuestroomTypeEnum;
83
+ playersMin: number;
84
+ playersMax: number;
85
+ minAge: number;
86
+ durationMinutes: number;
87
+ priceMin?: number;
88
+ priceMax?: number;
89
+ currency?: string;
90
+ tags: TagsEnum[];
91
+ languages: Languages[];
92
+ isClosed: boolean;
93
+ locationId?: number;
94
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -26,4 +26,6 @@ export declare class QuestroomRO extends QuestroomLightRO {
26
26
  top: boolean;
27
27
  awailableForNavigator: boolean;
28
28
  photoFrame: string;
29
+ aiNote?: string;
30
+ hideFromChat?: boolean;
29
31
  }
@@ -90,3 +90,11 @@ __decorate([
90
90
  (0, class_transformer_1.Expose)(),
91
91
  __metadata("design:type", String)
92
92
  ], QuestroomRO.prototype, "photoFrame", void 0);
93
+ __decorate([
94
+ (0, class_transformer_1.Expose)(),
95
+ __metadata("design:type", String)
96
+ ], QuestroomRO.prototype, "aiNote", void 0);
97
+ __decorate([
98
+ (0, class_transformer_1.Expose)(),
99
+ __metadata("design:type", Boolean)
100
+ ], QuestroomRO.prototype, "hideFromChat", void 0);