@carbonbox/domain 0.31.0 → 0.32.1
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/build/carbonbox/reporting/report-instances/domain/entity/IReportInstance.js +2 -0
- package/build/carbonbox/reporting/report-instances/domain/entity/ReportInstance.js +371 -0
- package/build/carbonbox/reporting/report-instances/domain/enums/ReportInstanceStatus.js +38 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedByClientError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedInternallyError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeGeneratedError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBePublishedError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeRejectedError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceInvalidStatusTransitionError.js +32 -0
- package/build/carbonbox/reporting/report-instances/domain/repository/IReportInstanceRepository.js +2 -0
- package/build/carbonbox/reporting/report-instances/domain/types/ReportInstancePrimitives.js +2 -0
- package/build/carbonbox/reporting/report-instances/domain/types/ReportInstanceProps.js +2 -0
- package/build/carbonbox/reporting/report-templates/domain/entity/IReportTemplate.js +2 -0
- package/build/carbonbox/reporting/report-templates/domain/entity/ReportTemplate.js +275 -0
- package/build/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeActivatedError.js +32 -0
- package/build/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeDeprecatedError.js +32 -0
- package/build/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeVersionedError.js +32 -0
- package/build/carbonbox/reporting/report-templates/domain/repository/IReportTemplateRepository.js +2 -0
- package/build/carbonbox/reporting/shared/domain/types/AIExecutionRecordPrimitives.js +2 -0
- package/build/carbonbox/reporting/shared/domain/types/ApprovalRecordPrimitives.js +2 -0
- package/build/carbonbox/reporting/shared/domain/types/QuestionnaireAnswerPrimitives.js +2 -0
- package/build/carbonbox/reporting/shared/domain/types/ReportPeriodPrimitives.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/entity/ITextBank.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/entity/TextBank.js +173 -0
- package/build/carbonbox/reporting/text-banks/domain/repository/ITextBankRepository.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/types/TextBankEntryPrimitives.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/types/TextBankEntryProps.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/types/TextBankPrimitives.js +2 -0
- package/build/carbonbox/reporting/text-banks/domain/types/TextBankProps.js +2 -0
- package/build/carbonbox/shared/domain/enums/ErrorCode.js +11 -0
- package/build/main/index.js +75 -8
- package/build/types/carbonbox/reporting/report-instances/domain/entity/IReportInstance.d.ts +36 -0
- package/build/types/carbonbox/reporting/report-instances/domain/entity/IReportInstance.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/entity/ReportInstance.d.ts +59 -0
- package/build/types/carbonbox/reporting/report-instances/domain/entity/ReportInstance.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/enums/ReportInstanceStatus.d.ts +35 -0
- package/build/types/carbonbox/reporting/report-instances/domain/enums/ReportInstanceStatus.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedByClientError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedByClientError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedInternallyError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeApprovedInternallyError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeGeneratedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeGeneratedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBePublishedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBePublishedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeRejectedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceCannotBeRejectedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceInvalidStatusTransitionError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-instances/domain/exceptions/ReportInstanceInvalidStatusTransitionError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/repository/IReportInstanceRepository.d.ts +84 -0
- package/build/types/carbonbox/reporting/report-instances/domain/repository/IReportInstanceRepository.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/types/ReportInstancePrimitives.d.ts +28 -0
- package/build/types/carbonbox/reporting/report-instances/domain/types/ReportInstancePrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/types/ReportInstanceProps.d.ts +28 -0
- package/build/types/carbonbox/reporting/report-instances/domain/types/ReportInstanceProps.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/entity/IReportTemplate.d.ts +24 -0
- package/build/types/carbonbox/reporting/report-templates/domain/entity/IReportTemplate.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/entity/ReportTemplate.d.ts +43 -0
- package/build/types/carbonbox/reporting/report-templates/domain/entity/ReportTemplate.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeActivatedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeActivatedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeDeprecatedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeDeprecatedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeVersionedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-templates/domain/exceptions/ReportTemplateCannotBeVersionedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/repository/IReportTemplateRepository.d.ts +97 -0
- package/build/types/carbonbox/reporting/report-templates/domain/repository/IReportTemplateRepository.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-templates/domain/types/ReportTemplatePrimitives.d.ts +15 -15
- package/build/types/carbonbox/reporting/report-templates/domain/types/ReportTemplatePrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/report-templates/domain/types/ReportTemplateProps.d.ts +20 -16
- package/build/types/carbonbox/reporting/report-templates/domain/types/ReportTemplateProps.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/shared/domain/types/AIExecutionRecordPrimitives.d.ts +14 -0
- package/build/types/carbonbox/reporting/shared/domain/types/AIExecutionRecordPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ApprovalRecordPrimitives.d.ts +12 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ApprovalRecordPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/types/QuestionnaireAnswerPrimitives.d.ts +11 -0
- package/build/types/carbonbox/reporting/shared/domain/types/QuestionnaireAnswerPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ReportPeriodPrimitives.d.ts +9 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ReportPeriodPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/entity/ITextBank.d.ts +16 -0
- package/build/types/carbonbox/reporting/text-banks/domain/entity/ITextBank.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/entity/TextBank.d.ts +36 -0
- package/build/types/carbonbox/reporting/text-banks/domain/entity/TextBank.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/repository/ITextBankRepository.d.ts +52 -0
- package/build/types/carbonbox/reporting/text-banks/domain/repository/ITextBankRepository.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankEntryPrimitives.d.ts +45 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankEntryPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankEntryProps.d.ts +46 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankEntryProps.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankPrimitives.d.ts +33 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankProps.d.ts +37 -0
- package/build/types/carbonbox/reporting/text-banks/domain/types/TextBankProps.d.ts.map +1 -0
- package/build/types/carbonbox/shared/domain/enums/ErrorCode.d.ts +11 -0
- package/build/types/carbonbox/shared/domain/enums/ErrorCode.d.ts.map +1 -1
- package/build/types/main/index.d.ts +48 -0
- package/build/types/main/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _ReportInstance_templateId, _ReportInstance_templateVersion, _ReportInstance_carbonClientId, _ReportInstance_period, _ReportInstance_filters, _ReportInstance_questionnaireAnswers, _ReportInstance_dataSnapshot, _ReportInstance_generatedContent, _ReportInstance_pdfUrl, _ReportInstance_status, _ReportInstance_approvals, _ReportInstance_aiExecutions, _ReportInstance_createdAt, _ReportInstance_updatedAt;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ReportInstance = void 0;
|
|
16
|
+
const AggregateRoot_1 = require("../../../../shared/domain/entities/AggregateRoot");
|
|
17
|
+
const ReportInstanceId_1 = require("../value-objects/ReportInstanceId");
|
|
18
|
+
const ReportInstanceStatus_1 = require("../enums/ReportInstanceStatus");
|
|
19
|
+
const ReportInstanceCannotBeGeneratedError_1 = require("../exceptions/ReportInstanceCannotBeGeneratedError");
|
|
20
|
+
const ReportInstanceCannotBeApprovedInternallyError_1 = require("../exceptions/ReportInstanceCannotBeApprovedInternallyError");
|
|
21
|
+
const ReportInstanceCannotBeApprovedByClientError_1 = require("../exceptions/ReportInstanceCannotBeApprovedByClientError");
|
|
22
|
+
const ReportInstanceCannotBePublishedError_1 = require("../exceptions/ReportInstanceCannotBePublishedError");
|
|
23
|
+
const ReportInstanceCannotBeRejectedError_1 = require("../exceptions/ReportInstanceCannotBeRejectedError");
|
|
24
|
+
const ReportInstanceInvalidStatusTransitionError_1 = require("../exceptions/ReportInstanceInvalidStatusTransitionError");
|
|
25
|
+
class ReportInstance extends AggregateRoot_1.AggregateRoot {
|
|
26
|
+
constructor(props, skipDomainValidation) {
|
|
27
|
+
const id = skipDomainValidation
|
|
28
|
+
? ReportInstanceId_1.ReportInstanceId.fromPrimitives(props.id).toPrimitives()
|
|
29
|
+
: ReportInstanceId_1.ReportInstanceId.create(props.id).toPrimitives();
|
|
30
|
+
super({ id }, skipDomainValidation);
|
|
31
|
+
_ReportInstance_templateId.set(this, void 0);
|
|
32
|
+
_ReportInstance_templateVersion.set(this, void 0);
|
|
33
|
+
_ReportInstance_carbonClientId.set(this, void 0);
|
|
34
|
+
_ReportInstance_period.set(this, void 0);
|
|
35
|
+
_ReportInstance_filters.set(this, void 0);
|
|
36
|
+
_ReportInstance_questionnaireAnswers.set(this, void 0);
|
|
37
|
+
_ReportInstance_dataSnapshot.set(this, void 0);
|
|
38
|
+
_ReportInstance_generatedContent.set(this, void 0);
|
|
39
|
+
_ReportInstance_pdfUrl.set(this, void 0);
|
|
40
|
+
_ReportInstance_status.set(this, void 0);
|
|
41
|
+
_ReportInstance_approvals.set(this, void 0);
|
|
42
|
+
_ReportInstance_aiExecutions.set(this, void 0);
|
|
43
|
+
_ReportInstance_createdAt.set(this, void 0);
|
|
44
|
+
_ReportInstance_updatedAt.set(this, void 0);
|
|
45
|
+
__classPrivateFieldSet(this, _ReportInstance_templateId, props.templateId, "f");
|
|
46
|
+
__classPrivateFieldSet(this, _ReportInstance_templateVersion, props.templateVersion, "f");
|
|
47
|
+
__classPrivateFieldSet(this, _ReportInstance_carbonClientId, props.carbonClientId, "f");
|
|
48
|
+
__classPrivateFieldSet(this, _ReportInstance_period, props.period, "f");
|
|
49
|
+
__classPrivateFieldSet(this, _ReportInstance_filters, props.filters, "f");
|
|
50
|
+
__classPrivateFieldSet(this, _ReportInstance_questionnaireAnswers, props.questionnaireAnswers, "f");
|
|
51
|
+
__classPrivateFieldSet(this, _ReportInstance_dataSnapshot, props.dataSnapshot, "f");
|
|
52
|
+
__classPrivateFieldSet(this, _ReportInstance_generatedContent, props.generatedContent, "f");
|
|
53
|
+
__classPrivateFieldSet(this, _ReportInstance_pdfUrl, props.pdfUrl, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _ReportInstance_status, props.status, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _ReportInstance_approvals, props.approvals, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _ReportInstance_aiExecutions, props.aiExecutions, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _ReportInstance_createdAt, props.createdAt, "f");
|
|
58
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, props.updatedAt, "f");
|
|
59
|
+
}
|
|
60
|
+
static create(props) {
|
|
61
|
+
const now = new Date().toISOString();
|
|
62
|
+
const id = `${props.carbonClientId}-${props.templateId}-${now}`;
|
|
63
|
+
const fullProps = {
|
|
64
|
+
...props,
|
|
65
|
+
id,
|
|
66
|
+
generatedContent: null,
|
|
67
|
+
pdfUrl: null,
|
|
68
|
+
status: ReportInstanceStatus_1.ReportInstanceStatus.DRAFT,
|
|
69
|
+
approvals: [],
|
|
70
|
+
aiExecutions: [],
|
|
71
|
+
createdAt: now,
|
|
72
|
+
updatedAt: now,
|
|
73
|
+
};
|
|
74
|
+
return new ReportInstance(fullProps, false);
|
|
75
|
+
}
|
|
76
|
+
static fromPrimitives(primitives) {
|
|
77
|
+
const props = {
|
|
78
|
+
id: primitives.id,
|
|
79
|
+
templateId: primitives.templateId,
|
|
80
|
+
templateVersion: primitives.templateVersion,
|
|
81
|
+
carbonClientId: primitives.carbonClientId,
|
|
82
|
+
period: primitives.period,
|
|
83
|
+
filters: primitives.filters,
|
|
84
|
+
questionnaireAnswers: primitives.questionnaireAnswers,
|
|
85
|
+
dataSnapshot: primitives.dataSnapshot,
|
|
86
|
+
generatedContent: primitives.generatedContent,
|
|
87
|
+
pdfUrl: primitives.pdfUrl,
|
|
88
|
+
status: primitives.status,
|
|
89
|
+
approvals: primitives.approvals,
|
|
90
|
+
aiExecutions: primitives.aiExecutions,
|
|
91
|
+
createdAt: primitives.createdAt,
|
|
92
|
+
updatedAt: primitives.updatedAt,
|
|
93
|
+
};
|
|
94
|
+
return new ReportInstance(props, true);
|
|
95
|
+
}
|
|
96
|
+
get toPrimitives() {
|
|
97
|
+
return {
|
|
98
|
+
id: this.id.toPrimitives(),
|
|
99
|
+
templateId: __classPrivateFieldGet(this, _ReportInstance_templateId, "f"),
|
|
100
|
+
templateVersion: __classPrivateFieldGet(this, _ReportInstance_templateVersion, "f"),
|
|
101
|
+
carbonClientId: __classPrivateFieldGet(this, _ReportInstance_carbonClientId, "f"),
|
|
102
|
+
period: __classPrivateFieldGet(this, _ReportInstance_period, "f"),
|
|
103
|
+
filters: __classPrivateFieldGet(this, _ReportInstance_filters, "f"),
|
|
104
|
+
questionnaireAnswers: __classPrivateFieldGet(this, _ReportInstance_questionnaireAnswers, "f"),
|
|
105
|
+
dataSnapshot: __classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f"),
|
|
106
|
+
generatedContent: __classPrivateFieldGet(this, _ReportInstance_generatedContent, "f"),
|
|
107
|
+
pdfUrl: __classPrivateFieldGet(this, _ReportInstance_pdfUrl, "f"),
|
|
108
|
+
status: __classPrivateFieldGet(this, _ReportInstance_status, "f"),
|
|
109
|
+
approvals: __classPrivateFieldGet(this, _ReportInstance_approvals, "f"),
|
|
110
|
+
aiExecutions: __classPrivateFieldGet(this, _ReportInstance_aiExecutions, "f"),
|
|
111
|
+
createdAt: __classPrivateFieldGet(this, _ReportInstance_createdAt, "f"),
|
|
112
|
+
updatedAt: __classPrivateFieldGet(this, _ReportInstance_updatedAt, "f"),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
toProps() {
|
|
116
|
+
return {
|
|
117
|
+
id: this.id.toPrimitives(),
|
|
118
|
+
templateId: __classPrivateFieldGet(this, _ReportInstance_templateId, "f"),
|
|
119
|
+
templateVersion: __classPrivateFieldGet(this, _ReportInstance_templateVersion, "f"),
|
|
120
|
+
carbonClientId: __classPrivateFieldGet(this, _ReportInstance_carbonClientId, "f"),
|
|
121
|
+
period: __classPrivateFieldGet(this, _ReportInstance_period, "f"),
|
|
122
|
+
filters: __classPrivateFieldGet(this, _ReportInstance_filters, "f"),
|
|
123
|
+
questionnaireAnswers: __classPrivateFieldGet(this, _ReportInstance_questionnaireAnswers, "f"),
|
|
124
|
+
dataSnapshot: __classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f"),
|
|
125
|
+
generatedContent: __classPrivateFieldGet(this, _ReportInstance_generatedContent, "f"),
|
|
126
|
+
pdfUrl: __classPrivateFieldGet(this, _ReportInstance_pdfUrl, "f"),
|
|
127
|
+
status: __classPrivateFieldGet(this, _ReportInstance_status, "f"),
|
|
128
|
+
approvals: __classPrivateFieldGet(this, _ReportInstance_approvals, "f"),
|
|
129
|
+
aiExecutions: __classPrivateFieldGet(this, _ReportInstance_aiExecutions, "f"),
|
|
130
|
+
createdAt: __classPrivateFieldGet(this, _ReportInstance_createdAt, "f"),
|
|
131
|
+
updatedAt: __classPrivateFieldGet(this, _ReportInstance_updatedAt, "f"),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Getters
|
|
135
|
+
getId() {
|
|
136
|
+
return this.id.toPrimitives();
|
|
137
|
+
}
|
|
138
|
+
getTemplateId() {
|
|
139
|
+
return __classPrivateFieldGet(this, _ReportInstance_templateId, "f");
|
|
140
|
+
}
|
|
141
|
+
getTemplateVersion() {
|
|
142
|
+
return __classPrivateFieldGet(this, _ReportInstance_templateVersion, "f");
|
|
143
|
+
}
|
|
144
|
+
getCarbonClientId() {
|
|
145
|
+
return __classPrivateFieldGet(this, _ReportInstance_carbonClientId, "f");
|
|
146
|
+
}
|
|
147
|
+
getPeriod() {
|
|
148
|
+
return __classPrivateFieldGet(this, _ReportInstance_period, "f");
|
|
149
|
+
}
|
|
150
|
+
getFilters() {
|
|
151
|
+
return __classPrivateFieldGet(this, _ReportInstance_filters, "f");
|
|
152
|
+
}
|
|
153
|
+
getQuestionnaireAnswers() {
|
|
154
|
+
return [...__classPrivateFieldGet(this, _ReportInstance_questionnaireAnswers, "f")];
|
|
155
|
+
}
|
|
156
|
+
getDataSnapshot() {
|
|
157
|
+
return __classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f");
|
|
158
|
+
}
|
|
159
|
+
getGeneratedContent() {
|
|
160
|
+
return __classPrivateFieldGet(this, _ReportInstance_generatedContent, "f");
|
|
161
|
+
}
|
|
162
|
+
getPdfUrl() {
|
|
163
|
+
return __classPrivateFieldGet(this, _ReportInstance_pdfUrl, "f");
|
|
164
|
+
}
|
|
165
|
+
getStatus() {
|
|
166
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f");
|
|
167
|
+
}
|
|
168
|
+
getApprovals() {
|
|
169
|
+
return [...__classPrivateFieldGet(this, _ReportInstance_approvals, "f")];
|
|
170
|
+
}
|
|
171
|
+
getAiExecutions() {
|
|
172
|
+
return [...__classPrivateFieldGet(this, _ReportInstance_aiExecutions, "f")];
|
|
173
|
+
}
|
|
174
|
+
getCreatedAt() {
|
|
175
|
+
return __classPrivateFieldGet(this, _ReportInstance_createdAt, "f");
|
|
176
|
+
}
|
|
177
|
+
getUpdatedAt() {
|
|
178
|
+
return __classPrivateFieldGet(this, _ReportInstance_updatedAt, "f");
|
|
179
|
+
}
|
|
180
|
+
// Status checks
|
|
181
|
+
isDraft() {
|
|
182
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.DRAFT;
|
|
183
|
+
}
|
|
184
|
+
isGenerating() {
|
|
185
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.GENERATING;
|
|
186
|
+
}
|
|
187
|
+
isPendingInternal() {
|
|
188
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.PENDING_INTERNAL;
|
|
189
|
+
}
|
|
190
|
+
isPendingClient() {
|
|
191
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.PENDING_CLIENT;
|
|
192
|
+
}
|
|
193
|
+
isApproved() {
|
|
194
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.APPROVED;
|
|
195
|
+
}
|
|
196
|
+
isPublished() {
|
|
197
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.PUBLISHED;
|
|
198
|
+
}
|
|
199
|
+
isRejected() {
|
|
200
|
+
return __classPrivateFieldGet(this, _ReportInstance_status, "f") === ReportInstanceStatus_1.ReportInstanceStatus.REJECTED;
|
|
201
|
+
}
|
|
202
|
+
// Business logic - Capabilities
|
|
203
|
+
canBeGenerated() {
|
|
204
|
+
// Can only generate from DRAFT or REJECTED status
|
|
205
|
+
if (!this.isDraft() && !this.isRejected()) {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
// Must have data snapshot
|
|
209
|
+
if (!__classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f") || Object.keys(__classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f")).length === 0) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
// Must have answered all required questionnaire questions (if any)
|
|
213
|
+
// TODO: Add validation for required questionnaire answers
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
canBeApprovedInternally() {
|
|
217
|
+
// Can only approve internally if status is PENDING_INTERNAL
|
|
218
|
+
if (!this.isPendingInternal()) {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
// Must have generated content
|
|
222
|
+
if (!this.hasGeneratedContent()) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
canBeApprovedByClient() {
|
|
228
|
+
// Can only approve by client if status is PENDING_CLIENT
|
|
229
|
+
if (!this.isPendingClient()) {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
// Must have generated content
|
|
233
|
+
if (!this.hasGeneratedContent()) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
canBePublished() {
|
|
239
|
+
// Can only publish if APPROVED
|
|
240
|
+
if (!this.isApproved()) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
// Must have generated content
|
|
244
|
+
if (!this.hasGeneratedContent()) {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
canBeRejected() {
|
|
250
|
+
// Can reject if PENDING_INTERNAL or PENDING_CLIENT
|
|
251
|
+
return this.isPendingInternal() || this.isPendingClient();
|
|
252
|
+
}
|
|
253
|
+
// Business logic - Actions
|
|
254
|
+
startGeneration() {
|
|
255
|
+
if (!this.canBeGenerated()) {
|
|
256
|
+
const reason = this.isDraft() || this.isRejected()
|
|
257
|
+
? 'Data snapshot is missing or empty'
|
|
258
|
+
: `Invalid status for generation: ${__classPrivateFieldGet(this, _ReportInstance_status, "f")}`;
|
|
259
|
+
throw ReportInstanceCannotBeGeneratedError_1.ReportInstanceCannotBeGeneratedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), reason);
|
|
260
|
+
}
|
|
261
|
+
__classPrivateFieldSet(this, _ReportInstance_status, ReportInstanceStatus_1.ReportInstanceStatus.GENERATING, "f");
|
|
262
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
263
|
+
}
|
|
264
|
+
completeGeneration(generatedContent) {
|
|
265
|
+
if (!this.isGenerating()) {
|
|
266
|
+
throw ReportInstanceInvalidStatusTransitionError_1.ReportInstanceInvalidStatusTransitionError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), ReportInstanceStatus_1.ReportInstanceStatus.PENDING_INTERNAL);
|
|
267
|
+
}
|
|
268
|
+
__classPrivateFieldSet(this, _ReportInstance_generatedContent, generatedContent, "f");
|
|
269
|
+
__classPrivateFieldSet(this, _ReportInstance_status, ReportInstanceStatus_1.ReportInstanceStatus.PENDING_INTERNAL, "f");
|
|
270
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
271
|
+
}
|
|
272
|
+
approveInternally(approverUserId, comments) {
|
|
273
|
+
if (!this.canBeApprovedInternally()) {
|
|
274
|
+
const reason = !this.isPendingInternal()
|
|
275
|
+
? `Invalid status: ${__classPrivateFieldGet(this, _ReportInstance_status, "f")}`
|
|
276
|
+
: 'Missing generated content';
|
|
277
|
+
throw ReportInstanceCannotBeApprovedInternallyError_1.ReportInstanceCannotBeApprovedInternallyError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), reason);
|
|
278
|
+
}
|
|
279
|
+
const approval = {
|
|
280
|
+
approvedBy: approverUserId,
|
|
281
|
+
role: 'INTERNAL',
|
|
282
|
+
approvedAt: new Date().toISOString(),
|
|
283
|
+
comments: comments || null,
|
|
284
|
+
decision: 'APPROVED',
|
|
285
|
+
};
|
|
286
|
+
__classPrivateFieldGet(this, _ReportInstance_approvals, "f").push(approval);
|
|
287
|
+
// Move to client approval or approved
|
|
288
|
+
__classPrivateFieldSet(this, _ReportInstance_status, this.requiresClientApproval()
|
|
289
|
+
? ReportInstanceStatus_1.ReportInstanceStatus.PENDING_CLIENT
|
|
290
|
+
: ReportInstanceStatus_1.ReportInstanceStatus.APPROVED, "f");
|
|
291
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
292
|
+
}
|
|
293
|
+
approveByClient(approverUserId, comments) {
|
|
294
|
+
if (!this.canBeApprovedByClient()) {
|
|
295
|
+
const reason = !this.isPendingClient()
|
|
296
|
+
? `Invalid status: ${__classPrivateFieldGet(this, _ReportInstance_status, "f")}`
|
|
297
|
+
: 'Missing generated content';
|
|
298
|
+
throw ReportInstanceCannotBeApprovedByClientError_1.ReportInstanceCannotBeApprovedByClientError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), reason);
|
|
299
|
+
}
|
|
300
|
+
const approval = {
|
|
301
|
+
approvedBy: approverUserId,
|
|
302
|
+
role: 'CLIENT',
|
|
303
|
+
approvedAt: new Date().toISOString(),
|
|
304
|
+
comments: comments || null,
|
|
305
|
+
decision: 'APPROVED',
|
|
306
|
+
};
|
|
307
|
+
__classPrivateFieldGet(this, _ReportInstance_approvals, "f").push(approval);
|
|
308
|
+
__classPrivateFieldSet(this, _ReportInstance_status, ReportInstanceStatus_1.ReportInstanceStatus.APPROVED, "f");
|
|
309
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
310
|
+
}
|
|
311
|
+
reject(rejectorUserId, reason) {
|
|
312
|
+
if (!this.canBeRejected()) {
|
|
313
|
+
throw ReportInstanceCannotBeRejectedError_1.ReportInstanceCannotBeRejectedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), `Invalid status for rejection: ${__classPrivateFieldGet(this, _ReportInstance_status, "f")}`);
|
|
314
|
+
}
|
|
315
|
+
const approval = {
|
|
316
|
+
approvedBy: rejectorUserId,
|
|
317
|
+
role: this.isPendingClient() ? 'CLIENT' : 'INTERNAL',
|
|
318
|
+
approvedAt: new Date().toISOString(),
|
|
319
|
+
comments: reason,
|
|
320
|
+
decision: 'REJECTED',
|
|
321
|
+
};
|
|
322
|
+
__classPrivateFieldGet(this, _ReportInstance_approvals, "f").push(approval);
|
|
323
|
+
__classPrivateFieldSet(this, _ReportInstance_status, ReportInstanceStatus_1.ReportInstanceStatus.REJECTED, "f");
|
|
324
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
325
|
+
}
|
|
326
|
+
publish(pdfUrl) {
|
|
327
|
+
if (!this.canBePublished()) {
|
|
328
|
+
const reason = !this.isApproved()
|
|
329
|
+
? `Invalid status: ${__classPrivateFieldGet(this, _ReportInstance_status, "f")}`
|
|
330
|
+
: 'Missing generated content';
|
|
331
|
+
throw ReportInstanceCannotBePublishedError_1.ReportInstanceCannotBePublishedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportInstance_status, "f"), reason);
|
|
332
|
+
}
|
|
333
|
+
__classPrivateFieldSet(this, _ReportInstance_pdfUrl, pdfUrl, "f");
|
|
334
|
+
__classPrivateFieldSet(this, _ReportInstance_status, ReportInstanceStatus_1.ReportInstanceStatus.PUBLISHED, "f");
|
|
335
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
336
|
+
}
|
|
337
|
+
addAiExecution(execution) {
|
|
338
|
+
__classPrivateFieldGet(this, _ReportInstance_aiExecutions, "f").push(execution);
|
|
339
|
+
__classPrivateFieldSet(this, _ReportInstance_updatedAt, new Date().toISOString(), "f");
|
|
340
|
+
}
|
|
341
|
+
// Helper methods
|
|
342
|
+
hasGeneratedContent() {
|
|
343
|
+
return __classPrivateFieldGet(this, _ReportInstance_generatedContent, "f") !== null && Object.keys(__classPrivateFieldGet(this, _ReportInstance_generatedContent, "f")).length > 0;
|
|
344
|
+
}
|
|
345
|
+
hasPdf() {
|
|
346
|
+
return __classPrivateFieldGet(this, _ReportInstance_pdfUrl, "f") !== null && __classPrivateFieldGet(this, _ReportInstance_pdfUrl, "f").trim() !== '';
|
|
347
|
+
}
|
|
348
|
+
requiresClientApproval() {
|
|
349
|
+
// TODO: This should be determined by the template's requiresClientApproval flag
|
|
350
|
+
// For now, we assume client approval is always required
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
getApprovalCount() {
|
|
354
|
+
return __classPrivateFieldGet(this, _ReportInstance_approvals, "f").length;
|
|
355
|
+
}
|
|
356
|
+
hasInternalApproval() {
|
|
357
|
+
return __classPrivateFieldGet(this, _ReportInstance_approvals, "f").some((approval) => approval.role === 'INTERNAL' && approval.decision === 'APPROVED');
|
|
358
|
+
}
|
|
359
|
+
hasClientApproval() {
|
|
360
|
+
return __classPrivateFieldGet(this, _ReportInstance_approvals, "f").some((approval) => approval.role === 'CLIENT' && approval.decision === 'APPROVED');
|
|
361
|
+
}
|
|
362
|
+
getDataSnapshotHash() {
|
|
363
|
+
// TODO: Implement hash calculation from dataSnapshot
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
getTotalAiExecutions() {
|
|
367
|
+
return __classPrivateFieldGet(this, _ReportInstance_aiExecutions, "f").length;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
exports.ReportInstance = ReportInstance;
|
|
371
|
+
_ReportInstance_templateId = new WeakMap(), _ReportInstance_templateVersion = new WeakMap(), _ReportInstance_carbonClientId = new WeakMap(), _ReportInstance_period = new WeakMap(), _ReportInstance_filters = new WeakMap(), _ReportInstance_questionnaireAnswers = new WeakMap(), _ReportInstance_dataSnapshot = new WeakMap(), _ReportInstance_generatedContent = new WeakMap(), _ReportInstance_pdfUrl = new WeakMap(), _ReportInstance_status = new WeakMap(), _ReportInstance_approvals = new WeakMap(), _ReportInstance_aiExecutions = new WeakMap(), _ReportInstance_createdAt = new WeakMap(), _ReportInstance_updatedAt = new WeakMap();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceStatus = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Report Instance Status enumeration
|
|
6
|
+
* Defines the lifecycle status of a report instance
|
|
7
|
+
*/
|
|
8
|
+
var ReportInstanceStatus;
|
|
9
|
+
(function (ReportInstanceStatus) {
|
|
10
|
+
/**
|
|
11
|
+
* Draft - Report instance created but not yet generated
|
|
12
|
+
*/
|
|
13
|
+
ReportInstanceStatus["DRAFT"] = "DRAFT";
|
|
14
|
+
/**
|
|
15
|
+
* Generating - AI is currently generating report content
|
|
16
|
+
*/
|
|
17
|
+
ReportInstanceStatus["GENERATING"] = "GENERATING";
|
|
18
|
+
/**
|
|
19
|
+
* Pending Internal - Waiting for internal approval
|
|
20
|
+
*/
|
|
21
|
+
ReportInstanceStatus["PENDING_INTERNAL"] = "PENDING_INTERNAL";
|
|
22
|
+
/**
|
|
23
|
+
* Pending Client - Waiting for client approval
|
|
24
|
+
*/
|
|
25
|
+
ReportInstanceStatus["PENDING_CLIENT"] = "PENDING_CLIENT";
|
|
26
|
+
/**
|
|
27
|
+
* Approved - Report approved and ready for publication
|
|
28
|
+
*/
|
|
29
|
+
ReportInstanceStatus["APPROVED"] = "APPROVED";
|
|
30
|
+
/**
|
|
31
|
+
* Published - Report published and PDF generated
|
|
32
|
+
*/
|
|
33
|
+
ReportInstanceStatus["PUBLISHED"] = "PUBLISHED";
|
|
34
|
+
/**
|
|
35
|
+
* Rejected - Report rejected, needs revision
|
|
36
|
+
*/
|
|
37
|
+
ReportInstanceStatus["REJECTED"] = "REJECTED";
|
|
38
|
+
})(ReportInstanceStatus || (exports.ReportInstanceStatus = ReportInstanceStatus = {}));
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceCannotBeApprovedByClientError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceCannotBeApprovedByClientError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, reason) {
|
|
8
|
+
const technicalMessage = `Report instance '${instanceId}' cannot be approved by client. Current status: ${currentStatus}. Reason: ${reason}`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
reason,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Ensure the report instance is in PENDING_CLIENT status before attempting client approval',
|
|
17
|
+
'Verify that the report has received internal approval first',
|
|
18
|
+
'Check that the approver is authorized to represent the client',
|
|
19
|
+
`Review the report instance '${instanceId}' approval workflow`,
|
|
20
|
+
'Confirm that the template requires client approval',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_CANNOT_BE_APPROVED_BY_CLIENT, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceCannotBeApprovedByClientError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, reason) {
|
|
26
|
+
return new ReportInstanceCannotBeApprovedByClientError(instanceId, currentStatus, reason);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceCannotBeApprovedByClientError = ReportInstanceCannotBeApprovedByClientError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceCannotBeApprovedInternallyError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceCannotBeApprovedInternallyError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, reason) {
|
|
8
|
+
const technicalMessage = `Report instance '${instanceId}' cannot be approved internally. Current status: ${currentStatus}. Reason: ${reason}`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
reason,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Ensure the report instance is in PENDING_INTERNAL status before attempting internal approval',
|
|
17
|
+
'Verify that the report content has been properly generated',
|
|
18
|
+
'Check that the approver has the necessary permissions for internal approval',
|
|
19
|
+
`Review the report instance '${instanceId}' workflow state`,
|
|
20
|
+
'Confirm that all required validations have passed',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_CANNOT_BE_APPROVED_INTERNALLY, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceCannotBeApprovedInternallyError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, reason) {
|
|
26
|
+
return new ReportInstanceCannotBeApprovedInternallyError(instanceId, currentStatus, reason);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceCannotBeApprovedInternallyError = ReportInstanceCannotBeApprovedInternallyError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceCannotBeGeneratedError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceCannotBeGeneratedError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, reason) {
|
|
8
|
+
const technicalMessage = `Report instance '${instanceId}' cannot be generated. Current status: ${currentStatus}. Reason: ${reason}`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
reason,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Ensure the report instance is in DRAFT or REJECTED status before attempting generation',
|
|
17
|
+
'Verify that the data snapshot has been properly created and contains valid data',
|
|
18
|
+
'Check that all required questionnaire answers have been provided',
|
|
19
|
+
`Review the report instance '${instanceId}' configuration and requirements`,
|
|
20
|
+
'Confirm that the associated template is active and properly configured',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_CANNOT_BE_GENERATED, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceCannotBeGeneratedError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, reason) {
|
|
26
|
+
return new ReportInstanceCannotBeGeneratedError(instanceId, currentStatus, reason);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceCannotBeGeneratedError = ReportInstanceCannotBeGeneratedError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceCannotBePublishedError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceCannotBePublishedError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, reason) {
|
|
8
|
+
const technicalMessage = `Report instance '${instanceId}' cannot be published. Current status: ${currentStatus}. Reason: ${reason}`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
reason,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Ensure the report instance is in APPROVED status before attempting to publish',
|
|
17
|
+
'Verify that the PDF has been successfully generated',
|
|
18
|
+
'Check that all required approvals have been obtained',
|
|
19
|
+
`Review the report instance '${instanceId}' publication requirements`,
|
|
20
|
+
'Confirm that the generated content is valid and complete',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_CANNOT_BE_PUBLISHED, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceCannotBePublishedError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, reason) {
|
|
26
|
+
return new ReportInstanceCannotBePublishedError(instanceId, currentStatus, reason);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceCannotBePublishedError = ReportInstanceCannotBePublishedError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceCannotBeRejectedError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceCannotBeRejectedError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, reason) {
|
|
8
|
+
const technicalMessage = `Report instance '${instanceId}' cannot be rejected. Current status: ${currentStatus}. Reason: ${reason}`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
reason,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Ensure the report instance is in PENDING_INTERNAL or PENDING_CLIENT status before attempting rejection',
|
|
17
|
+
'Verify that the rejector has the necessary permissions',
|
|
18
|
+
'Provide a clear reason for the rejection',
|
|
19
|
+
`Review the report instance '${instanceId}' current workflow state`,
|
|
20
|
+
'Check that the rejection workflow is properly configured',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_CANNOT_BE_REJECTED, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceCannotBeRejectedError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, reason) {
|
|
26
|
+
return new ReportInstanceCannotBeRejectedError(instanceId, currentStatus, reason);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceCannotBeRejectedError = ReportInstanceCannotBeRejectedError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportInstanceInvalidStatusTransitionError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class ReportInstanceInvalidStatusTransitionError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(instanceId, currentStatus, targetStatus) {
|
|
8
|
+
const technicalMessage = `Invalid status transition for report instance '${instanceId}'. Cannot transition from '${currentStatus}' to '${targetStatus}'.`;
|
|
9
|
+
const context = {
|
|
10
|
+
instanceId,
|
|
11
|
+
currentStatus,
|
|
12
|
+
targetStatus,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
};
|
|
15
|
+
const suggestions = [
|
|
16
|
+
'Follow the valid status flow: DRAFT → GENERATING → PENDING_INTERNAL → (PENDING_CLIENT) → APPROVED → PUBLISHED',
|
|
17
|
+
`Current status '${currentStatus}' does not allow transition to '${targetStatus}'`,
|
|
18
|
+
'Review the report instance workflow state machine',
|
|
19
|
+
'Check that all required steps have been completed before attempting the transition',
|
|
20
|
+
`Verify the report instance '${instanceId}' meets all requirements for the target status`,
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.REPORT_INSTANCE_INVALID_STATUS_TRANSITION, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'ReportInstanceInvalidStatusTransitionError';
|
|
24
|
+
}
|
|
25
|
+
static create(instanceId, currentStatus, targetStatus) {
|
|
26
|
+
return new ReportInstanceInvalidStatusTransitionError(instanceId, currentStatus, targetStatus);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReportInstanceInvalidStatusTransitionError = ReportInstanceInvalidStatusTransitionError;
|