tychat-contracts 1.6.78 → 1.6.80
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/conversations/followup-appointment-reprocess.dto.d.ts +7 -0
- package/dist/conversations/followup-appointment-reprocess.dto.d.ts.map +1 -0
- package/dist/conversations/followup-appointment-reprocess.dto.js +43 -0
- package/dist/conversations/followup-config-response.dto.d.ts +1 -0
- package/dist/conversations/followup-config-response.dto.d.ts.map +1 -1
- package/dist/conversations/followup-config-response.dto.js +9 -0
- package/dist/conversations/followup-log-list-query.dto.d.ts +1 -1
- package/dist/conversations/followup-log-list-query.dto.d.ts.map +1 -1
- package/dist/conversations/followup-log-list-query.dto.js +2 -0
- package/dist/conversations/followup-log-response.dto.d.ts +3 -0
- package/dist/conversations/followup-log-response.dto.d.ts.map +1 -1
- package/dist/conversations/followup-log-response.dto.js +21 -0
- package/dist/conversations/followup-log-status.dto.d.ts +4 -0
- package/dist/conversations/followup-log-status.dto.d.ts.map +1 -0
- package/dist/conversations/followup-log-status.dto.js +10 -0
- package/dist/conversations/index.d.ts +2 -0
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/index.js +2 -0
- package/package.json +1 -1
- package/src/conversations/followup-appointment-reprocess.dto.ts +28 -0
- package/src/conversations/followup-config-response.dto.ts +8 -0
- package/src/conversations/followup-log-list-query.dto.ts +2 -0
- package/src/conversations/followup-log-response.dto.ts +17 -0
- package/src/conversations/followup-log-status.dto.ts +9 -0
- package/src/conversations/index.ts +2 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FollowupTypeDto } from './followup-type.dto';
|
|
2
|
+
/** Payload to manually reprocess a failed appointment follow-up. */
|
|
3
|
+
export declare class FollowupAppointmentReprocessDto {
|
|
4
|
+
appointmentId: string;
|
|
5
|
+
followupType: FollowupTypeDto;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=followup-appointment-reprocess.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followup-appointment-reprocess.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-appointment-reprocess.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAYtD,oEAAoE;AACpE,qBAAa,+BAA+B;IAI1C,aAAa,EAAE,MAAM,CAAC;IAOtB,YAAY,EAAE,eAAe,CAAC;CAC/B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.FollowupAppointmentReprocessDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const APPOINTMENT_FOLLOWUP_TYPES = [
|
|
16
|
+
'appointment_confirmation',
|
|
17
|
+
'satisfaction_booking',
|
|
18
|
+
'satisfaction_finished',
|
|
19
|
+
'no_show_reschedule',
|
|
20
|
+
'checkin_not_completed',
|
|
21
|
+
'wellness_check',
|
|
22
|
+
'return_suggestion',
|
|
23
|
+
];
|
|
24
|
+
/** Payload to manually reprocess a failed appointment follow-up. */
|
|
25
|
+
class FollowupAppointmentReprocessDto {
|
|
26
|
+
appointmentId;
|
|
27
|
+
followupType;
|
|
28
|
+
}
|
|
29
|
+
exports.FollowupAppointmentReprocessDto = FollowupAppointmentReprocessDto;
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, swagger_1.ApiProperty)({ format: 'uuid', description: 'Appointment UUID' }),
|
|
32
|
+
(0, class_validator_1.IsUUID)('4'),
|
|
33
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], FollowupAppointmentReprocessDto.prototype, "appointmentId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, swagger_1.ApiProperty)({
|
|
38
|
+
enum: APPOINTMENT_FOLLOWUP_TYPES,
|
|
39
|
+
example: 'checkin_not_completed',
|
|
40
|
+
}),
|
|
41
|
+
(0, class_validator_1.IsIn)([...APPOINTMENT_FOLLOWUP_TYPES]),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], FollowupAppointmentReprocessDto.prototype, "followupType", void 0);
|
|
@@ -23,6 +23,7 @@ export declare class FollowupConfigResponseDto {
|
|
|
23
23
|
noShowEnabled: boolean;
|
|
24
24
|
checkinNotCompletedDelayMinutes: number;
|
|
25
25
|
checkinNotCompletedEnabled: boolean;
|
|
26
|
+
checkinNotCompletedRespectClinicHours: boolean;
|
|
26
27
|
wellnessCheckDelayMinutes: number;
|
|
27
28
|
wellnessCheckEnabled: boolean;
|
|
28
29
|
returnSuggestionDelayMinutes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followup-config-response.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-config-response.dto.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,qBAAa,yBAAyB;IAIpC,EAAE,EAAE,MAAM,CAAC;IAMX,MAAM,CAAC,EAAE,MAAM,CAAC;IAYhB,2BAA2B,EAAE,MAAM,CAAC;IAKpC,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAS9B,yBAAyB,EAAE,MAAM,CAAC;IAIlC,mBAAmB,EAAE,OAAO,CAAC;IAS7B,+BAA+B,EAAE,MAAM,CAAC;IAIxC,0BAA0B,EAAE,OAAO,CAAC;IAKpC,gCAAgC,EAAE,MAAM,CAAC;IAIzC,2BAA2B,EAAE,OAAO,CAAC;IASrC,kBAAkB,EAAE,MAAM,CAAC;IAI3B,aAAa,EAAE,OAAO,CAAC;IAYvB,+BAA+B,EAAE,MAAM,CAAC;IAIxC,0BAA0B,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"followup-config-response.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-config-response.dto.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,qBAAa,yBAAyB;IAIpC,EAAE,EAAE,MAAM,CAAC;IAMX,MAAM,CAAC,EAAE,MAAM,CAAC;IAYhB,2BAA2B,EAAE,MAAM,CAAC;IAKpC,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAK9B,qBAAqB,EAAE,MAAM,CAAC;IAS9B,yBAAyB,EAAE,MAAM,CAAC;IAIlC,mBAAmB,EAAE,OAAO,CAAC;IAS7B,+BAA+B,EAAE,MAAM,CAAC;IAIxC,0BAA0B,EAAE,OAAO,CAAC;IAKpC,gCAAgC,EAAE,MAAM,CAAC;IAIzC,2BAA2B,EAAE,OAAO,CAAC;IASrC,kBAAkB,EAAE,MAAM,CAAC;IAI3B,aAAa,EAAE,OAAO,CAAC;IAYvB,+BAA+B,EAAE,MAAM,CAAC;IAIxC,0BAA0B,EAAE,OAAO,CAAC;IAQpC,qCAAqC,EAAE,OAAO,CAAC;IAS/C,yBAAyB,EAAE,MAAM,CAAC;IAIlC,oBAAoB,EAAE,OAAO,CAAC;IAS9B,4BAA4B,EAAE,MAAM,CAAC;IAIrC,uBAAuB,EAAE,OAAO,CAAC;IAYjC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAQzC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAQrC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAQtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAQlC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAQrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAQ/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAQlC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAQ7B,OAAO,EAAE,OAAO,CAAC;IASjB,mCAAmC,EAAE,MAAM,CAAC;IAS5C,oCAAoC,EAAE,MAAM,CAAC;IAS7C,qCAAqC,EAAE,MAAM,CAAC;IAS9C,wCAAwC,EAAE,MAAM,CAAC;IASjD,8BAA8B,EAAE,MAAM,CAAC;IASvC,+BAA+B,EAAE,MAAM,CAAC;IASxC,gCAAgC,EAAE,MAAM,CAAC;IASzC,6BAA6B,EAAE,MAAM,CAAC;IAUtC,+BAA+B,EAAE,MAAM,CAAC;CACzC"}
|
|
@@ -52,6 +52,7 @@ class FollowupConfigResponseDto {
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
checkinNotCompletedDelayMinutes;
|
|
54
54
|
checkinNotCompletedEnabled;
|
|
55
|
+
checkinNotCompletedRespectClinicHours;
|
|
55
56
|
// ---------------------------------------------------------------------------
|
|
56
57
|
// Wellness check settings
|
|
57
58
|
// ---------------------------------------------------------------------------
|
|
@@ -198,6 +199,14 @@ __decorate([
|
|
|
198
199
|
(0, class_validator_1.IsBoolean)(),
|
|
199
200
|
__metadata("design:type", Boolean)
|
|
200
201
|
], FollowupConfigResponseDto.prototype, "checkinNotCompletedEnabled", void 0);
|
|
202
|
+
__decorate([
|
|
203
|
+
(0, swagger_1.ApiProperty)({
|
|
204
|
+
description: 'When true, defer check-in-not-completed follow-up until clinic opening hours (if opening_hours configured)',
|
|
205
|
+
default: true,
|
|
206
|
+
}),
|
|
207
|
+
(0, class_validator_1.IsBoolean)(),
|
|
208
|
+
__metadata("design:type", Boolean)
|
|
209
|
+
], FollowupConfigResponseDto.prototype, "checkinNotCompletedRespectClinicHours", void 0);
|
|
201
210
|
__decorate([
|
|
202
211
|
(0, swagger_1.ApiProperty)({ description: 'Minutes after appointment finishes to send the wellness check', example: 1440 }),
|
|
203
212
|
(0, class_validator_1.IsInt)(),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ParsedFilterDto } from '../filters/parsed-filter.dto';
|
|
2
2
|
import { ConversationIntentionDto } from './conversation-intention.dto';
|
|
3
3
|
import { FollowupTypeDto } from './followup-type.dto';
|
|
4
|
-
export declare const FOLLOWUP_LOG_LIST_FILTER_KEYS: readonly ["id", "sessionUuid", "patientId", "attempt", "message", "intention", "followupType", "appointmentId", "closedByAttendantId", "sentAt"];
|
|
4
|
+
export declare const FOLLOWUP_LOG_LIST_FILTER_KEYS: readonly ["id", "sessionUuid", "patientId", "attempt", "message", "intention", "followupType", "appointmentId", "closedByAttendantId", "sentAt", "status", "failureReason"];
|
|
5
5
|
export type FollowupLogListFilterKeyDto = (typeof FOLLOWUP_LOG_LIST_FILTER_KEYS)[number];
|
|
6
6
|
/**
|
|
7
7
|
* Query parameters for listing follow-up logs (HTTP query + Kafka payload).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followup-log-list-query.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-log-list-query.dto.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAEL,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAkB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtE,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"followup-log-list-query.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-log-list-query.dto.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAEL,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAkB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtE,eAAO,MAAM,6BAA6B,6KAahC,CAAC;AACX,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzF;;GAEG;AACH,qBAAa,uBAAuB;IAMlC,IAAI,CAAC,EAAE,MAAM,CAAC;IAQd,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAQrC,YAAY,CAAC,EAAE,eAAe,CAAC;IAW/B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FollowupTypeDto } from './followup-type.dto';
|
|
2
|
+
import { FollowupLogStatusDto } from './followup-log-status.dto';
|
|
2
3
|
/**
|
|
3
4
|
* Represents a follow-up attempt log entry.
|
|
4
5
|
* Tracks each follow-up message sent to a patient within a session or appointment.
|
|
@@ -14,5 +15,7 @@ export declare class FollowupLogResponseDto {
|
|
|
14
15
|
appointmentId?: string | null;
|
|
15
16
|
closedByAttendantId?: string | null;
|
|
16
17
|
sentAt: string;
|
|
18
|
+
status: FollowupLogStatusDto;
|
|
19
|
+
failureReason?: string | null;
|
|
17
20
|
}
|
|
18
21
|
//# sourceMappingURL=followup-log-response.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followup-log-response.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-log-response.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"followup-log-response.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-log-response.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAyB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;;GAGG;AACH,qBAAa,sBAAsB;IAIjC,EAAE,EAAE,MAAM,CAAC;IAKX,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAK5B,SAAS,EAAE,MAAM,CAAC;IAMlB,OAAO,EAAE,MAAM,CAAC;IAKhB,OAAO,EAAE,MAAM,CAAC;IAKhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,YAAY,EAAE,eAAe,CAAC;IAK9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAO9B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKpC,MAAM,EAAE,MAAM,CAAC;IAQf,MAAM,EAAE,oBAAoB,CAAC;IAQ7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -13,6 +13,7 @@ exports.FollowupLogResponseDto = void 0;
|
|
|
13
13
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const followup_type_dto_1 = require("./followup-type.dto");
|
|
16
|
+
const followup_log_status_dto_1 = require("./followup-log-status.dto");
|
|
16
17
|
/**
|
|
17
18
|
* Represents a follow-up attempt log entry.
|
|
18
19
|
* Tracks each follow-up message sent to a patient within a session or appointment.
|
|
@@ -28,6 +29,8 @@ class FollowupLogResponseDto {
|
|
|
28
29
|
appointmentId;
|
|
29
30
|
closedByAttendantId;
|
|
30
31
|
sentAt;
|
|
32
|
+
status;
|
|
33
|
+
failureReason;
|
|
31
34
|
}
|
|
32
35
|
exports.FollowupLogResponseDto = FollowupLogResponseDto;
|
|
33
36
|
__decorate([
|
|
@@ -96,3 +99,21 @@ __decorate([
|
|
|
96
99
|
(0, class_validator_1.IsNotEmpty)(),
|
|
97
100
|
__metadata("design:type", String)
|
|
98
101
|
], FollowupLogResponseDto.prototype, "sentAt", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, swagger_1.ApiProperty)({
|
|
104
|
+
description: 'Delivery outcome of the follow-up attempt',
|
|
105
|
+
enum: followup_log_status_dto_1.FOLLOWUP_LOG_STATUSES,
|
|
106
|
+
example: 'sent',
|
|
107
|
+
}),
|
|
108
|
+
(0, class_validator_1.IsIn)([...followup_log_status_dto_1.FOLLOWUP_LOG_STATUSES]),
|
|
109
|
+
__metadata("design:type", String)
|
|
110
|
+
], FollowupLogResponseDto.prototype, "status", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
113
|
+
description: 'Reason when status is failed, skipped, or cancelled',
|
|
114
|
+
example: 'template_send_failed',
|
|
115
|
+
}),
|
|
116
|
+
(0, class_validator_1.IsOptional)(),
|
|
117
|
+
(0, class_validator_1.IsString)(),
|
|
118
|
+
__metadata("design:type", Object)
|
|
119
|
+
], FollowupLogResponseDto.prototype, "failureReason", void 0);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Status of a follow-up log entry (delivery outcome). */
|
|
2
|
+
export declare const FOLLOWUP_LOG_STATUSES: readonly ["sent", "failed", "skipped", "cancelled"];
|
|
3
|
+
export type FollowupLogStatusDto = (typeof FOLLOWUP_LOG_STATUSES)[number];
|
|
4
|
+
//# sourceMappingURL=followup-log-status.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followup-log-status.dto.d.ts","sourceRoot":"","sources":["../../src/conversations/followup-log-status.dto.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,qDAKxB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FOLLOWUP_LOG_STATUSES = void 0;
|
|
4
|
+
/** Status of a follow-up log entry (delivery outcome). */
|
|
5
|
+
exports.FOLLOWUP_LOG_STATUSES = [
|
|
6
|
+
'sent',
|
|
7
|
+
'failed',
|
|
8
|
+
'skipped',
|
|
9
|
+
'cancelled',
|
|
10
|
+
];
|
|
@@ -9,10 +9,12 @@ export * from './conversation-session-response.dto';
|
|
|
9
9
|
export * from './create-conversation.dto';
|
|
10
10
|
export * from './conversation-response.dto';
|
|
11
11
|
export * from './followup-type.dto';
|
|
12
|
+
export * from './followup-log-status.dto';
|
|
12
13
|
export * from './followup-config-response.dto';
|
|
13
14
|
export * from './followup-log-response.dto';
|
|
14
15
|
export * from './followup-log-list-query.dto';
|
|
15
16
|
export * from './followup-log-list-response.dto';
|
|
17
|
+
export * from './followup-appointment-reprocess.dto';
|
|
16
18
|
export * from './satisfaction-response.dto';
|
|
17
19
|
export * from './followup-events.dto';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
|
|
@@ -25,9 +25,11 @@ __exportStar(require("./conversation-session-response.dto"), exports);
|
|
|
25
25
|
__exportStar(require("./create-conversation.dto"), exports);
|
|
26
26
|
__exportStar(require("./conversation-response.dto"), exports);
|
|
27
27
|
__exportStar(require("./followup-type.dto"), exports);
|
|
28
|
+
__exportStar(require("./followup-log-status.dto"), exports);
|
|
28
29
|
__exportStar(require("./followup-config-response.dto"), exports);
|
|
29
30
|
__exportStar(require("./followup-log-response.dto"), exports);
|
|
30
31
|
__exportStar(require("./followup-log-list-query.dto"), exports);
|
|
31
32
|
__exportStar(require("./followup-log-list-response.dto"), exports);
|
|
33
|
+
__exportStar(require("./followup-appointment-reprocess.dto"), exports);
|
|
32
34
|
__exportStar(require("./satisfaction-response.dto"), exports);
|
|
33
35
|
__exportStar(require("./followup-events.dto"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
2
|
+
import { IsIn, IsNotEmpty, IsUUID } from 'class-validator';
|
|
3
|
+
import { FollowupTypeDto } from './followup-type.dto';
|
|
4
|
+
|
|
5
|
+
const APPOINTMENT_FOLLOWUP_TYPES = [
|
|
6
|
+
'appointment_confirmation',
|
|
7
|
+
'satisfaction_booking',
|
|
8
|
+
'satisfaction_finished',
|
|
9
|
+
'no_show_reschedule',
|
|
10
|
+
'checkin_not_completed',
|
|
11
|
+
'wellness_check',
|
|
12
|
+
'return_suggestion',
|
|
13
|
+
] as const satisfies readonly FollowupTypeDto[];
|
|
14
|
+
|
|
15
|
+
/** Payload to manually reprocess a failed appointment follow-up. */
|
|
16
|
+
export class FollowupAppointmentReprocessDto {
|
|
17
|
+
@ApiProperty({ format: 'uuid', description: 'Appointment UUID' })
|
|
18
|
+
@IsUUID('4')
|
|
19
|
+
@IsNotEmpty()
|
|
20
|
+
appointmentId: string;
|
|
21
|
+
|
|
22
|
+
@ApiProperty({
|
|
23
|
+
enum: APPOINTMENT_FOLLOWUP_TYPES,
|
|
24
|
+
example: 'checkin_not_completed',
|
|
25
|
+
})
|
|
26
|
+
@IsIn([...APPOINTMENT_FOLLOWUP_TYPES])
|
|
27
|
+
followupType: FollowupTypeDto;
|
|
28
|
+
}
|
|
@@ -128,6 +128,14 @@ export class FollowupConfigResponseDto {
|
|
|
128
128
|
@IsBoolean()
|
|
129
129
|
checkinNotCompletedEnabled: boolean;
|
|
130
130
|
|
|
131
|
+
@ApiProperty({
|
|
132
|
+
description:
|
|
133
|
+
'When true, defer check-in-not-completed follow-up until clinic opening hours (if opening_hours configured)',
|
|
134
|
+
default: true,
|
|
135
|
+
})
|
|
136
|
+
@IsBoolean()
|
|
137
|
+
checkinNotCompletedRespectClinicHours: boolean;
|
|
138
|
+
|
|
131
139
|
// ---------------------------------------------------------------------------
|
|
132
140
|
// Wellness check settings
|
|
133
141
|
// ---------------------------------------------------------------------------
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
2
2
|
import { IsIn, IsInt, IsNotEmpty, IsOptional, IsString, Max, Min } from 'class-validator';
|
|
3
3
|
import { FOLLOWUP_TYPES, FollowupTypeDto } from './followup-type.dto';
|
|
4
|
+
import { FOLLOWUP_LOG_STATUSES, FollowupLogStatusDto } from './followup-log-status.dto';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Represents a follow-up attempt log entry.
|
|
@@ -62,4 +63,20 @@ export class FollowupLogResponseDto {
|
|
|
62
63
|
@IsString()
|
|
63
64
|
@IsNotEmpty()
|
|
64
65
|
sentAt: string;
|
|
66
|
+
|
|
67
|
+
@ApiProperty({
|
|
68
|
+
description: 'Delivery outcome of the follow-up attempt',
|
|
69
|
+
enum: FOLLOWUP_LOG_STATUSES,
|
|
70
|
+
example: 'sent',
|
|
71
|
+
})
|
|
72
|
+
@IsIn([...FOLLOWUP_LOG_STATUSES])
|
|
73
|
+
status: FollowupLogStatusDto;
|
|
74
|
+
|
|
75
|
+
@ApiPropertyOptional({
|
|
76
|
+
description: 'Reason when status is failed, skipped, or cancelled',
|
|
77
|
+
example: 'template_send_failed',
|
|
78
|
+
})
|
|
79
|
+
@IsOptional()
|
|
80
|
+
@IsString()
|
|
81
|
+
failureReason?: string | null;
|
|
65
82
|
}
|
|
@@ -9,9 +9,11 @@ export * from './conversation-session-response.dto';
|
|
|
9
9
|
export * from './create-conversation.dto';
|
|
10
10
|
export * from './conversation-response.dto';
|
|
11
11
|
export * from './followup-type.dto';
|
|
12
|
+
export * from './followup-log-status.dto';
|
|
12
13
|
export * from './followup-config-response.dto';
|
|
13
14
|
export * from './followup-log-response.dto';
|
|
14
15
|
export * from './followup-log-list-query.dto';
|
|
15
16
|
export * from './followup-log-list-response.dto';
|
|
17
|
+
export * from './followup-appointment-reprocess.dto';
|
|
16
18
|
export * from './satisfaction-response.dto';
|
|
17
19
|
export * from './followup-events.dto';
|