@escapenavigator/types 1.10.128 → 1.10.130
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/agregator/agregator-city.ro.d.ts +25 -0
- package/dist/agregator/agregator-city.ro.js +8 -0
- package/dist/agregator/agregator-questroom-card.ro.d.ts +14 -1
- package/dist/agregator/agregator-questroom-card.ro.js +4 -2
- package/dist/city/city.ro.d.ts +3 -0
- package/dist/city/update-city.dto.d.ts +13 -0
- package/dist/city/update-city.dto.js +19 -0
- package/dist/email-builder/index.d.ts +18 -0
- package/dist/email-builder/index.js +48 -20
- package/dist/emails/index.d.ts +21 -0
- package/dist/openapi/morty/morty-attraction.ro.d.ts +26 -0
- package/dist/openapi/morty/morty-attraction.ro.js +91 -0
- package/dist/openapi/morty/morty-attractions-query.dto.d.ts +8 -0
- package/dist/openapi/morty/morty-attractions-query.dto.js +29 -0
- package/dist/openapi/morty/morty-booking.ro.d.ts +13 -0
- package/dist/openapi/morty/morty-booking.ro.js +45 -0
- package/dist/openapi/morty/morty-create-booking.dto.d.ts +42 -0
- package/dist/openapi/morty/morty-create-booking.dto.js +122 -0
- package/dist/openapi/morty/morty-timeslot.ro.d.ts +49 -0
- package/dist/openapi/morty/morty-timeslot.ro.js +129 -0
- package/dist/openapi/morty/morty-timeslots-query.dto.d.ts +21 -0
- package/dist/openapi/morty/morty-timeslots-query.dto.js +48 -0
- package/dist/openapi/shared/openapi-questroom.ro.d.ts +2 -0
- package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
- package/dist/order/create-order.dto.d.ts +12 -0
- package/dist/order/create-order.dto.js +6 -0
- package/dist/profile/action/create-profile-action.dto.d.ts +4 -3
- package/dist/profile/action/create-profile-action.dto.js +16 -8
- package/dist/profile/birthday-marketing/birthday-marketing.dto.d.ts +6 -0
- package/dist/profile/birthday-marketing/birthday-marketing.dto.js +6 -0
- package/dist/profile/create-profile.dto.d.ts +0 -9
- package/dist/profile/create-profile.dto.js +0 -63
- package/dist/profile/cross-sale/cross-sale.dto.d.ts +8 -0
- package/dist/profile/cross-sale/cross-sale.dto.js +6 -0
- package/dist/profile/cross-sale/cross-sale.ro.d.ts +2 -0
- package/dist/profile/cross-sale/cross-sale.ro.js +4 -0
- package/dist/profile/custom-client-booking-email/custom-client-booking-email.dto.d.ts +11 -0
- package/dist/profile/custom-client-booking-email/custom-client-booking-email.dto.js +6 -0
- package/dist/profile/custom-client-booking-email/custom-client-booking-email.ro.d.ts +9 -0
- package/dist/profile/custom-client-booking-email/custom-client-booking-email.ro.js +4 -0
- package/dist/profile/marketing-email/preview-campaign-v2.dto.d.ts +37 -0
- package/dist/profile/marketing-email/preview-campaign-v2.dto.js +43 -1
- package/dist/profile/profile-crm/create-profile-crm.dto.d.ts +3 -0
- package/dist/profile/profile-crm/create-profile-crm.dto.js +22 -0
- package/dist/profile/update-profile-commission.dto.d.ts +11 -0
- package/dist/profile/update-profile-commission.dto.js +71 -0
- package/dist/questroom/create-questroom-admin.dto.d.ts +1 -0
- package/dist/questroom/create-questroom-admin.dto.js +6 -0
- package/dist/questroom/create-questroom.dto.d.ts +1 -0
- package/dist/questroom/create-questroom.dto.js +9 -0
- package/dist/questroom/questroom-admin.ro.d.ts +17 -0
- package/dist/questroom/questroom-admin.ro.js +61 -0
- package/dist/questroom/questroom-light.ro.d.ts +1 -0
- package/dist/questroom/questroom-light.ro.js +4 -0
- package/dist/questroom/questrooms-list-admin.ro.d.ts +2 -0
- package/dist/questroom/questrooms-list-admin.ro.js +8 -0
- package/dist/questroom-scenario-email/create-questroom-scenario-email.dto.d.ts +13 -0
- package/dist/questroom-scenario-email/create-questroom-scenario-email.dto.js +6 -0
- package/dist/questroom-scenario-email/questroom-scenario-email.ro.d.ts +2 -0
- package/dist/questroom-scenario-email/questroom-scenario-email.ro.js +4 -0
- package/dist/shared/source.enum.d.ts +1 -0
- package/dist/shared/source.enum.js +1 -0
- package/dist/slot/slot.ro.d.ts +1 -0
- package/dist/slot-rule/create-rule.dto.d.ts +2 -0
- package/dist/slot-rule/create-rule.dto.js +30 -0
- package/dist/slot-rule/defailt-rule.d.ts +2 -0
- package/dist/slot-rule/defailt-rule.js +2 -0
- package/dist/slot-rule/rule.ro.d.ts +2 -0
- package/dist/slot-rule/rule.ro.js +8 -0
- package/dist/subway-station/subway-station.ro.d.ts +43 -0
- package/dist/subway-station/subway-station.ro.js +2 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/user/task/user-task.dto.d.ts +2 -2
- package/dist/user/task/user-task.ro.d.ts +1 -0
- package/dist/user/task/user-task.ro.js +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,122 @@
|
|
|
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.MortyCreateBookingDto = exports.MortyBookingPaymentDto = exports.MortyCustomerDto = void 0;
|
|
13
|
+
/* eslint-disable max-classes-per-file */
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
const is_not_blank_1 = require("../../shared/is-not-blank");
|
|
17
|
+
class MortyCustomerDto {
|
|
18
|
+
}
|
|
19
|
+
exports.MortyCustomerDto = MortyCustomerDto;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_transformer_1.Expose)(),
|
|
22
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], MortyCustomerDto.prototype, "first_name", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], MortyCustomerDto.prototype, "last_name", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
(0, class_validator_1.IsEmail)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], MortyCustomerDto.prototype, "email", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_transformer_1.Expose)(),
|
|
37
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], MortyCustomerDto.prototype, "phone", void 0);
|
|
40
|
+
class MortyBookingPaymentDto {
|
|
41
|
+
}
|
|
42
|
+
exports.MortyBookingPaymentDto = MortyBookingPaymentDto;
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_transformer_1.Expose)(),
|
|
45
|
+
(0, class_validator_1.IsNumber)(),
|
|
46
|
+
(0, class_validator_1.IsPositive)(),
|
|
47
|
+
__metadata("design:type", Number)
|
|
48
|
+
], MortyBookingPaymentDto.prototype, "amount", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_transformer_1.Expose)(),
|
|
51
|
+
(0, class_validator_1.IsOptional)(),
|
|
52
|
+
(0, class_validator_1.IsString)(),
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], MortyBookingPaymentDto.prototype, "currency", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, class_transformer_1.Expose)(),
|
|
57
|
+
(0, class_validator_1.IsOptional)(),
|
|
58
|
+
(0, class_validator_1.IsString)(),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], MortyBookingPaymentDto.prototype, "transaction_id", void 0);
|
|
61
|
+
/**
|
|
62
|
+
* `POST /morty/bookings` — Morty создаёт у нас бронь.
|
|
63
|
+
*
|
|
64
|
+
* Поле `timeslot_id` — это id из `MortyTimeslotRO.id` (наш внутренний
|
|
65
|
+
* slot.id). По нему мы достаём profileId, questroomId, тариф и т.д.
|
|
66
|
+
*
|
|
67
|
+
* `external_booking_id` — id брони на стороне Morty (используем как
|
|
68
|
+
* `order.otherId` для идемпотентности и для отмен по тому же id).
|
|
69
|
+
*
|
|
70
|
+
* `paid` — Morty оплатил бронь (т.е. деньги ушли клиенту через Morty,
|
|
71
|
+
* а не через наш кассовый/виджетный путь). Помечаем заказ как
|
|
72
|
+
* `otherPayment=true`, чтобы он не дёргал наши Stripe/CloudPayments.
|
|
73
|
+
*/
|
|
74
|
+
class MortyCreateBookingDto {
|
|
75
|
+
}
|
|
76
|
+
exports.MortyCreateBookingDto = MortyCreateBookingDto;
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, class_transformer_1.Expose)(),
|
|
79
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], MortyCreateBookingDto.prototype, "timeslot_id", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, class_transformer_1.Expose)(),
|
|
84
|
+
(0, is_not_blank_1.IsNotBlank)(),
|
|
85
|
+
__metadata("design:type", String)
|
|
86
|
+
], MortyCreateBookingDto.prototype, "external_booking_id", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, class_transformer_1.Expose)(),
|
|
89
|
+
(0, class_validator_1.IsPositive)(),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], MortyCreateBookingDto.prototype, "players", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, class_transformer_1.Expose)(),
|
|
94
|
+
(0, class_validator_1.ValidateNested)(),
|
|
95
|
+
(0, class_transformer_1.Type)(() => MortyCustomerDto),
|
|
96
|
+
__metadata("design:type", MortyCustomerDto)
|
|
97
|
+
], MortyCreateBookingDto.prototype, "customer", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, class_transformer_1.Expose)(),
|
|
100
|
+
(0, class_validator_1.IsOptional)(),
|
|
101
|
+
(0, class_validator_1.IsString)(),
|
|
102
|
+
__metadata("design:type", String)
|
|
103
|
+
], MortyCreateBookingDto.prototype, "comment", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, class_transformer_1.Expose)(),
|
|
106
|
+
(0, class_validator_1.IsOptional)(),
|
|
107
|
+
(0, class_validator_1.IsBoolean)(),
|
|
108
|
+
__metadata("design:type", Boolean)
|
|
109
|
+
], MortyCreateBookingDto.prototype, "paid", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, class_transformer_1.Expose)(),
|
|
112
|
+
(0, class_validator_1.IsOptional)(),
|
|
113
|
+
(0, class_validator_1.ValidateNested)(),
|
|
114
|
+
(0, class_transformer_1.Type)(() => MortyBookingPaymentDto),
|
|
115
|
+
__metadata("design:type", MortyBookingPaymentDto)
|
|
116
|
+
], MortyCreateBookingDto.prototype, "payment", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, class_transformer_1.Expose)(),
|
|
119
|
+
(0, class_validator_1.IsOptional)(),
|
|
120
|
+
(0, class_validator_1.IsArray)(),
|
|
121
|
+
__metadata("design:type", Array)
|
|
122
|
+
], MortyCreateBookingDto.prototype, "extras", void 0);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Прайсинг по количеству игроков. Ключ — количество игроков, значение —
|
|
3
|
+
* цена за всю группу указанного размера в основной валюте профиля
|
|
4
|
+
* (например USD/EUR/RUB), не в minor units.
|
|
5
|
+
*
|
|
6
|
+
* Пример: { "2": 60, "3": 75, "4": 90 } — значит группа из 2 человек
|
|
7
|
+
* стоит 60$, из 3 — 75$ и т.д.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MortyTimeslotPriceRO {
|
|
10
|
+
players: number;
|
|
11
|
+
price: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Слот в формате Morty.
|
|
15
|
+
*
|
|
16
|
+
* Поле `id` — глобально-уникальный идентификатор слота, чтобы у двух
|
|
17
|
+
* разных квестов никогда не совпадал id одного и того же
|
|
18
|
+
* времени/даты. Используется наш внутренний `slot.id`.
|
|
19
|
+
*
|
|
20
|
+
* Статус слота:
|
|
21
|
+
* - `is_free=true` — слот свободен и доступен для бронирования
|
|
22
|
+
* - `is_call_to_book=true` — нужно звонить (по нашему статусу `call`)
|
|
23
|
+
* - `is_blocked=true` — слот заблокирован (busy/no-resources/done)
|
|
24
|
+
*
|
|
25
|
+
* `deadline` — UTC ISO timestamp, до которого ещё можно бронировать
|
|
26
|
+
* этот слот (с учётом правил `minMinutesForBooking`/блокировки), —
|
|
27
|
+
* Morty использует это поле для отсечки last-minute бронирований.
|
|
28
|
+
*/
|
|
29
|
+
export declare class MortyTimeslotRO {
|
|
30
|
+
id: string;
|
|
31
|
+
product_id: number;
|
|
32
|
+
date: string;
|
|
33
|
+
start_time: string;
|
|
34
|
+
end_time: string;
|
|
35
|
+
start_at: string;
|
|
36
|
+
timezone: string;
|
|
37
|
+
duration_minutes: number;
|
|
38
|
+
is_free: boolean;
|
|
39
|
+
is_call_to_book: boolean;
|
|
40
|
+
is_blocked: boolean;
|
|
41
|
+
is_private: boolean;
|
|
42
|
+
seats_available: number;
|
|
43
|
+
players_min: number;
|
|
44
|
+
players_max: number;
|
|
45
|
+
currency: string;
|
|
46
|
+
price_from: number;
|
|
47
|
+
prices: MortyTimeslotPriceRO[];
|
|
48
|
+
deadline: string | null;
|
|
49
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
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.MortyTimeslotRO = exports.MortyTimeslotPriceRO = void 0;
|
|
13
|
+
/* eslint-disable max-classes-per-file */
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
/**
|
|
16
|
+
* Прайсинг по количеству игроков. Ключ — количество игроков, значение —
|
|
17
|
+
* цена за всю группу указанного размера в основной валюте профиля
|
|
18
|
+
* (например USD/EUR/RUB), не в minor units.
|
|
19
|
+
*
|
|
20
|
+
* Пример: { "2": 60, "3": 75, "4": 90 } — значит группа из 2 человек
|
|
21
|
+
* стоит 60$, из 3 — 75$ и т.д.
|
|
22
|
+
*/
|
|
23
|
+
class MortyTimeslotPriceRO {
|
|
24
|
+
}
|
|
25
|
+
exports.MortyTimeslotPriceRO = MortyTimeslotPriceRO;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], MortyTimeslotPriceRO.prototype, "players", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], MortyTimeslotPriceRO.prototype, "price", void 0);
|
|
34
|
+
/**
|
|
35
|
+
* Слот в формате Morty.
|
|
36
|
+
*
|
|
37
|
+
* Поле `id` — глобально-уникальный идентификатор слота, чтобы у двух
|
|
38
|
+
* разных квестов никогда не совпадал id одного и того же
|
|
39
|
+
* времени/даты. Используется наш внутренний `slot.id`.
|
|
40
|
+
*
|
|
41
|
+
* Статус слота:
|
|
42
|
+
* - `is_free=true` — слот свободен и доступен для бронирования
|
|
43
|
+
* - `is_call_to_book=true` — нужно звонить (по нашему статусу `call`)
|
|
44
|
+
* - `is_blocked=true` — слот заблокирован (busy/no-resources/done)
|
|
45
|
+
*
|
|
46
|
+
* `deadline` — UTC ISO timestamp, до которого ещё можно бронировать
|
|
47
|
+
* этот слот (с учётом правил `minMinutesForBooking`/блокировки), —
|
|
48
|
+
* Morty использует это поле для отсечки last-minute бронирований.
|
|
49
|
+
*/
|
|
50
|
+
class MortyTimeslotRO {
|
|
51
|
+
}
|
|
52
|
+
exports.MortyTimeslotRO = MortyTimeslotRO;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_transformer_1.Expose)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], MortyTimeslotRO.prototype, "id", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_transformer_1.Expose)(),
|
|
59
|
+
__metadata("design:type", Number)
|
|
60
|
+
], MortyTimeslotRO.prototype, "product_id", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, class_transformer_1.Expose)(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], MortyTimeslotRO.prototype, "date", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_transformer_1.Expose)(),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], MortyTimeslotRO.prototype, "start_time", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, class_transformer_1.Expose)(),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], MortyTimeslotRO.prototype, "end_time", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, class_transformer_1.Expose)(),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], MortyTimeslotRO.prototype, "start_at", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, class_transformer_1.Expose)(),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], MortyTimeslotRO.prototype, "timezone", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, class_transformer_1.Expose)(),
|
|
83
|
+
__metadata("design:type", Number)
|
|
84
|
+
], MortyTimeslotRO.prototype, "duration_minutes", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, class_transformer_1.Expose)(),
|
|
87
|
+
__metadata("design:type", Boolean)
|
|
88
|
+
], MortyTimeslotRO.prototype, "is_free", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, class_transformer_1.Expose)(),
|
|
91
|
+
__metadata("design:type", Boolean)
|
|
92
|
+
], MortyTimeslotRO.prototype, "is_call_to_book", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, class_transformer_1.Expose)(),
|
|
95
|
+
__metadata("design:type", Boolean)
|
|
96
|
+
], MortyTimeslotRO.prototype, "is_blocked", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, class_transformer_1.Expose)(),
|
|
99
|
+
__metadata("design:type", Boolean)
|
|
100
|
+
], MortyTimeslotRO.prototype, "is_private", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, class_transformer_1.Expose)(),
|
|
103
|
+
__metadata("design:type", Number)
|
|
104
|
+
], MortyTimeslotRO.prototype, "seats_available", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, class_transformer_1.Expose)(),
|
|
107
|
+
__metadata("design:type", Number)
|
|
108
|
+
], MortyTimeslotRO.prototype, "players_min", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, class_transformer_1.Expose)(),
|
|
111
|
+
__metadata("design:type", Number)
|
|
112
|
+
], MortyTimeslotRO.prototype, "players_max", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, class_transformer_1.Expose)(),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], MortyTimeslotRO.prototype, "currency", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, class_transformer_1.Expose)(),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], MortyTimeslotRO.prototype, "price_from", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, class_transformer_1.Expose)(),
|
|
123
|
+
(0, class_transformer_1.Type)(() => MortyTimeslotPriceRO),
|
|
124
|
+
__metadata("design:type", Array)
|
|
125
|
+
], MortyTimeslotRO.prototype, "prices", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, class_transformer_1.Expose)(),
|
|
128
|
+
__metadata("design:type", String)
|
|
129
|
+
], MortyTimeslotRO.prototype, "deadline", void 0);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query для `GET /morty/attractions/:profileId/timeslots`.
|
|
3
|
+
*
|
|
4
|
+
* Все поля опциональные: если ничего не передано, отдадим слоты на
|
|
5
|
+
* 14 дней вперёд по всем активным аттракционам профиля.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MortyTimeslotsQueryDto {
|
|
8
|
+
from?: string;
|
|
9
|
+
to?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Внутренний `questroom.id`. Опциональный — без него вернутся слоты
|
|
12
|
+
* по всем квестам профиля.
|
|
13
|
+
*/
|
|
14
|
+
product_id?: number;
|
|
15
|
+
/**
|
|
16
|
+
* `true` — выкинуть из выдачи `is_blocked=true` слоты. По умолчанию
|
|
17
|
+
* Morty просит отдавать всё, чтобы видеть «закрытые» / «call only»
|
|
18
|
+
* времена.
|
|
19
|
+
*/
|
|
20
|
+
only_available?: boolean;
|
|
21
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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.MortyTimeslotsQueryDto = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Query для `GET /morty/attractions/:profileId/timeslots`.
|
|
17
|
+
*
|
|
18
|
+
* Все поля опциональные: если ничего не передано, отдадим слоты на
|
|
19
|
+
* 14 дней вперёд по всем активным аттракционам профиля.
|
|
20
|
+
*/
|
|
21
|
+
class MortyTimeslotsQueryDto {
|
|
22
|
+
}
|
|
23
|
+
exports.MortyTimeslotsQueryDto = MortyTimeslotsQueryDto;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_transformer_1.Expose)(),
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
27
|
+
(0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], MortyTimeslotsQueryDto.prototype, "from", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], MortyTimeslotsQueryDto.prototype, "to", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_transformer_1.Expose)(),
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_transformer_1.Transform)(({ value }) => (value === undefined || value === null ? value : Number(value))),
|
|
40
|
+
(0, class_validator_1.IsPositive)(),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], MortyTimeslotsQueryDto.prototype, "product_id", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_transformer_1.Expose)(),
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_transformer_1.Transform)(({ value }) => value === 'true' || value === true),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], MortyTimeslotsQueryDto.prototype, "only_available", void 0);
|
|
@@ -43,6 +43,7 @@ export declare const transformQuestroom: ({ value, language, }: {
|
|
|
43
43
|
minAge: number;
|
|
44
44
|
flexPlayersSelect: boolean;
|
|
45
45
|
slotStepMinutes: number;
|
|
46
|
+
questOpeningDate?: string;
|
|
46
47
|
};
|
|
47
48
|
declare class QuestroomLocale {
|
|
48
49
|
title: string;
|
|
@@ -100,6 +101,7 @@ export declare class OpenapiQuestroomRO {
|
|
|
100
101
|
locales: QuestroomLocale[];
|
|
101
102
|
flexPlayersSelect: boolean;
|
|
102
103
|
slotStepMinutes: number;
|
|
104
|
+
questOpeningDate?: string;
|
|
103
105
|
}
|
|
104
106
|
export declare class QuestroomRow {
|
|
105
107
|
questroom: OpenapiQuestroomRO;
|
|
@@ -218,6 +218,10 @@ __decorate([
|
|
|
218
218
|
(0, class_transformer_1.Expose)(),
|
|
219
219
|
__metadata("design:type", Number)
|
|
220
220
|
], OpenapiQuestroomRO.prototype, "slotStepMinutes", void 0);
|
|
221
|
+
__decorate([
|
|
222
|
+
(0, class_transformer_1.Expose)(),
|
|
223
|
+
__metadata("design:type", String)
|
|
224
|
+
], OpenapiQuestroomRO.prototype, "questOpeningDate", void 0);
|
|
221
225
|
class QuestroomRow {
|
|
222
226
|
}
|
|
223
227
|
exports.QuestroomRow = QuestroomRow;
|
|
@@ -25,4 +25,16 @@ export declare class CreateOrderDto {
|
|
|
25
25
|
language?: Languages;
|
|
26
26
|
comment?: string;
|
|
27
27
|
variationHint?: string;
|
|
28
|
+
/**
|
|
29
|
+
* dealAddMode: id «якорного» ордера, к группе которого нужно
|
|
30
|
+
* атомарно прикрепить только что созданный ордер. Если у якоря
|
|
31
|
+
* уже есть `groupId` — новый ордер добавится к этой группе;
|
|
32
|
+
* иначе будет создана новая группа из [якорь, новый ордер].
|
|
33
|
+
*
|
|
34
|
+
* Передаётся фронтом из `dealAddMode.currentOrderId`. Делаем
|
|
35
|
+
* это в одном запросе с созданием ордера, чтобы операция была
|
|
36
|
+
* атомарной (одна транзакция) — иначе оператор мог успеть выйти
|
|
37
|
+
* из режима, поменять дату или клиента, пока шёл второй запрос.
|
|
38
|
+
*/
|
|
39
|
+
attachToOrderId?: number;
|
|
28
40
|
}
|
|
@@ -106,3 +106,9 @@ __decorate([
|
|
|
106
106
|
(0, class_transformer_1.Expose)(),
|
|
107
107
|
__metadata("design:type", String)
|
|
108
108
|
], CreateOrderDto.prototype, "variationHint", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, class_validator_1.IsOptional)(),
|
|
111
|
+
(0, class_validator_1.IsNumber)(),
|
|
112
|
+
(0, class_transformer_1.Expose)(),
|
|
113
|
+
__metadata("design:type", Number)
|
|
114
|
+
], CreateOrderDto.prototype, "attachToOrderId", void 0);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ProfileSalesStatus } from '../enum/profile-sales-status.enum';
|
|
2
2
|
export declare class CreateProfileActionRO {
|
|
3
|
-
|
|
3
|
+
profileId: number;
|
|
4
4
|
type: string;
|
|
5
5
|
description: string;
|
|
6
6
|
date: string;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
done?: boolean;
|
|
8
|
+
time?: string;
|
|
9
|
+
salesStatus?: ProfileSalesStatus;
|
|
9
10
|
}
|
|
@@ -18,10 +18,10 @@ class CreateProfileActionRO {
|
|
|
18
18
|
}
|
|
19
19
|
exports.CreateProfileActionRO = CreateProfileActionRO;
|
|
20
20
|
__decorate([
|
|
21
|
-
(0, class_validator_1.
|
|
21
|
+
(0, class_validator_1.IsPositive)(),
|
|
22
22
|
(0, class_transformer_1.Expose)(),
|
|
23
|
-
__metadata("design:type",
|
|
24
|
-
], CreateProfileActionRO.prototype, "
|
|
23
|
+
__metadata("design:type", Number)
|
|
24
|
+
], CreateProfileActionRO.prototype, "profileId", void 0);
|
|
25
25
|
__decorate([
|
|
26
26
|
(0, is_not_blank_1.IsNotBlank)(),
|
|
27
27
|
(0, class_transformer_1.Expose)(),
|
|
@@ -38,14 +38,22 @@ __decorate([
|
|
|
38
38
|
__metadata("design:type", String)
|
|
39
39
|
], CreateProfileActionRO.prototype, "date", void 0);
|
|
40
40
|
__decorate([
|
|
41
|
-
(0, class_validator_1.
|
|
42
|
-
(0,
|
|
41
|
+
(0, class_validator_1.IsOptional)(),
|
|
42
|
+
(0, class_validator_1.IsBoolean)(),
|
|
43
|
+
(0, class_transformer_1.Expose)(),
|
|
44
|
+
__metadata("design:type", Boolean)
|
|
45
|
+
], CreateProfileActionRO.prototype, "done", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, class_transformer_1.Transform)(({ value }) => (value === '' ? undefined : value)),
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
49
|
+
(0, class_validator_1.ValidateIf)((o) => o.time != null && o.time !== ''),
|
|
43
50
|
(0, class_validator_1.IsMilitaryTime)(),
|
|
44
51
|
(0, class_transformer_1.Expose)(),
|
|
45
52
|
__metadata("design:type", String)
|
|
46
53
|
], CreateProfileActionRO.prototype, "time", void 0);
|
|
47
54
|
__decorate([
|
|
48
|
-
(0, class_validator_1.
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, class_validator_1.IsEnum)(profile_sales_status_enum_1.ProfileSalesStatus),
|
|
49
57
|
(0, class_transformer_1.Expose)(),
|
|
50
|
-
__metadata("design:type",
|
|
51
|
-
], CreateProfileActionRO.prototype, "
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], CreateProfileActionRO.prototype, "salesStatus", void 0);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EmailContentJsonV2 } from '../../email-builder';
|
|
1
2
|
import { Languages } from '../../shared/enum/languages.enum';
|
|
2
3
|
import { CrossSaleStatusEnum } from '../cross-sale/cross-sale-status.enum';
|
|
3
4
|
import { CrossSaleDiscountTypeEnum } from '../cross-sale/crossale-discount-type.enum';
|
|
@@ -6,6 +7,11 @@ export declare class BirthdayMarketingLocaleDto {
|
|
|
6
7
|
language: Languages;
|
|
7
8
|
feedbackText: string;
|
|
8
9
|
title: string;
|
|
10
|
+
/**
|
|
11
|
+
* Maily/TipTap v2-документ. Опционально — старый Quill-редактор
|
|
12
|
+
* присылает только `feedbackText`. См. `CustomClientBookingEmailLocaleDto.contentJson`.
|
|
13
|
+
*/
|
|
14
|
+
contentJson?: EmailContentJsonV2 | null;
|
|
9
15
|
}
|
|
10
16
|
export declare class BirthdayMarketingDto {
|
|
11
17
|
/**
|
|
@@ -42,6 +42,12 @@ __decorate([
|
|
|
42
42
|
(0, class_transformer_1.Expose)(),
|
|
43
43
|
__metadata("design:type", String)
|
|
44
44
|
], BirthdayMarketingLocaleDto.prototype, "title", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.IsOptional)(),
|
|
47
|
+
(0, class_validator_1.IsObject)(),
|
|
48
|
+
(0, class_transformer_1.Expose)(),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], BirthdayMarketingLocaleDto.prototype, "contentJson", void 0);
|
|
45
51
|
class BirthdayMarketingDto {
|
|
46
52
|
}
|
|
47
53
|
exports.BirthdayMarketingDto = BirthdayMarketingDto;
|
|
@@ -41,13 +41,4 @@ export declare class CreateProfileDto {
|
|
|
41
41
|
comment?: string;
|
|
42
42
|
subscriptionStatus: ProfileSubscriptionEnum;
|
|
43
43
|
subscriptionType?: ProfileSubscriptionTypeEnum;
|
|
44
|
-
bookingCommission: number;
|
|
45
|
-
upsalesCommission: number;
|
|
46
|
-
bookingCommissionExternal?: number;
|
|
47
|
-
bookingCommissionFreePlan?: number;
|
|
48
|
-
crmCommissionFree?: number;
|
|
49
|
-
crmCommissionPro?: number;
|
|
50
|
-
crmCommissionGrowth?: number;
|
|
51
|
-
stripeWidgetApplicationFeePercent?: number;
|
|
52
|
-
stripeCertificateServiceApplicationFeeFixed?: number;
|
|
53
44
|
}
|
|
@@ -188,66 +188,3 @@ __decorate([
|
|
|
188
188
|
(0, class_transformer_1.Expose)(),
|
|
189
189
|
__metadata("design:type", String)
|
|
190
190
|
], CreateProfileDto.prototype, "subscriptionType", void 0);
|
|
191
|
-
__decorate([
|
|
192
|
-
(0, class_validator_1.IsOptional)(),
|
|
193
|
-
(0, class_validator_1.IsNumber)(),
|
|
194
|
-
(0, class_validator_1.Min)(0),
|
|
195
|
-
(0, class_transformer_1.Expose)(),
|
|
196
|
-
__metadata("design:type", Number)
|
|
197
|
-
], CreateProfileDto.prototype, "bookingCommission", void 0);
|
|
198
|
-
__decorate([
|
|
199
|
-
(0, class_validator_1.IsOptional)(),
|
|
200
|
-
(0, class_validator_1.IsNumber)(),
|
|
201
|
-
(0, class_validator_1.Min)(0),
|
|
202
|
-
(0, class_transformer_1.Expose)(),
|
|
203
|
-
__metadata("design:type", Number)
|
|
204
|
-
], CreateProfileDto.prototype, "upsalesCommission", void 0);
|
|
205
|
-
__decorate([
|
|
206
|
-
(0, class_validator_1.IsOptional)(),
|
|
207
|
-
(0, class_validator_1.IsNumber)(),
|
|
208
|
-
(0, class_validator_1.Min)(0),
|
|
209
|
-
(0, class_transformer_1.Expose)(),
|
|
210
|
-
__metadata("design:type", Number)
|
|
211
|
-
], CreateProfileDto.prototype, "bookingCommissionExternal", void 0);
|
|
212
|
-
__decorate([
|
|
213
|
-
(0, class_validator_1.IsOptional)(),
|
|
214
|
-
(0, class_validator_1.IsNumber)(),
|
|
215
|
-
(0, class_validator_1.Min)(0),
|
|
216
|
-
(0, class_transformer_1.Expose)(),
|
|
217
|
-
__metadata("design:type", Number)
|
|
218
|
-
], CreateProfileDto.prototype, "bookingCommissionFreePlan", void 0);
|
|
219
|
-
__decorate([
|
|
220
|
-
(0, class_validator_1.IsOptional)(),
|
|
221
|
-
(0, class_validator_1.IsNumber)(),
|
|
222
|
-
(0, class_validator_1.Min)(0),
|
|
223
|
-
(0, class_transformer_1.Expose)(),
|
|
224
|
-
__metadata("design:type", Number)
|
|
225
|
-
], CreateProfileDto.prototype, "crmCommissionFree", void 0);
|
|
226
|
-
__decorate([
|
|
227
|
-
(0, class_validator_1.IsOptional)(),
|
|
228
|
-
(0, class_validator_1.IsNumber)(),
|
|
229
|
-
(0, class_validator_1.Min)(0),
|
|
230
|
-
(0, class_transformer_1.Expose)(),
|
|
231
|
-
__metadata("design:type", Number)
|
|
232
|
-
], CreateProfileDto.prototype, "crmCommissionPro", void 0);
|
|
233
|
-
__decorate([
|
|
234
|
-
(0, class_validator_1.IsOptional)(),
|
|
235
|
-
(0, class_validator_1.IsNumber)(),
|
|
236
|
-
(0, class_validator_1.Min)(0),
|
|
237
|
-
(0, class_transformer_1.Expose)(),
|
|
238
|
-
__metadata("design:type", Number)
|
|
239
|
-
], CreateProfileDto.prototype, "crmCommissionGrowth", void 0);
|
|
240
|
-
__decorate([
|
|
241
|
-
(0, class_validator_1.IsOptional)(),
|
|
242
|
-
(0, class_validator_1.IsNumber)(),
|
|
243
|
-
(0, class_validator_1.Min)(0),
|
|
244
|
-
(0, class_transformer_1.Expose)(),
|
|
245
|
-
__metadata("design:type", Number)
|
|
246
|
-
], CreateProfileDto.prototype, "stripeWidgetApplicationFeePercent", void 0);
|
|
247
|
-
__decorate([
|
|
248
|
-
(0, class_validator_1.IsOptional)(),
|
|
249
|
-
(0, class_validator_1.IsNumber)(),
|
|
250
|
-
(0, class_validator_1.Min)(0),
|
|
251
|
-
(0, class_transformer_1.Expose)(),
|
|
252
|
-
__metadata("design:type", Number)
|
|
253
|
-
], CreateProfileDto.prototype, "stripeCertificateServiceApplicationFeeFixed", void 0);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EmailContentJsonV2 } from '../../email-builder';
|
|
1
2
|
import { Languages } from '../../shared/enum/languages.enum';
|
|
2
3
|
import { CrossSaleStatusEnum } from './cross-sale-status.enum';
|
|
3
4
|
import { CrossSaleDiscountTypeEnum } from './crossale-discount-type.enum';
|
|
@@ -5,6 +6,13 @@ export declare class CrossSaleLocaleDto {
|
|
|
5
6
|
language: Languages;
|
|
6
7
|
feedbackText: string;
|
|
7
8
|
title: string;
|
|
9
|
+
/**
|
|
10
|
+
* Maily/TipTap v2-документ. Опционально — старый Quill-редактор
|
|
11
|
+
* присылает только `feedbackText`, новый EmailBuilder будет
|
|
12
|
+
* присылать `contentJson` параллельно. См. подробности в
|
|
13
|
+
* `CustomClientBookingEmailLocaleDto.contentJson`.
|
|
14
|
+
*/
|
|
15
|
+
contentJson?: EmailContentJsonV2 | null;
|
|
8
16
|
}
|
|
9
17
|
export declare class CrossSaleDto {
|
|
10
18
|
status: CrossSaleStatusEnum;
|
|
@@ -41,6 +41,12 @@ __decorate([
|
|
|
41
41
|
(0, class_transformer_1.Expose)(),
|
|
42
42
|
__metadata("design:type", String)
|
|
43
43
|
], CrossSaleLocaleDto.prototype, "title", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.IsObject)(),
|
|
47
|
+
(0, class_transformer_1.Expose)(),
|
|
48
|
+
__metadata("design:type", Object)
|
|
49
|
+
], CrossSaleLocaleDto.prototype, "contentJson", void 0);
|
|
44
50
|
class CrossSaleDto {
|
|
45
51
|
}
|
|
46
52
|
exports.CrossSaleDto = CrossSaleDto;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EmailContentJsonV2 } from '../../email-builder';
|
|
1
2
|
import { Languages } from '../../shared/enum/languages.enum';
|
|
2
3
|
import { RO } from '../../shared/ro-class';
|
|
3
4
|
import { CrossSaleStatusEnum } from './cross-sale-status.enum';
|
|
@@ -6,6 +7,7 @@ export declare class CrossSaleLocaleRO {
|
|
|
6
7
|
language: Languages;
|
|
7
8
|
feedbackText: string;
|
|
8
9
|
title: string;
|
|
10
|
+
contentJson?: EmailContentJsonV2 | null;
|
|
9
11
|
}
|
|
10
12
|
export declare class CrossSaleRO extends RO {
|
|
11
13
|
sendAfter: number;
|
|
@@ -31,6 +31,10 @@ __decorate([
|
|
|
31
31
|
(0, class_transformer_1.Expose)(),
|
|
32
32
|
__metadata("design:type", String)
|
|
33
33
|
], CrossSaleLocaleRO.prototype, "title", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_transformer_1.Expose)(),
|
|
36
|
+
__metadata("design:type", Object)
|
|
37
|
+
], CrossSaleLocaleRO.prototype, "contentJson", void 0);
|
|
34
38
|
class CrossSaleRO extends ro_class_1.RO {
|
|
35
39
|
}
|
|
36
40
|
exports.CrossSaleRO = CrossSaleRO;
|