@escapenavigator/types 2.0.43 → 2.0.44
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/cashbox/cashbox.ro.d.ts +1 -0
- package/dist/cashbox/cashbox.ro.js +5 -0
- package/dist/cashbox/create-online-cashbox.dto.d.ts +2 -1
- package/dist/cashbox/create-online-cashbox.dto.js +10 -1
- package/dist/cashbox/enum/cashbox-type.enum.d.ts +5 -1
- package/dist/cashbox/enum/cashbox-type.enum.js +9 -1
- package/dist/cashbox/update-online-cashbox.dto.d.ts +2 -0
- package/dist/cashbox/update-online-cashbox.dto.js +10 -0
- package/dist/certificate/certificate.ro.d.ts +1 -0
- package/dist/certificate/certificate.ro.js +4 -0
- package/dist/certificate/create-certificate.dto.d.ts +1 -0
- package/dist/certificate/create-certificate.dto.js +5 -0
- package/dist/certificate-sale/certificate-sale.ro.d.ts +4 -0
- package/dist/certificate-sale/certificate-sale.ro.js +16 -0
- package/dist/certificate-v2/certificate-settings.ro.d.ts +1 -0
- package/dist/certificate-v2/certificate-settings.ro.js +4 -0
- package/dist/certificate-v2/update-certificate-settings.dto.d.ts +1 -0
- package/dist/certificate-v2/update-certificate-settings.dto.js +5 -0
- package/dist/emails/enum/email.senders.d.ts +3 -0
- package/dist/emails/enum/email.senders.js +10 -1
- package/dist/emails/index.d.ts +2 -2
- package/dist/emails/send-email.dto.d.ts +2 -2
- package/dist/emails/send-email.dto.js +2 -2
- package/dist/fiscal/enum/fiscal-provider.enum.d.ts +4 -0
- package/dist/fiscal/enum/fiscal-provider.enum.js +8 -0
- package/dist/fiscal/fiscal-option.ro.d.ts +5 -0
- package/dist/fiscal/fiscal-option.ro.js +28 -0
- package/dist/fiscal/fiscal-settings.ro.d.ts +40 -0
- package/dist/fiscal/fiscal-settings.ro.js +157 -0
- package/dist/fiscal/update-fiscal-settings.dto.d.ts +18 -0
- package/dist/fiscal/update-fiscal-settings.dto.js +114 -0
- package/dist/lead/create-lead.dto.d.ts +19 -0
- package/dist/lead/create-lead.dto.js +89 -0
- package/dist/lead/enums/lead-event-type.enum.d.ts +11 -0
- package/dist/lead/enums/lead-event-type.enum.js +15 -0
- package/dist/lead/enums/lead-field-mapping.enum.d.ts +23 -0
- package/dist/lead/enums/lead-field-mapping.enum.js +27 -0
- package/dist/lead/enums/lead-field-type.enum.d.ts +29 -0
- package/dist/lead/enums/lead-field-type.enum.js +33 -0
- package/dist/lead/enums/lead-lost-reason.enum.d.ts +11 -0
- package/dist/lead/enums/lead-lost-reason.enum.js +15 -0
- package/dist/lead/enums/lead-source.enum.d.ts +17 -0
- package/dist/lead/enums/lead-source.enum.js +21 -0
- package/dist/lead/enums/lead-stage-kind.enum.d.ts +18 -0
- package/dist/lead/enums/lead-stage-kind.enum.js +22 -0
- package/dist/lead/lead-answer.type.d.ts +17 -0
- package/dist/lead/lead-answer.type.js +2 -0
- package/dist/lead/lead-board.ro.d.ts +39 -0
- package/dist/lead/lead-board.ro.js +16 -0
- package/dist/lead/lead-conversion-prefill.ro.d.ts +20 -0
- package/dist/lead/lead-conversion-prefill.ro.js +11 -0
- package/dist/lead/lead-counters.ro.d.ts +9 -0
- package/dist/lead/lead-counters.ro.js +7 -0
- package/dist/lead/lead-event.ro.d.ts +13 -0
- package/dist/lead/lead-event.ro.js +37 -0
- package/dist/lead/lead-form-defaults.ro.d.ts +15 -0
- package/dist/lead/lead-form-defaults.ro.js +11 -0
- package/dist/lead/lead-form-field.type.d.ts +59 -0
- package/dist/lead/lead-form-field.type.js +2 -0
- package/dist/lead/lead-form.ro.d.ts +24 -0
- package/dist/lead/lead-form.ro.js +72 -0
- package/dist/lead/lead-meta.type.d.ts +19 -0
- package/dist/lead/lead-meta.type.js +2 -0
- package/dist/lead/lead-realtime.ro.d.ts +18 -0
- package/dist/lead/lead-realtime.ro.js +13 -0
- package/dist/lead/lead-stage.ro.d.ts +20 -0
- package/dist/lead/lead-stage.ro.js +49 -0
- package/dist/lead/lead.ro.d.ts +42 -0
- package/dist/lead/lead.ro.js +126 -0
- package/dist/lead/link-lead-conversion.dto.d.ts +9 -0
- package/dist/lead/link-lead-conversion.dto.js +39 -0
- package/dist/lead/public/public-lead-form.ro.d.ts +43 -0
- package/dist/lead/public/public-lead-form.ro.js +24 -0
- package/dist/lead/public/submit-lead.dto.d.ts +22 -0
- package/dist/lead/public/submit-lead.dto.js +62 -0
- package/dist/lead/public/submit-lead.ro.d.ts +10 -0
- package/dist/lead/public/submit-lead.ro.js +10 -0
- package/dist/lead/query-leads.dto.d.ts +29 -0
- package/dist/lead/query-leads.dto.js +111 -0
- package/dist/lead/update-lead-form.dto.d.ts +25 -0
- package/dist/lead/update-lead-form.dto.js +85 -0
- package/dist/lead/update-lead-stages.dto.d.ts +20 -0
- package/dist/lead/update-lead-stages.dto.js +69 -0
- package/dist/lead/update-lead.dto.d.ts +23 -0
- package/dist/lead/update-lead.dto.js +108 -0
- package/dist/openapi/orders/enum/payment-type.enum.d.ts +3 -1
- package/dist/openapi/orders/enum/payment-type.enum.js +2 -0
- package/dist/openapi/shared/openapi-create-payment.ro.d.ts +1 -0
- package/dist/openapi/shared/openapi-create-payment.ro.js +4 -0
- package/dist/openapi/shared/openapi-questroom.ro.d.ts +1 -0
- package/dist/openapi/shared/openapi-questroom.ro.js +4 -0
- package/dist/openapi/widget/openapi-widget-info.ro.d.ts +7 -0
- package/dist/openapi/widget/openapi-widget-info.ro.js +4 -0
- package/dist/profile/email/profile-email-type.enum.d.ts +2 -0
- package/dist/profile/email/profile-email-type.enum.js +2 -0
- package/dist/profile/notification-chanel/notification-chanel-action.enum.d.ts +13 -1
- package/dist/profile/notification-chanel/notification-chanel-action.enum.js +14 -1
- package/dist/profile/profile.ro.d.ts +2 -0
- package/dist/profile/profile.ro.js +8 -0
- package/dist/profile/telephony/dto/ingest-telephony-call.dto.d.ts +16 -0
- package/dist/profile/telephony/dto/ingest-telephony-call.dto.js +83 -0
- package/dist/profile/telephony/dto/send-telephony-test-call.dto.d.ts +3 -0
- package/dist/profile/telephony/dto/send-telephony-test-call.dto.js +23 -0
- package/dist/profile/telephony/dto/update-telephony-settings.dto.d.ts +3 -0
- package/dist/profile/telephony/dto/update-telephony-settings.dto.js +22 -0
- package/dist/profile/telephony/enum/call-direction.enum.d.ts +4 -0
- package/dist/profile/telephony/enum/call-direction.enum.js +8 -0
- package/dist/profile/telephony/enum/call-status.enum.d.ts +7 -0
- package/dist/profile/telephony/enum/call-status.enum.js +11 -0
- package/dist/profile/telephony/ro/telephony-call.ro.d.ts +19 -0
- package/dist/profile/telephony/ro/telephony-call.ro.js +75 -0
- package/dist/profile/telephony/ro/telephony-settings.ro.d.ts +18 -0
- package/dist/profile/telephony/ro/telephony-settings.ro.js +65 -0
- package/dist/questroom/create-questroom.dto.d.ts +1 -0
- package/dist/questroom/create-questroom.dto.js +5 -0
- package/dist/questroom/questroom-light.ro.d.ts +1 -0
- package/dist/questroom/questroom-light.ro.js +4 -0
- package/dist/role/create-role.dto.d.ts +1 -0
- package/dist/role/create-role.dto.js +6 -0
- package/dist/role/role.ro.d.ts +1 -0
- package/dist/role/role.ro.js +4 -0
- package/dist/shared/localized-string.type.d.ts +8 -0
- package/dist/shared/localized-string.type.js +2 -0
- package/dist/transaction/enum/transaction-source.enum.d.ts +3 -1
- package/dist/transaction/enum/transaction-source.enum.js +2 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/user/task/user-task.dto.d.ts +1 -0
- package/dist/user/task/user-task.dto.js +5 -0
- package/dist/user/task/user-task.ro.d.ts +1 -0
- package/dist/user/task/user-task.ro.js +4 -0
- package/dist/user-message/create-user-message.dto.d.ts +1 -0
- package/dist/user-message/create-user-message.dto.js +5 -0
- package/dist/user-message/user-message.ro.d.ts +1 -0
- package/dist/widget/create-widget.dto.d.ts +1 -0
- package/dist/widget/create-widget.dto.js +7 -0
- package/dist/widget/enum/widget-type.enum.d.ts +3 -1
- package/dist/widget/enum/widget-type.enum.js +2 -0
- package/dist/widget/widget.ro.d.ts +5 -0
- package/package.json +2 -2
|
@@ -0,0 +1,114 @@
|
|
|
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.UpdateFiscalSettingsDto = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const fiscal_provider_enum_1 = require("./enum/fiscal-provider.enum");
|
|
16
|
+
class UpdateFiscalSettingsDto {
|
|
17
|
+
}
|
|
18
|
+
exports.UpdateFiscalSettingsDto = UpdateFiscalSettingsDto;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsOptional)(),
|
|
21
|
+
(0, class_validator_1.IsString)(),
|
|
22
|
+
(0, class_transformer_1.Expose)(),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], UpdateFiscalSettingsDto.prototype, "provider", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
27
|
+
(0, class_validator_1.IsBoolean)(),
|
|
28
|
+
(0, class_transformer_1.Expose)(),
|
|
29
|
+
__metadata("design:type", Boolean)
|
|
30
|
+
], UpdateFiscalSettingsDto.prototype, "paused", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_validator_1.IsBoolean)(),
|
|
34
|
+
(0, class_transformer_1.Expose)(),
|
|
35
|
+
__metadata("design:type", Boolean)
|
|
36
|
+
], UpdateFiscalSettingsDto.prototype, "autoOnline", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_validator_1.IsBoolean)(),
|
|
40
|
+
(0, class_transformer_1.Expose)(),
|
|
41
|
+
__metadata("design:type", Boolean)
|
|
42
|
+
], UpdateFiscalSettingsDto.prototype, "autoStore", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsOptional)(),
|
|
45
|
+
(0, class_validator_1.IsBoolean)(),
|
|
46
|
+
(0, class_transformer_1.Expose)(),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], UpdateFiscalSettingsDto.prototype, "autoCertificates", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
(0, class_validator_1.IsBoolean)(),
|
|
52
|
+
(0, class_transformer_1.Expose)(),
|
|
53
|
+
__metadata("design:type", Boolean)
|
|
54
|
+
], UpdateFiscalSettingsDto.prototype, "sendEmail", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, class_validator_1.IsOptional)(),
|
|
57
|
+
(0, class_validator_1.IsNumber)(),
|
|
58
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
59
|
+
(0, class_transformer_1.Expose)(),
|
|
60
|
+
__metadata("design:type", Number)
|
|
61
|
+
], UpdateFiscalSettingsDto.prototype, "minAmount", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, class_validator_1.IsOptional)(),
|
|
64
|
+
(0, class_validator_1.IsString)(),
|
|
65
|
+
(0, class_transformer_1.Expose)(),
|
|
66
|
+
__metadata("design:type", String)
|
|
67
|
+
], UpdateFiscalSettingsDto.prototype, "taxName", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, class_validator_1.IsOptional)(),
|
|
70
|
+
(0, class_validator_1.IsString)(),
|
|
71
|
+
(0, class_transformer_1.Expose)(),
|
|
72
|
+
__metadata("design:type", String)
|
|
73
|
+
], UpdateFiscalSettingsDto.prototype, "exemption", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, class_validator_1.IsOptional)(),
|
|
76
|
+
(0, class_validator_1.IsNumber)(),
|
|
77
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
78
|
+
(0, class_transformer_1.Expose)(),
|
|
79
|
+
__metadata("design:type", Number)
|
|
80
|
+
], UpdateFiscalSettingsDto.prototype, "moloniCompanyId", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, class_validator_1.IsOptional)(),
|
|
83
|
+
(0, class_validator_1.IsNumber)(),
|
|
84
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
85
|
+
(0, class_transformer_1.Expose)(),
|
|
86
|
+
__metadata("design:type", Number)
|
|
87
|
+
], UpdateFiscalSettingsDto.prototype, "moloniDocumentSetId", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, class_validator_1.IsOptional)(),
|
|
90
|
+
(0, class_validator_1.IsNumber)(),
|
|
91
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
92
|
+
(0, class_transformer_1.Expose)(),
|
|
93
|
+
__metadata("design:type", Number)
|
|
94
|
+
], UpdateFiscalSettingsDto.prototype, "moloniTaxId", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, class_validator_1.IsOptional)(),
|
|
97
|
+
(0, class_validator_1.IsNumber)(),
|
|
98
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
99
|
+
(0, class_transformer_1.Expose)(),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], UpdateFiscalSettingsDto.prototype, "moloniSessionProductId", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, class_validator_1.IsOptional)(),
|
|
104
|
+
(0, class_validator_1.IsNumber)(),
|
|
105
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
106
|
+
(0, class_transformer_1.Expose)(),
|
|
107
|
+
__metadata("design:type", Number)
|
|
108
|
+
], UpdateFiscalSettingsDto.prototype, "moloniCertificateProductId", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, class_validator_1.IsOptional)(),
|
|
111
|
+
(0, class_validator_1.IsObject)(),
|
|
112
|
+
(0, class_transformer_1.Expose)(),
|
|
113
|
+
__metadata("design:type", Object)
|
|
114
|
+
], UpdateFiscalSettingsDto.prototype, "moloniPaymentMethods", void 0);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ручное создание заявки сотрудником: звонок, соцсети, офлайн. Формы тут
|
|
3
|
+
* нет, поэтому обязателен хотя бы один канал связи — иначе заявку
|
|
4
|
+
* невозможно обработать, и она просто засоряет доску.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CreateLeadDto {
|
|
7
|
+
name?: string;
|
|
8
|
+
phone?: string;
|
|
9
|
+
email?: string;
|
|
10
|
+
comment?: string;
|
|
11
|
+
preferredDate?: string;
|
|
12
|
+
preferredTime?: string;
|
|
13
|
+
guests?: number;
|
|
14
|
+
questroomId?: number;
|
|
15
|
+
locationId?: number;
|
|
16
|
+
assigneeId?: number;
|
|
17
|
+
/** Привязка к существующему клиенту, если сотрудник выбрал его в поиске. */
|
|
18
|
+
clientId?: number;
|
|
19
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
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.CreateLeadDto = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Ручное создание заявки сотрудником: звонок, соцсети, офлайн. Формы тут
|
|
17
|
+
* нет, поэтому обязателен хотя бы один канал связи — иначе заявку
|
|
18
|
+
* невозможно обработать, и она просто засоряет доску.
|
|
19
|
+
*/
|
|
20
|
+
class CreateLeadDto {
|
|
21
|
+
}
|
|
22
|
+
exports.CreateLeadDto = CreateLeadDto;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsOptional)(),
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], CreateLeadDto.prototype, "name", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_validator_1.ValidateIf)((dto) => !dto.email),
|
|
31
|
+
(0, class_validator_1.IsString)(),
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], CreateLeadDto.prototype, "phone", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.ValidateIf)((dto) => !dto.phone),
|
|
37
|
+
(0, class_validator_1.IsEmail)(),
|
|
38
|
+
(0, class_transformer_1.Expose)(),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], CreateLeadDto.prototype, "email", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_validator_1.IsOptional)(),
|
|
43
|
+
(0, class_validator_1.IsString)(),
|
|
44
|
+
(0, class_transformer_1.Expose)(),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], CreateLeadDto.prototype, "comment", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
49
|
+
(0, class_validator_1.IsString)(),
|
|
50
|
+
(0, class_transformer_1.Expose)(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], CreateLeadDto.prototype, "preferredDate", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_validator_1.IsOptional)(),
|
|
55
|
+
(0, class_validator_1.IsString)(),
|
|
56
|
+
(0, class_transformer_1.Expose)(),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], CreateLeadDto.prototype, "preferredTime", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, class_validator_1.IsOptional)(),
|
|
61
|
+
(0, class_validator_1.IsInt)(),
|
|
62
|
+
(0, class_validator_1.Min)(1),
|
|
63
|
+
(0, class_transformer_1.Expose)(),
|
|
64
|
+
__metadata("design:type", Number)
|
|
65
|
+
], CreateLeadDto.prototype, "guests", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, class_validator_1.IsOptional)(),
|
|
68
|
+
(0, class_validator_1.IsInt)(),
|
|
69
|
+
(0, class_transformer_1.Expose)(),
|
|
70
|
+
__metadata("design:type", Number)
|
|
71
|
+
], CreateLeadDto.prototype, "questroomId", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_validator_1.IsOptional)(),
|
|
74
|
+
(0, class_validator_1.IsInt)(),
|
|
75
|
+
(0, class_transformer_1.Expose)(),
|
|
76
|
+
__metadata("design:type", Number)
|
|
77
|
+
], CreateLeadDto.prototype, "locationId", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, class_validator_1.IsOptional)(),
|
|
80
|
+
(0, class_validator_1.IsInt)(),
|
|
81
|
+
(0, class_transformer_1.Expose)(),
|
|
82
|
+
__metadata("design:type", Number)
|
|
83
|
+
], CreateLeadDto.prototype, "assigneeId", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, class_validator_1.IsOptional)(),
|
|
86
|
+
(0, class_validator_1.IsInt)(),
|
|
87
|
+
(0, class_transformer_1.Expose)(),
|
|
88
|
+
__metadata("design:type", Number)
|
|
89
|
+
], CreateLeadDto.prototype, "clientId", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Событие таймлайна заявки. Заметки и задачи живут отдельно. */
|
|
2
|
+
export declare enum LeadEventTypeEnum {
|
|
3
|
+
CREATED = "created",
|
|
4
|
+
STAGE_CHANGED = "stage-changed",
|
|
5
|
+
ASSIGNEE_CHANGED = "assignee-changed",
|
|
6
|
+
CLIENT_LINKED = "client-linked",
|
|
7
|
+
NEXT_ACTION_SET = "next-action-set",
|
|
8
|
+
/** Заявка превратилась в бронь или продажу сертификата. */
|
|
9
|
+
CONVERTED = "converted",
|
|
10
|
+
MARKED_DUPLICATE = "marked-duplicate"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadEventTypeEnum = void 0;
|
|
4
|
+
/** Событие таймлайна заявки. Заметки и задачи живут отдельно. */
|
|
5
|
+
var LeadEventTypeEnum;
|
|
6
|
+
(function (LeadEventTypeEnum) {
|
|
7
|
+
LeadEventTypeEnum["CREATED"] = "created";
|
|
8
|
+
LeadEventTypeEnum["STAGE_CHANGED"] = "stage-changed";
|
|
9
|
+
LeadEventTypeEnum["ASSIGNEE_CHANGED"] = "assignee-changed";
|
|
10
|
+
LeadEventTypeEnum["CLIENT_LINKED"] = "client-linked";
|
|
11
|
+
LeadEventTypeEnum["NEXT_ACTION_SET"] = "next-action-set";
|
|
12
|
+
/** Заявка превратилась в бронь или продажу сертификата. */
|
|
13
|
+
LeadEventTypeEnum["CONVERTED"] = "converted";
|
|
14
|
+
LeadEventTypeEnum["MARKED_DUPLICATE"] = "marked-duplicate";
|
|
15
|
+
})(LeadEventTypeEnum || (exports.LeadEventTypeEnum = LeadEventTypeEnum = {}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Смысловая роль поля: на какой атрибут заявки оно ложится.
|
|
3
|
+
*
|
|
4
|
+
* Нужна, чтобы ответы формы (произвольный JSONB) превращались в
|
|
5
|
+
* денормализованные колонки заявки — по ним работают поиск, склейка с
|
|
6
|
+
* клиентом, поиск дублей и предзаполнение брони. Без маппинга пришлось бы
|
|
7
|
+
* угадывать смысл поля по его типу, что ломается, как только у формы два
|
|
8
|
+
* текстовых поля или две даты.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum LeadFieldMappingEnum {
|
|
11
|
+
NAME = "name",
|
|
12
|
+
PHONE = "phone",
|
|
13
|
+
EMAIL = "email",
|
|
14
|
+
/** Желаемая дата игры. */
|
|
15
|
+
DATE = "date",
|
|
16
|
+
/** Желаемое время игры. */
|
|
17
|
+
TIME = "time",
|
|
18
|
+
GUESTS = "guests",
|
|
19
|
+
QUESTROOM = "questroom",
|
|
20
|
+
LOCATION = "location",
|
|
21
|
+
/** Свободный комментарий клиента — показываем в карточке крупно. */
|
|
22
|
+
COMMENT = "comment"
|
|
23
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadFieldMappingEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Смысловая роль поля: на какой атрибут заявки оно ложится.
|
|
6
|
+
*
|
|
7
|
+
* Нужна, чтобы ответы формы (произвольный JSONB) превращались в
|
|
8
|
+
* денормализованные колонки заявки — по ним работают поиск, склейка с
|
|
9
|
+
* клиентом, поиск дублей и предзаполнение брони. Без маппинга пришлось бы
|
|
10
|
+
* угадывать смысл поля по его типу, что ломается, как только у формы два
|
|
11
|
+
* текстовых поля или две даты.
|
|
12
|
+
*/
|
|
13
|
+
var LeadFieldMappingEnum;
|
|
14
|
+
(function (LeadFieldMappingEnum) {
|
|
15
|
+
LeadFieldMappingEnum["NAME"] = "name";
|
|
16
|
+
LeadFieldMappingEnum["PHONE"] = "phone";
|
|
17
|
+
LeadFieldMappingEnum["EMAIL"] = "email";
|
|
18
|
+
/** Желаемая дата игры. */
|
|
19
|
+
LeadFieldMappingEnum["DATE"] = "date";
|
|
20
|
+
/** Желаемое время игры. */
|
|
21
|
+
LeadFieldMappingEnum["TIME"] = "time";
|
|
22
|
+
LeadFieldMappingEnum["GUESTS"] = "guests";
|
|
23
|
+
LeadFieldMappingEnum["QUESTROOM"] = "questroom";
|
|
24
|
+
LeadFieldMappingEnum["LOCATION"] = "location";
|
|
25
|
+
/** Свободный комментарий клиента — показываем в карточке крупно. */
|
|
26
|
+
LeadFieldMappingEnum["COMMENT"] = "comment";
|
|
27
|
+
})(LeadFieldMappingEnum || (exports.LeadFieldMappingEnum = LeadFieldMappingEnum = {}));
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы полей конструктора формы заявки.
|
|
3
|
+
*
|
|
4
|
+
* Контактные типы (NAME/PHONE/EMAIL) — не просто «текст с валидацией»: по
|
|
5
|
+
* ним заявка склеивается с клиентом (`ClientService.findOrCreate`) и
|
|
6
|
+
* находятся дубли, поэтому они отдельные типы, а не `TEXT` с маской.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum LeadFieldTypeEnum {
|
|
9
|
+
NAME = "name",
|
|
10
|
+
PHONE = "phone",
|
|
11
|
+
EMAIL = "email",
|
|
12
|
+
TEXT = "text",
|
|
13
|
+
TEXTAREA = "textarea",
|
|
14
|
+
DATE = "date",
|
|
15
|
+
TIME = "time",
|
|
16
|
+
/** Число гостей: степпер с min/max вместо свободного числа. */
|
|
17
|
+
GUESTS = "guests",
|
|
18
|
+
NUMBER = "number",
|
|
19
|
+
SELECT = "select",
|
|
20
|
+
RADIO = "radio",
|
|
21
|
+
/** Мультивыбор чекбоксами. */
|
|
22
|
+
CHECKBOX = "checkbox",
|
|
23
|
+
/** Выбор квеста из активных квестов профиля. */
|
|
24
|
+
QUESTROOM = "questroom",
|
|
25
|
+
/** Выбор локации из локаций профиля. */
|
|
26
|
+
LOCATION = "location",
|
|
27
|
+
/** Согласие с политикой/офертой: обязательная галочка без текста ответа. */
|
|
28
|
+
CONSENT = "consent"
|
|
29
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadFieldTypeEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Типы полей конструктора формы заявки.
|
|
6
|
+
*
|
|
7
|
+
* Контактные типы (NAME/PHONE/EMAIL) — не просто «текст с валидацией»: по
|
|
8
|
+
* ним заявка склеивается с клиентом (`ClientService.findOrCreate`) и
|
|
9
|
+
* находятся дубли, поэтому они отдельные типы, а не `TEXT` с маской.
|
|
10
|
+
*/
|
|
11
|
+
var LeadFieldTypeEnum;
|
|
12
|
+
(function (LeadFieldTypeEnum) {
|
|
13
|
+
LeadFieldTypeEnum["NAME"] = "name";
|
|
14
|
+
LeadFieldTypeEnum["PHONE"] = "phone";
|
|
15
|
+
LeadFieldTypeEnum["EMAIL"] = "email";
|
|
16
|
+
LeadFieldTypeEnum["TEXT"] = "text";
|
|
17
|
+
LeadFieldTypeEnum["TEXTAREA"] = "textarea";
|
|
18
|
+
LeadFieldTypeEnum["DATE"] = "date";
|
|
19
|
+
LeadFieldTypeEnum["TIME"] = "time";
|
|
20
|
+
/** Число гостей: степпер с min/max вместо свободного числа. */
|
|
21
|
+
LeadFieldTypeEnum["GUESTS"] = "guests";
|
|
22
|
+
LeadFieldTypeEnum["NUMBER"] = "number";
|
|
23
|
+
LeadFieldTypeEnum["SELECT"] = "select";
|
|
24
|
+
LeadFieldTypeEnum["RADIO"] = "radio";
|
|
25
|
+
/** Мультивыбор чекбоксами. */
|
|
26
|
+
LeadFieldTypeEnum["CHECKBOX"] = "checkbox";
|
|
27
|
+
/** Выбор квеста из активных квестов профиля. */
|
|
28
|
+
LeadFieldTypeEnum["QUESTROOM"] = "questroom";
|
|
29
|
+
/** Выбор локации из локаций профиля. */
|
|
30
|
+
LeadFieldTypeEnum["LOCATION"] = "location";
|
|
31
|
+
/** Согласие с политикой/офертой: обязательная галочка без текста ответа. */
|
|
32
|
+
LeadFieldTypeEnum["CONSENT"] = "consent";
|
|
33
|
+
})(LeadFieldTypeEnum || (exports.LeadFieldTypeEnum = LeadFieldTypeEnum = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Причина отказа. Обязательна при переводе заявки в этап `LOST`. */
|
|
2
|
+
export declare enum LeadLostReasonEnum {
|
|
3
|
+
NO_ANSWER = "no-answer",
|
|
4
|
+
NO_SUITABLE_TIME = "no-suitable-time",
|
|
5
|
+
TOO_EXPENSIVE = "too-expensive",
|
|
6
|
+
CHOSE_COMPETITOR = "chose-competitor",
|
|
7
|
+
POSTPONED = "postponed",
|
|
8
|
+
DUPLICATE = "duplicate",
|
|
9
|
+
SPAM = "spam",
|
|
10
|
+
OTHER = "other"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadLostReasonEnum = void 0;
|
|
4
|
+
/** Причина отказа. Обязательна при переводе заявки в этап `LOST`. */
|
|
5
|
+
var LeadLostReasonEnum;
|
|
6
|
+
(function (LeadLostReasonEnum) {
|
|
7
|
+
LeadLostReasonEnum["NO_ANSWER"] = "no-answer";
|
|
8
|
+
LeadLostReasonEnum["NO_SUITABLE_TIME"] = "no-suitable-time";
|
|
9
|
+
LeadLostReasonEnum["TOO_EXPENSIVE"] = "too-expensive";
|
|
10
|
+
LeadLostReasonEnum["CHOSE_COMPETITOR"] = "chose-competitor";
|
|
11
|
+
LeadLostReasonEnum["POSTPONED"] = "postponed";
|
|
12
|
+
LeadLostReasonEnum["DUPLICATE"] = "duplicate";
|
|
13
|
+
LeadLostReasonEnum["SPAM"] = "spam";
|
|
14
|
+
LeadLostReasonEnum["OTHER"] = "other";
|
|
15
|
+
})(LeadLostReasonEnum || (exports.LeadLostReasonEnum = LeadLostReasonEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Откуда пришла заявка. Влияет только на фильтры и аналитику воронки. */
|
|
2
|
+
export declare enum LeadSourceEnum {
|
|
3
|
+
/** Отдельный виджет-форма заявки на сайте клиента. */
|
|
4
|
+
WIDGET_FORM = "widget-form",
|
|
5
|
+
/** Кнопка «Оставить заявку» в виджете онлайн-записи. */
|
|
6
|
+
BOOKING_WIDGET = "booking-widget",
|
|
7
|
+
/** Заявка на подбор времени в пакетном предложении. */
|
|
8
|
+
PACKAGE_REQUEST = "package-request",
|
|
9
|
+
/** Витрина сертификатов. */
|
|
10
|
+
CERTIFICATES = "certificates",
|
|
11
|
+
/** Лид из чата виджета (передача оператору / оставленный контакт). */
|
|
12
|
+
CHAT = "chat",
|
|
13
|
+
/** Создана сотрудником вручную: звонок, соцсети, офлайн. */
|
|
14
|
+
MANUAL = "manual",
|
|
15
|
+
/** Standalone-страница формы по ссылке или QR-коду. */
|
|
16
|
+
LANDING = "landing"
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadSourceEnum = void 0;
|
|
4
|
+
/** Откуда пришла заявка. Влияет только на фильтры и аналитику воронки. */
|
|
5
|
+
var LeadSourceEnum;
|
|
6
|
+
(function (LeadSourceEnum) {
|
|
7
|
+
/** Отдельный виджет-форма заявки на сайте клиента. */
|
|
8
|
+
LeadSourceEnum["WIDGET_FORM"] = "widget-form";
|
|
9
|
+
/** Кнопка «Оставить заявку» в виджете онлайн-записи. */
|
|
10
|
+
LeadSourceEnum["BOOKING_WIDGET"] = "booking-widget";
|
|
11
|
+
/** Заявка на подбор времени в пакетном предложении. */
|
|
12
|
+
LeadSourceEnum["PACKAGE_REQUEST"] = "package-request";
|
|
13
|
+
/** Витрина сертификатов. */
|
|
14
|
+
LeadSourceEnum["CERTIFICATES"] = "certificates";
|
|
15
|
+
/** Лид из чата виджета (передача оператору / оставленный контакт). */
|
|
16
|
+
LeadSourceEnum["CHAT"] = "chat";
|
|
17
|
+
/** Создана сотрудником вручную: звонок, соцсети, офлайн. */
|
|
18
|
+
LeadSourceEnum["MANUAL"] = "manual";
|
|
19
|
+
/** Standalone-страница формы по ссылке или QR-коду. */
|
|
20
|
+
LeadSourceEnum["LANDING"] = "landing";
|
|
21
|
+
})(LeadSourceEnum || (exports.LeadSourceEnum = LeadSourceEnum = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Семантика этапа воронки. Названия и состав колонок арендатор меняет сам,
|
|
3
|
+
* но вся логика (бейдж новых, SLA, конверсия, аналитика) опирается на
|
|
4
|
+
* `kind`, а не на конкретную колонку — поэтому переименование этапа
|
|
5
|
+
* «Новая» в «Входящие» ничего не ломает.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum LeadStageKindEnum {
|
|
8
|
+
/** Никто ещё не взял заявку в работу. Считается в бейдже меню. */
|
|
9
|
+
NEW = "new",
|
|
10
|
+
/** Менеджер работает над заявкой. Сюда же добавляются свои этапы. */
|
|
11
|
+
IN_PROGRESS = "in-progress",
|
|
12
|
+
/** Мяч на стороне клиента: ждём ответа, оплаты, согласования. */
|
|
13
|
+
WAITING = "waiting",
|
|
14
|
+
/** Успех: заявка превратилась в бронь или продажу сертификата. */
|
|
15
|
+
WON = "won",
|
|
16
|
+
/** Отказ. Требует причину (`lostReason`). */
|
|
17
|
+
LOST = "lost"
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadStageKindEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Семантика этапа воронки. Названия и состав колонок арендатор меняет сам,
|
|
6
|
+
* но вся логика (бейдж новых, SLA, конверсия, аналитика) опирается на
|
|
7
|
+
* `kind`, а не на конкретную колонку — поэтому переименование этапа
|
|
8
|
+
* «Новая» в «Входящие» ничего не ломает.
|
|
9
|
+
*/
|
|
10
|
+
var LeadStageKindEnum;
|
|
11
|
+
(function (LeadStageKindEnum) {
|
|
12
|
+
/** Никто ещё не взял заявку в работу. Считается в бейдже меню. */
|
|
13
|
+
LeadStageKindEnum["NEW"] = "new";
|
|
14
|
+
/** Менеджер работает над заявкой. Сюда же добавляются свои этапы. */
|
|
15
|
+
LeadStageKindEnum["IN_PROGRESS"] = "in-progress";
|
|
16
|
+
/** Мяч на стороне клиента: ждём ответа, оплаты, согласования. */
|
|
17
|
+
LeadStageKindEnum["WAITING"] = "waiting";
|
|
18
|
+
/** Успех: заявка превратилась в бронь или продажу сертификата. */
|
|
19
|
+
LeadStageKindEnum["WON"] = "won";
|
|
20
|
+
/** Отказ. Требует причину (`lostReason`). */
|
|
21
|
+
LeadStageKindEnum["LOST"] = "lost";
|
|
22
|
+
})(LeadStageKindEnum || (exports.LeadStageKindEnum = LeadStageKindEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ответ на одно поле формы. Храним и «сырое» значение, и снимок подписи:
|
|
3
|
+
* если менеджер потом переименует вариант или выключит поле, карточка
|
|
4
|
+
* старой заявки всё равно покажет то, что реально видел клиент.
|
|
5
|
+
*/
|
|
6
|
+
export interface LeadAnswer {
|
|
7
|
+
fieldId: string;
|
|
8
|
+
/**
|
|
9
|
+
* Значение: строка для текста/даты, число для гостей, массив id опций
|
|
10
|
+
* для мультивыбора, boolean для согласия.
|
|
11
|
+
*/
|
|
12
|
+
value: string | number | boolean | string[] | null;
|
|
13
|
+
/** Снимок подписи поля на момент отправки, на языке клиента. */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Снимок подписей выбранных вариантов. */
|
|
16
|
+
valueLabels?: string[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { LeadLostReasonEnum } from './enums/lead-lost-reason.enum';
|
|
2
|
+
import { LeadSourceEnum } from './enums/lead-source.enum';
|
|
3
|
+
import { LeadStageRO } from './lead-stage.ro';
|
|
4
|
+
/**
|
|
5
|
+
* Карточка канбана. Урезана относительно {@link LeadRO}: доска грузит
|
|
6
|
+
* десятки карточек на колонку, полные ответы формы там не нужны.
|
|
7
|
+
*/
|
|
8
|
+
export declare class LeadBoardCardRO {
|
|
9
|
+
id: number;
|
|
10
|
+
source: LeadSourceEnum;
|
|
11
|
+
name: string | null;
|
|
12
|
+
phone: string | null;
|
|
13
|
+
/** Обрезанный комментарий клиента для превью в карточке. */
|
|
14
|
+
comment: string | null;
|
|
15
|
+
preferredDate: string | null;
|
|
16
|
+
guests: number | null;
|
|
17
|
+
questroomId: number | null;
|
|
18
|
+
clientId: number | null;
|
|
19
|
+
assigneeId: number | null;
|
|
20
|
+
nextActionDate: string | null;
|
|
21
|
+
lostReason: LeadLostReasonEnum | null;
|
|
22
|
+
/** Ещё не открывали — карточка помечается как новая. */
|
|
23
|
+
unread: boolean;
|
|
24
|
+
/** Просрочен SLA этапа или дата следующего шага. */
|
|
25
|
+
overdue: boolean;
|
|
26
|
+
stageChangedAt: Date;
|
|
27
|
+
createdAt: Date;
|
|
28
|
+
}
|
|
29
|
+
export declare class LeadBoardColumnRO {
|
|
30
|
+
stage: LeadStageRO;
|
|
31
|
+
cards: LeadBoardCardRO[];
|
|
32
|
+
/** Всего заявок на этапе — карточек в ответе может быть меньше. */
|
|
33
|
+
total: number;
|
|
34
|
+
/** Сколько из них просрочено: счётчик в заголовке колонки. */
|
|
35
|
+
overdue: number;
|
|
36
|
+
}
|
|
37
|
+
export declare class LeadBoardRO {
|
|
38
|
+
columns: LeadBoardColumnRO[];
|
|
39
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadBoardRO = exports.LeadBoardColumnRO = exports.LeadBoardCardRO = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Карточка канбана. Урезана относительно {@link LeadRO}: доска грузит
|
|
6
|
+
* десятки карточек на колонку, полные ответы формы там не нужны.
|
|
7
|
+
*/
|
|
8
|
+
class LeadBoardCardRO {
|
|
9
|
+
}
|
|
10
|
+
exports.LeadBoardCardRO = LeadBoardCardRO;
|
|
11
|
+
class LeadBoardColumnRO {
|
|
12
|
+
}
|
|
13
|
+
exports.LeadBoardColumnRO = LeadBoardColumnRO;
|
|
14
|
+
class LeadBoardRO {
|
|
15
|
+
}
|
|
16
|
+
exports.LeadBoardRO = LeadBoardRO;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Данные для предзаполнения новой брони из заявки. Отдаются отдельным
|
|
3
|
+
* запросом, чтобы модалка заказа не знала про устройство заявки: она
|
|
4
|
+
* получает готовый набор значений.
|
|
5
|
+
*/
|
|
6
|
+
export declare class LeadConversionPrefillRO {
|
|
7
|
+
leadId: number;
|
|
8
|
+
clientId: number | null;
|
|
9
|
+
name: string | null;
|
|
10
|
+
phone: string | null;
|
|
11
|
+
email: string | null;
|
|
12
|
+
/** `yyyy-MM-dd`, если клиент указал желаемую дату. */
|
|
13
|
+
date: string | null;
|
|
14
|
+
time: string | null;
|
|
15
|
+
guests: number | null;
|
|
16
|
+
questroomId: number | null;
|
|
17
|
+
locationId: number | null;
|
|
18
|
+
/** Комментарий клиента — переносим в заметку к брони. */
|
|
19
|
+
comment: string | null;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LeadConversionPrefillRO = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Данные для предзаполнения новой брони из заявки. Отдаются отдельным
|
|
6
|
+
* запросом, чтобы модалка заказа не знала про устройство заявки: она
|
|
7
|
+
* получает готовый набор значений.
|
|
8
|
+
*/
|
|
9
|
+
class LeadConversionPrefillRO {
|
|
10
|
+
}
|
|
11
|
+
exports.LeadConversionPrefillRO = LeadConversionPrefillRO;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Счётчики для бейджа в меню и подсветки фильтров. */
|
|
2
|
+
export declare class LeadCountersRO {
|
|
3
|
+
/** Не открытые ни разу заявки на этапах вида `NEW`. Это и есть бейдж. */
|
|
4
|
+
new: number;
|
|
5
|
+
/** Просроченные по SLA этапа или по дате следующего шага. */
|
|
6
|
+
overdue: number;
|
|
7
|
+
/** Заявки, назначенные на текущего сотрудника и не закрытые. */
|
|
8
|
+
mine: number;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LeadEventTypeEnum } from './enums/lead-event-type.enum';
|
|
2
|
+
export declare class LeadEventRO {
|
|
3
|
+
id: number;
|
|
4
|
+
type: LeadEventTypeEnum;
|
|
5
|
+
/** Кто инициировал. `null` — событие от клиента или системы. */
|
|
6
|
+
userId: number | null;
|
|
7
|
+
/**
|
|
8
|
+
* Детали события: `{ fromStageId, toStageId }`, `{ assigneeId }`,
|
|
9
|
+
* `{ orderId }` и т.п. Свободная форма — таймлайн рендерит по `type`.
|
|
10
|
+
*/
|
|
11
|
+
payload: Record<string, unknown> | null;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
}
|