@escapenavigator/types 1.10.100 → 1.10.102
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.
- package/dist/certificate/certificate.ro.d.ts +7 -0
- package/dist/certificate/certificate.ro.js +25 -0
- package/dist/certificate/create-certificate.dto.d.ts +7 -0
- package/dist/certificate/create-certificate.dto.js +44 -0
- package/dist/certificate/enum/certificate-template-discount-type.enum.d.ts +4 -0
- package/dist/certificate/enum/certificate-template-discount-type.enum.js +8 -0
- package/dist/certificate-sale/certificate-sale-resend.dto.d.ts +1 -1
- package/dist/certificate-sale/certificate-sale.ro.d.ts +6 -1
- package/dist/certificate-sale/certificate-sale.ro.js +22 -2
- package/dist/client/client-form.dto.d.ts +1 -0
- package/dist/client/client-form.dto.js +5 -0
- package/dist/client/client.ro.d.ts +2 -0
- package/dist/client/client.ro.js +8 -0
- package/dist/client/create-client-from-widget.dto.d.ts +1 -0
- package/dist/client/create-client-from-widget.dto.js +5 -0
- package/dist/forms/widget/certificate/widget-certificate-nominal-form.dto.d.ts +3 -0
- package/dist/forms/widget/certificate/widget-certificate-nominal-form.dto.js +44 -0
- package/dist/forms/widget/widget-client-form.dto.d.ts +1 -0
- package/dist/forms/widget/widget-client-form.dto.js +5 -0
- package/dist/log/log-title.enum.d.ts +2 -0
- package/dist/log/log-title.enum.js +2 -0
- package/dist/openapi/certificates/openapi-certificate-sale.ro.d.ts +3 -1
- package/dist/openapi/certificates/openapi-certificate-sale.ro.js +10 -2
- package/dist/openapi/certificates/openapi-certificate-template.ro.d.ts +7 -0
- package/dist/openapi/certificates/openapi-certificate-template.ro.js +25 -0
- package/dist/openapi/orders/openapi-create-preorder.dto.d.ts +6 -1
- package/dist/openapi/orders/openapi-create-preorder.dto.js +27 -9
- package/dist/openapi/orders/openapi-order.ro.d.ts +2 -0
- package/dist/openapi/orders/openapi-order.ro.js +8 -0
- package/dist/openapi/orders/openapi-update-order-slot.dto.d.ts +6 -1
- package/dist/openapi/orders/openapi-update-order-slot.dto.js +27 -0
- package/dist/openapi/shared/openapi-questroom.ro.d.ts +17 -0
- package/dist/openapi/shared/openapi-questroom.ro.js +12 -0
- package/dist/openapi/slots/openapi-day-slots-with-nearest.ro.d.ts +5 -0
- package/dist/openapi/slots/openapi-day-slots-with-nearest.ro.js +41 -0
- package/dist/openapi/slots/openapi-slot-details.dto.d.ts +7 -0
- package/dist/openapi/slots/openapi-slot-details.dto.js +59 -0
- package/dist/openapi/slots/openapi-slot-enriched.ro.d.ts +11 -0
- package/dist/openapi/slots/openapi-slot-enriched.ro.js +85 -0
- package/dist/openapi/slots/openapi-slot-variation.ro.d.ts +14 -0
- package/dist/openapi/slots/openapi-slot-variation.ro.js +108 -0
- package/dist/openapi/slots/openapi-week-slots-with-nearest.ro.d.ts +5 -0
- package/dist/openapi/slots/openapi-week-slots-with-nearest.ro.js +38 -0
- package/dist/openapi/slots/openapi-widget-slot.ro.d.ts +9 -7
- package/dist/openapi/slots/openapi-widget-slot.ro.js +18 -29
- package/dist/order/create-order.dto.d.ts +7 -1
- package/dist/order/create-order.dto.js +35 -0
- package/dist/order/order.ro.d.ts +8 -1
- package/dist/order/order.ro.js +31 -3
- package/dist/order/update-order-slot.dto.d.ts +23 -1
- package/dist/order/update-order-slot.dto.js +45 -0
- package/dist/order/waivers/order-participants.ro.d.ts +1 -0
- package/dist/order/waivers/order-participants.ro.js +4 -0
- package/dist/order/waivers/order-to-sign.ro.d.ts +5 -0
- package/dist/order/waivers/order-to-sign.ro.js +17 -0
- package/dist/order/waivers/sign-order.dto.d.ts +6 -0
- package/dist/order/waivers/sign-order.dto.js +39 -1
- package/dist/profile/email/profile-email-card.ro.d.ts +1 -0
- package/dist/profile/email/profile-email-card.ro.js +4 -0
- package/dist/profile/enum/profile-sales-status.enum.d.ts +2 -0
- package/dist/profile/enum/profile-sales-status.enum.js +2 -0
- package/dist/profile/notification-chanel/create-notification-chanel.dto.js +2 -1
- package/dist/profile/notification-chanel/notification-chanel-type.enum.d.ts +3 -1
- package/dist/profile/notification-chanel/notification-chanel-type.enum.js +2 -0
- package/dist/profile/profile-sms/dto/get-sms-settings.dto.d.ts +4 -0
- package/dist/{slot-room-template/slot-room-template.ro.js → profile/profile-sms/dto/get-sms-settings.dto.js} +8 -8
- package/dist/profile/profile-sms/dto/query-order-sms-logs.dto.d.ts +5 -0
- package/dist/profile/profile-sms/dto/query-order-sms-logs.dto.js +29 -0
- package/dist/profile/profile-sms/dto/send-order-client-email.dto.d.ts +4 -0
- package/dist/profile/profile-sms/dto/send-order-client-email.dto.js +27 -0
- package/dist/profile/profile-sms/dto/send-order-client-sms.dto.d.ts +3 -0
- package/dist/profile/profile-sms/dto/send-order-client-sms.dto.js +22 -0
- package/dist/profile/profile-sms/dto/update-sms-settings.dto.d.ts +6 -0
- package/dist/{slot-room-template/update-slot-room-template.dto.js → profile/profile-sms/dto/update-sms-settings.dto.js} +11 -16
- package/dist/profile/profile-sms/profile-sms-recipient-type.enum.d.ts +4 -0
- package/dist/profile/profile-sms/profile-sms-recipient-type.enum.js +8 -0
- package/dist/profile/profile-sms/ro/profile-sms-log.ro.d.ts +10 -0
- package/dist/{slot-room-template/slot-room-template-element.js → profile/profile-sms/ro/profile-sms-log.ro.js} +14 -16
- package/dist/profile/profile-sms/ro/send-order-client-email.ro.d.ts +3 -0
- package/dist/profile/profile-sms/ro/send-order-client-email.ro.js +20 -0
- package/dist/profile/profile-sms/ro/sms-settings.ro.d.ts +7 -0
- package/dist/profile/profile-sms/ro/sms-settings.ro.js +33 -0
- package/dist/profile/profile-sms/sms-provider.enum.d.ts +4 -0
- package/dist/profile/profile-sms/sms-provider.enum.js +8 -0
- package/dist/profile/profile.ro.d.ts +1 -0
- package/dist/profile/profile.ro.js +4 -0
- package/dist/profile/update-current.dto.d.ts +1 -0
- package/dist/profile/update-current.dto.js +7 -0
- package/dist/profile/waiver/profile-waiver.ro.d.ts +5 -0
- package/dist/profile/waiver/profile-waiver.ro.js +16 -0
- package/dist/profile/waiver/update-waiver.dto.d.ts +4 -0
- package/dist/profile/waiver/update-waiver.dto.js +21 -0
- package/dist/profile/widget-customization/update-widget-customization.dto.js +0 -1
- package/dist/questroom/create-questroom.dto.d.ts +3 -0
- package/dist/questroom/create-questroom.dto.js +18 -0
- package/dist/questroom/questroom.ro.d.ts +10 -0
- package/dist/questroom/questroom.ro.js +16 -0
- package/dist/slot/change-template-slots-form.dto.d.ts +1 -0
- package/dist/slot/change-template-slots-form.dto.js +6 -0
- package/dist/slot/slot-autocomplite-form.dto.d.ts +1 -0
- package/dist/slot/slot-autocomplite-form.dto.js +6 -0
- package/dist/slot/slot-details.dto.d.ts +8 -0
- package/dist/slot/slot-details.dto.js +42 -0
- package/dist/slot/slot.ro.d.ts +29 -28
- package/dist/slot/update-slot.dto.d.ts +2 -0
- package/dist/slot/update-slot.dto.js +12 -0
- package/dist/slot-template/slot-template-element.d.ts +1 -0
- package/dist/slot-template/slot-template-element.js +4 -0
- package/dist/slot-template/slot-template-flex-rule.d.ts +9 -0
- package/dist/slot-template/slot-template-flex-rule.js +57 -0
- package/dist/slot-template/slot-template-history.ro.d.ts +2 -0
- package/dist/slot-template/slot-template-history.ro.js +4 -0
- package/dist/slot-template/slot-template-type.d.ts +1 -0
- package/dist/slot-template/slot-template-type.js +2 -0
- package/dist/slot-template/slot-template.ro.d.ts +6 -0
- package/dist/slot-template/slot-template.ro.js +19 -0
- package/dist/slot-template/update-slot-template.dto.d.ts +6 -0
- package/dist/slot-template/update-slot-template.dto.js +30 -0
- package/dist/tariff/create-tariff.dto.d.ts +3 -0
- package/dist/tariff/create-tariff.dto.js +18 -0
- package/dist/tariff/tariff.ro.d.ts +3 -0
- package/dist/tariff/tariff.ro.js +12 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/user/current/update-current-user-notifications.dto.d.ts +1 -0
- package/dist/user/current/update-current-user-notifications.dto.js +5 -0
- package/package.json +2 -2
- package/dist/room/dto.d.ts +0 -26
- package/dist/room/dto.js +0 -130
- package/dist/room/ro.d.ts +0 -28
- package/dist/room/ro.js +0 -113
- package/dist/slot-room-template/slot-room-template-element.d.ts +0 -9
- package/dist/slot-room-template/slot-room-template.ro.d.ts +0 -5
- package/dist/slot-room-template/update-slot-room-template.dto.d.ts +0 -8
|
@@ -21,8 +21,35 @@ __decorate([
|
|
|
21
21
|
__metadata("design:type", String)
|
|
22
22
|
], OpenapiUpdateOrderSlotDto.prototype, "orderToken", void 0);
|
|
23
23
|
__decorate([
|
|
24
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
25
|
(0, class_validator_1.IsNumber)(),
|
|
25
26
|
(0, class_transformer_1.Expose)(),
|
|
26
27
|
__metadata("design:type", Number)
|
|
27
28
|
], OpenapiUpdateOrderSlotDto.prototype, "slotId", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_validator_1.IsNumber)(),
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], OpenapiUpdateOrderSlotDto.prototype, "questroomId", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
36
|
+
(0, class_transformer_1.Expose)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], OpenapiUpdateOrderSlotDto.prototype, "date", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
41
|
+
(0, class_transformer_1.Expose)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], OpenapiUpdateOrderSlotDto.prototype, "start", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsNumber)(),
|
|
46
|
+
(0, class_transformer_1.Expose)(),
|
|
47
|
+
__metadata("design:type", Number)
|
|
48
|
+
], OpenapiUpdateOrderSlotDto.prototype, "tariffId", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
(0, class_validator_1.IsNumber)(),
|
|
52
|
+
(0, class_transformer_1.Expose)(),
|
|
53
|
+
__metadata("design:type", Number)
|
|
54
|
+
], OpenapiUpdateOrderSlotDto.prototype, "duration", void 0);
|
|
28
55
|
exports.OpenapiUpdateOrderSlotDto = OpenapiUpdateOrderSlotDto;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QuestroomConfirmTypeEnum } from '../../questroom/enum/questroom-confirm-type.enum';
|
|
2
2
|
import { QuestroomTypeEnum } from '../../questroom/enum/questroom-type.enum';
|
|
3
3
|
import { Languages } from '../../shared/enum/languages.enum';
|
|
4
|
+
import { SlotTemplateType } from '../../slot-template/slot-template-type';
|
|
4
5
|
export declare const transformQuestroom: ({ value, language, }: {
|
|
5
6
|
value: OpenapiQuestroomRO;
|
|
6
7
|
language: any;
|
|
@@ -20,6 +21,13 @@ export declare const transformQuestroom: ({ value, language, }: {
|
|
|
20
21
|
difficult: number;
|
|
21
22
|
photo: string;
|
|
22
23
|
time: number;
|
|
24
|
+
ticketSystem: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Type of the linked SlotTemplate (`fixed` or `flex`). Denormalized from
|
|
27
|
+
* `SlotTemplate.type` so widgets can branch on the schedule kind without
|
|
28
|
+
* an extra fetch.
|
|
29
|
+
*/
|
|
30
|
+
templateType?: SlotTemplateType;
|
|
23
31
|
type: QuestroomTypeEnum;
|
|
24
32
|
confirmType: QuestroomConfirmTypeEnum;
|
|
25
33
|
playersMax: number;
|
|
@@ -34,6 +42,7 @@ export declare const transformQuestroom: ({ value, language, }: {
|
|
|
34
42
|
modes: Mode[];
|
|
35
43
|
minAge: number;
|
|
36
44
|
flexPlayersSelect: boolean;
|
|
45
|
+
slotStepMinutes: number;
|
|
37
46
|
};
|
|
38
47
|
declare class QuestroomLocale {
|
|
39
48
|
title: string;
|
|
@@ -66,6 +75,13 @@ export declare class OpenapiQuestroomRO {
|
|
|
66
75
|
difficult: number;
|
|
67
76
|
photo: string;
|
|
68
77
|
time: number;
|
|
78
|
+
ticketSystem: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Type of the linked SlotTemplate (`fixed` or `flex`). Denormalized from
|
|
81
|
+
* `SlotTemplate.type` so widgets can branch on the schedule kind without
|
|
82
|
+
* an extra fetch.
|
|
83
|
+
*/
|
|
84
|
+
templateType?: SlotTemplateType;
|
|
69
85
|
type: QuestroomTypeEnum;
|
|
70
86
|
confirmType: QuestroomConfirmTypeEnum;
|
|
71
87
|
playersMax: number;
|
|
@@ -83,6 +99,7 @@ export declare class OpenapiQuestroomRO {
|
|
|
83
99
|
location: Location;
|
|
84
100
|
locales: QuestroomLocale[];
|
|
85
101
|
flexPlayersSelect: boolean;
|
|
102
|
+
slotStepMinutes: number;
|
|
86
103
|
}
|
|
87
104
|
export declare class QuestroomRow {
|
|
88
105
|
questroom: OpenapiQuestroomRO;
|
|
@@ -134,6 +134,14 @@ __decorate([
|
|
|
134
134
|
(0, class_transformer_1.Expose)(),
|
|
135
135
|
__metadata("design:type", Number)
|
|
136
136
|
], OpenapiQuestroomRO.prototype, "time", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
(0, class_transformer_1.Expose)(),
|
|
139
|
+
__metadata("design:type", Boolean)
|
|
140
|
+
], OpenapiQuestroomRO.prototype, "ticketSystem", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
(0, class_transformer_1.Expose)(),
|
|
143
|
+
__metadata("design:type", String)
|
|
144
|
+
], OpenapiQuestroomRO.prototype, "templateType", void 0);
|
|
137
145
|
__decorate([
|
|
138
146
|
(0, class_transformer_1.Expose)(),
|
|
139
147
|
__metadata("design:type", String)
|
|
@@ -205,6 +213,10 @@ __decorate([
|
|
|
205
213
|
(0, class_transformer_1.Expose)(),
|
|
206
214
|
__metadata("design:type", Boolean)
|
|
207
215
|
], OpenapiQuestroomRO.prototype, "flexPlayersSelect", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
(0, class_transformer_1.Expose)(),
|
|
218
|
+
__metadata("design:type", Number)
|
|
219
|
+
], OpenapiQuestroomRO.prototype, "slotStepMinutes", void 0);
|
|
208
220
|
exports.OpenapiQuestroomRO = OpenapiQuestroomRO;
|
|
209
221
|
class QuestroomRow {
|
|
210
222
|
}
|
|
@@ -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.OpenapiDaySlotsWithNearestRO = void 0;
|
|
13
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
14
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
const class_transformer_1 = require("class-transformer");
|
|
16
|
+
const openapi_widget_slot_ro_1 = require("./openapi-widget-slot.ro");
|
|
17
|
+
class OpenapiDaySlotsWithNearestRO {
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, swagger_1.ApiProperty)({
|
|
21
|
+
description: 'Slots for requested day',
|
|
22
|
+
type: openapi_widget_slot_ro_1.OpenapiSlotRO,
|
|
23
|
+
isArray: true,
|
|
24
|
+
}),
|
|
25
|
+
(0, class_transformer_1.Expose)(),
|
|
26
|
+
(0, class_transformer_1.Type)(() => openapi_widget_slot_ro_1.OpenapiSlotRO),
|
|
27
|
+
__metadata("design:type", Array)
|
|
28
|
+
], OpenapiDaySlotsWithNearestRO.prototype, "slots", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, swagger_1.ApiProperty)({
|
|
31
|
+
description: 'Nearest available date map by questroomId (yyyy-MM-dd)',
|
|
32
|
+
example: { 10: '2026-05-01', 11: null },
|
|
33
|
+
additionalProperties: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
nullable: true,
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
(0, class_transformer_1.Expose)(),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], OpenapiDaySlotsWithNearestRO.prototype, "nextFreeDateByQuestroomId", void 0);
|
|
41
|
+
exports.OpenapiDaySlotsWithNearestRO = OpenapiDaySlotsWithNearestRO;
|
|
@@ -0,0 +1,59 @@
|
|
|
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.OpenapiSlotDetailsDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const is_not_blank_1 = require("../../shared/is-not-blank");
|
|
15
|
+
class OpenapiSlotDetailsDto {
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, swagger_1.ApiProperty)({
|
|
19
|
+
description: 'Persisted slot identifier for fix slots. For flex slots this can be omitted '
|
|
20
|
+
+ 'or set to 0; the endpoint matches by `(questroomId, date, start)`.',
|
|
21
|
+
required: false,
|
|
22
|
+
example: 12345,
|
|
23
|
+
}),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], OpenapiSlotDetailsDto.prototype, "slotId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({
|
|
28
|
+
description: 'Quest room identifier of the slot',
|
|
29
|
+
example: 123,
|
|
30
|
+
}),
|
|
31
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], OpenapiSlotDetailsDto.prototype, "questroomId", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, swagger_1.ApiProperty)({
|
|
36
|
+
description: 'Game date in yyyy-MM-dd format',
|
|
37
|
+
example: '2026-05-30',
|
|
38
|
+
}),
|
|
39
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], OpenapiSlotDetailsDto.prototype, "date", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiProperty)({
|
|
44
|
+
description: 'Slot start time (HH:mm)',
|
|
45
|
+
example: '18:30',
|
|
46
|
+
}),
|
|
47
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], OpenapiSlotDetailsDto.prototype, "start", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, swagger_1.ApiProperty)({
|
|
52
|
+
description: 'When set, the order with this id is excluded from occupancy checks. '
|
|
53
|
+
+ 'Use in edit-order flows so the current booking is not counted as a conflict.',
|
|
54
|
+
required: false,
|
|
55
|
+
example: 9876,
|
|
56
|
+
}),
|
|
57
|
+
__metadata("design:type", Number)
|
|
58
|
+
], OpenapiSlotDetailsDto.prototype, "orderId", void 0);
|
|
59
|
+
exports.OpenapiSlotDetailsDto = OpenapiSlotDetailsDto;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OpenapiSlotVariationRO } from './openapi-slot-variation.ro';
|
|
2
|
+
export declare class OpenapiSlotEnrichedRO {
|
|
3
|
+
questroomId: number;
|
|
4
|
+
date: string;
|
|
5
|
+
start: string;
|
|
6
|
+
slotId?: number;
|
|
7
|
+
isFlex: boolean;
|
|
8
|
+
variations: OpenapiSlotVariationRO[];
|
|
9
|
+
numSeatsAvailable: number;
|
|
10
|
+
minPlayers: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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.OpenapiSlotEnrichedRO = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const openapi_slot_variation_ro_1 = require("./openapi-slot-variation.ro");
|
|
16
|
+
class OpenapiSlotEnrichedRO {
|
|
17
|
+
}
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, swagger_1.ApiProperty)({
|
|
20
|
+
description: 'Quest room identifier of the slot',
|
|
21
|
+
example: 123,
|
|
22
|
+
}),
|
|
23
|
+
(0, class_transformer_1.Expose)(),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], OpenapiSlotEnrichedRO.prototype, "questroomId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({
|
|
28
|
+
description: 'Game date in yyyy-MM-dd format',
|
|
29
|
+
example: '2026-05-30',
|
|
30
|
+
}),
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], OpenapiSlotEnrichedRO.prototype, "date", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, swagger_1.ApiProperty)({
|
|
36
|
+
description: 'Slot start time (HH:mm)',
|
|
37
|
+
example: '18:30',
|
|
38
|
+
}),
|
|
39
|
+
(0, class_transformer_1.Expose)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], OpenapiSlotEnrichedRO.prototype, "start", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiProperty)({
|
|
44
|
+
description: 'Persisted parent slot id. Present for fix slots; omitted for flex slots (booking is resolved by coordinates).',
|
|
45
|
+
required: false,
|
|
46
|
+
example: 12345,
|
|
47
|
+
}),
|
|
48
|
+
(0, class_transformer_1.Expose)(),
|
|
49
|
+
__metadata("design:type", Number)
|
|
50
|
+
], OpenapiSlotEnrichedRO.prototype, "slotId", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, swagger_1.ApiProperty)({
|
|
53
|
+
description: 'True when the slot comes from a flex template',
|
|
54
|
+
example: false,
|
|
55
|
+
}),
|
|
56
|
+
(0, class_transformer_1.Expose)(),
|
|
57
|
+
__metadata("design:type", Boolean)
|
|
58
|
+
], OpenapiSlotEnrichedRO.prototype, "isFlex", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, swagger_1.ApiProperty)({
|
|
61
|
+
description: 'Bookable variations for this slot. Always contains at least one entry (the default tariff for fix slots, or the primary duration option for flex slots).',
|
|
62
|
+
type: openapi_slot_variation_ro_1.OpenapiSlotVariationRO,
|
|
63
|
+
isArray: true,
|
|
64
|
+
}),
|
|
65
|
+
(0, class_transformer_1.Expose)(),
|
|
66
|
+
(0, class_transformer_1.Type)(() => openapi_slot_variation_ro_1.OpenapiSlotVariationRO),
|
|
67
|
+
__metadata("design:type", Array)
|
|
68
|
+
], OpenapiSlotEnrichedRO.prototype, "variations", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, swagger_1.ApiProperty)({
|
|
71
|
+
description: 'Slot-level number of available seats. Equivalent to the maximum `numSeatsAvailable` across `variations`.',
|
|
72
|
+
example: 6,
|
|
73
|
+
}),
|
|
74
|
+
(0, class_transformer_1.Expose)(),
|
|
75
|
+
__metadata("design:type", Number)
|
|
76
|
+
], OpenapiSlotEnrichedRO.prototype, "numSeatsAvailable", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, swagger_1.ApiProperty)({
|
|
79
|
+
description: 'Minimum number of players that can book this slot',
|
|
80
|
+
example: 2,
|
|
81
|
+
}),
|
|
82
|
+
(0, class_transformer_1.Expose)(),
|
|
83
|
+
__metadata("design:type", Number)
|
|
84
|
+
], OpenapiSlotEnrichedRO.prototype, "minPlayers", void 0);
|
|
85
|
+
exports.OpenapiSlotEnrichedRO = OpenapiSlotEnrichedRO;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OpenapiTariffRO } from '../shared/openapi-tariff.ro';
|
|
2
|
+
export declare class OpenapiSlotVariationRO {
|
|
3
|
+
id: string;
|
|
4
|
+
tariffId: number;
|
|
5
|
+
duration: number;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
isDefault: boolean;
|
|
9
|
+
isFree: boolean;
|
|
10
|
+
tariff: OpenapiTariffRO;
|
|
11
|
+
minPlayers: number;
|
|
12
|
+
maxPlayers: number;
|
|
13
|
+
numSeatsAvailable: number;
|
|
14
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
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.OpenapiSlotVariationRO = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const openapi_tariff_ro_1 = require("../shared/openapi-tariff.ro");
|
|
16
|
+
class OpenapiSlotVariationRO {
|
|
17
|
+
}
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, swagger_1.ApiProperty)({
|
|
20
|
+
description: 'Stable picker key. Composed as `${tariffId}-${duration}` so that flex slots which share a tariff across different durations still get unique options.',
|
|
21
|
+
example: '101-90',
|
|
22
|
+
}),
|
|
23
|
+
(0, class_transformer_1.Expose)(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], OpenapiSlotVariationRO.prototype, "id", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({
|
|
28
|
+
description: 'Tariff identifier of the variation. Used as the booking `tariffId`.',
|
|
29
|
+
example: 101,
|
|
30
|
+
}),
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], OpenapiSlotVariationRO.prototype, "tariffId", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, swagger_1.ApiProperty)({
|
|
36
|
+
description: 'Game duration in minutes. For fix slots equals `questroom.time`; for flex slots equals the chosen duration option.',
|
|
37
|
+
example: 90,
|
|
38
|
+
}),
|
|
39
|
+
(0, class_transformer_1.Expose)(),
|
|
40
|
+
__metadata("design:type", Number)
|
|
41
|
+
], OpenapiSlotVariationRO.prototype, "duration", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiProperty)({
|
|
44
|
+
description: 'Variation title shown to the client',
|
|
45
|
+
example: 'День рождения',
|
|
46
|
+
}),
|
|
47
|
+
(0, class_transformer_1.Expose)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], OpenapiSlotVariationRO.prototype, "title", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, swagger_1.ApiProperty)({
|
|
52
|
+
description: 'Optional client-facing description of the variation',
|
|
53
|
+
required: false,
|
|
54
|
+
example: 'Праздничная программа на день рождения',
|
|
55
|
+
}),
|
|
56
|
+
(0, class_transformer_1.Expose)(),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], OpenapiSlotVariationRO.prototype, "description", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, swagger_1.ApiProperty)({
|
|
61
|
+
description: 'True for the slot default tariff (fix) or for the primary duration option (flex)',
|
|
62
|
+
example: true,
|
|
63
|
+
}),
|
|
64
|
+
(0, class_transformer_1.Expose)(),
|
|
65
|
+
__metadata("design:type", Boolean)
|
|
66
|
+
], OpenapiSlotVariationRO.prototype, "isDefault", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, swagger_1.ApiProperty)({
|
|
69
|
+
description: 'Whether this variation is currently bookable',
|
|
70
|
+
example: true,
|
|
71
|
+
}),
|
|
72
|
+
(0, class_transformer_1.Expose)(),
|
|
73
|
+
__metadata("design:type", Boolean)
|
|
74
|
+
], OpenapiSlotVariationRO.prototype, "isFree", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, swagger_1.ApiProperty)({
|
|
77
|
+
description: 'Tariff price map for this variation',
|
|
78
|
+
type: openapi_tariff_ro_1.OpenapiTariffRO,
|
|
79
|
+
}),
|
|
80
|
+
(0, class_transformer_1.Expose)(),
|
|
81
|
+
(0, class_transformer_1.Type)(() => openapi_tariff_ro_1.OpenapiTariffRO),
|
|
82
|
+
__metadata("design:type", openapi_tariff_ro_1.OpenapiTariffRO)
|
|
83
|
+
], OpenapiSlotVariationRO.prototype, "tariff", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, swagger_1.ApiProperty)({
|
|
86
|
+
description: 'Minimum number of players that can book this variation',
|
|
87
|
+
example: 2,
|
|
88
|
+
}),
|
|
89
|
+
(0, class_transformer_1.Expose)(),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], OpenapiSlotVariationRO.prototype, "minPlayers", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, swagger_1.ApiProperty)({
|
|
94
|
+
description: 'Maximum number of players that can book this variation',
|
|
95
|
+
example: 6,
|
|
96
|
+
}),
|
|
97
|
+
(0, class_transformer_1.Expose)(),
|
|
98
|
+
__metadata("design:type", Number)
|
|
99
|
+
], OpenapiSlotVariationRO.prototype, "maxPlayers", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, swagger_1.ApiProperty)({
|
|
102
|
+
description: 'Number of seats still available for this variation. For fix non-ticket slots equals `questroom.playersMax` (private booking). For ticket slots and flex slots equals the actual remaining capacity.',
|
|
103
|
+
example: 6,
|
|
104
|
+
}),
|
|
105
|
+
(0, class_transformer_1.Expose)(),
|
|
106
|
+
__metadata("design:type", Number)
|
|
107
|
+
], OpenapiSlotVariationRO.prototype, "numSeatsAvailable", void 0);
|
|
108
|
+
exports.OpenapiSlotVariationRO = OpenapiSlotVariationRO;
|
|
@@ -0,0 +1,38 @@
|
|
|
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.OpenapiWeekSlotsWithNearestRO = void 0;
|
|
13
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
14
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
const class_transformer_1 = require("class-transformer");
|
|
16
|
+
const openapi_widget_slot_ro_1 = require("./openapi-widget-slot.ro");
|
|
17
|
+
class OpenapiWeekSlotsWithNearestRO {
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, swagger_1.ApiProperty)({
|
|
21
|
+
description: 'Slots for requested week',
|
|
22
|
+
type: openapi_widget_slot_ro_1.OpenapiSlotRO,
|
|
23
|
+
isArray: true,
|
|
24
|
+
}),
|
|
25
|
+
(0, class_transformer_1.Expose)(),
|
|
26
|
+
(0, class_transformer_1.Type)(() => openapi_widget_slot_ro_1.OpenapiSlotRO),
|
|
27
|
+
__metadata("design:type", Array)
|
|
28
|
+
], OpenapiWeekSlotsWithNearestRO.prototype, "slots", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, swagger_1.ApiProperty)({
|
|
31
|
+
description: 'Nearest available date for selected questroom (yyyy-MM-dd)',
|
|
32
|
+
nullable: true,
|
|
33
|
+
example: '2026-05-01',
|
|
34
|
+
}),
|
|
35
|
+
(0, class_transformer_1.Expose)(),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], OpenapiWeekSlotsWithNearestRO.prototype, "nextFreeDate", void 0);
|
|
38
|
+
exports.OpenapiWeekSlotsWithNearestRO = OpenapiWeekSlotsWithNearestRO;
|
|
@@ -8,13 +8,15 @@ export declare class OpenapiSlotRO {
|
|
|
8
8
|
productId: string | null;
|
|
9
9
|
eventId: string;
|
|
10
10
|
start: string;
|
|
11
|
-
|
|
11
|
+
tariffId?: number;
|
|
12
|
+
ruleId?: number;
|
|
12
13
|
date: string;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
end?: string;
|
|
15
|
+
numSeatsAvailable?: number;
|
|
16
|
+
discount?: number;
|
|
17
|
+
onlyPhone?: boolean;
|
|
18
|
+
tariff?: OpenapiTariffRO;
|
|
19
|
+
status?: 'bussy' | 'call' | 'free' | 'hold' | 'selected' | 'done' | 'no-resources';
|
|
20
|
+
rule?: OpenapiBokingRuleRO;
|
|
19
21
|
privateEvent?: boolean;
|
|
20
22
|
}
|
|
@@ -80,12 +80,22 @@ __decorate([
|
|
|
80
80
|
], OpenapiSlotRO.prototype, "start", void 0);
|
|
81
81
|
__decorate([
|
|
82
82
|
(0, swagger_1.ApiProperty)({
|
|
83
|
-
description: '
|
|
84
|
-
|
|
83
|
+
description: 'Default tariff identifier for this slot',
|
|
84
|
+
required: false,
|
|
85
|
+
example: 101,
|
|
85
86
|
}),
|
|
86
87
|
(0, class_transformer_1.Expose)(),
|
|
87
|
-
__metadata("design:type",
|
|
88
|
-
], OpenapiSlotRO.prototype, "
|
|
88
|
+
__metadata("design:type", Number)
|
|
89
|
+
], OpenapiSlotRO.prototype, "tariffId", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, swagger_1.ApiProperty)({
|
|
92
|
+
description: 'Default booking rule identifier for this slot',
|
|
93
|
+
required: false,
|
|
94
|
+
example: 55,
|
|
95
|
+
}),
|
|
96
|
+
(0, class_transformer_1.Expose)(),
|
|
97
|
+
__metadata("design:type", Number)
|
|
98
|
+
], OpenapiSlotRO.prototype, "ruleId", void 0);
|
|
89
99
|
__decorate([
|
|
90
100
|
(0, swagger_1.ApiProperty)({
|
|
91
101
|
description: 'Game date in yyyy-MM-dd format',
|
|
@@ -95,51 +105,30 @@ __decorate([
|
|
|
95
105
|
__metadata("design:type", String)
|
|
96
106
|
], OpenapiSlotRO.prototype, "date", void 0);
|
|
97
107
|
__decorate([
|
|
98
|
-
(0,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
(0, class_transformer_1.Expose)(),
|
|
109
|
+
__metadata("design:type", String)
|
|
110
|
+
], OpenapiSlotRO.prototype, "end", void 0);
|
|
111
|
+
__decorate([
|
|
102
112
|
(0, class_transformer_1.Expose)(),
|
|
103
113
|
__metadata("design:type", Number)
|
|
104
114
|
], OpenapiSlotRO.prototype, "numSeatsAvailable", void 0);
|
|
105
115
|
__decorate([
|
|
106
|
-
(0, swagger_1.ApiProperty)({
|
|
107
|
-
description: 'Discount value in source pricing model',
|
|
108
|
-
example: 0,
|
|
109
|
-
}),
|
|
110
116
|
(0, class_transformer_1.Expose)(),
|
|
111
117
|
__metadata("design:type", Number)
|
|
112
118
|
], OpenapiSlotRO.prototype, "discount", void 0);
|
|
113
119
|
__decorate([
|
|
114
|
-
(0, swagger_1.ApiProperty)({
|
|
115
|
-
description: 'Booking can be completed only via phone',
|
|
116
|
-
example: false,
|
|
117
|
-
}),
|
|
118
120
|
(0, class_transformer_1.Expose)(),
|
|
119
121
|
__metadata("design:type", Boolean)
|
|
120
122
|
], OpenapiSlotRO.prototype, "onlyPhone", void 0);
|
|
121
123
|
__decorate([
|
|
122
|
-
(0, swagger_1.ApiProperty)({
|
|
123
|
-
description: 'Slot tariff information',
|
|
124
|
-
type: openapi_tariff_ro_1.OpenapiTariffRO,
|
|
125
|
-
}),
|
|
126
124
|
(0, class_transformer_1.Expose)(),
|
|
127
125
|
__metadata("design:type", openapi_tariff_ro_1.OpenapiTariffRO)
|
|
128
126
|
], OpenapiSlotRO.prototype, "tariff", void 0);
|
|
129
127
|
__decorate([
|
|
130
|
-
(0, swagger_1.ApiProperty)({
|
|
131
|
-
description: 'Current slot availability status',
|
|
132
|
-
enum: ['bussy', 'call', 'free', 'hold'],
|
|
133
|
-
example: 'free',
|
|
134
|
-
}),
|
|
135
128
|
(0, class_transformer_1.Expose)(),
|
|
136
129
|
__metadata("design:type", String)
|
|
137
130
|
], OpenapiSlotRO.prototype, "status", void 0);
|
|
138
131
|
__decorate([
|
|
139
|
-
(0, swagger_1.ApiProperty)({
|
|
140
|
-
description: 'Booking and cancellation rules for this slot',
|
|
141
|
-
type: openapi_booking_rule_ro_1.OpenapiBokingRuleRO,
|
|
142
|
-
}),
|
|
143
132
|
(0, class_transformer_1.Expose)(),
|
|
144
133
|
(0, class_transformer_1.Type)(() => openapi_booking_rule_ro_1.OpenapiBokingRuleRO),
|
|
145
134
|
__metadata("design:type", openapi_booking_rule_ro_1.OpenapiBokingRuleRO)
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Languages } from '../shared/enum/languages.enum';
|
|
2
2
|
export declare class CreateOrderDto {
|
|
3
|
-
slotId
|
|
3
|
+
slotId?: number;
|
|
4
|
+
questroomId: number;
|
|
5
|
+
date: string;
|
|
6
|
+
start: string;
|
|
7
|
+
tariffId: number;
|
|
8
|
+
duration?: number;
|
|
4
9
|
players: number;
|
|
5
10
|
children: number;
|
|
6
11
|
mode: string;
|
|
@@ -19,4 +24,5 @@ export declare class CreateOrderDto {
|
|
|
19
24
|
clientId: number;
|
|
20
25
|
language?: Languages;
|
|
21
26
|
comment?: string;
|
|
27
|
+
variationHint?: string;
|
|
22
28
|
}
|