@carbonbox/domain 0.36.1 → 0.38.0
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/emission-calculation-formulas/emission-factors/domain/entity/EmissionFactor.js +29 -2
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/enums/MethodologicalTier.js +22 -0
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidIpccCodeError.js +30 -0
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidMethodologicalTierError.js +32 -0
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccCode.js +42 -0
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccSubcategory.js +23 -0
- package/build/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorMethodologicalTier.js +60 -0
- package/build/carbonbox/reporting/report-instances/domain/entity/ReportInstance.js +3 -2
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/entity/IReportPreparationQuestionnaire.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/entity/ReportPreparationQuestionnaire.js +284 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/enums/ReportPreparationQuestionnaireStatus.js +22 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/DuplicatePreparationQuestionError.js +29 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationAnswerError.js +33 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationQuestionError.js +30 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/PreparationQuestionNotFoundError.js +29 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeCompletedError.js +31 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeModifiedError.js +29 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeReopenedError.js +28 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/TemplateQuestionCannotBeRemovedError.js +29 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/repository/IReportPreparationQuestionnaireRepository.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationAnswerPrimitives.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationQuestionPrimitives.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireCompletionPrimitives.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnairePrimitives.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireProps.js +2 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationAnswer.js +56 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationQuestion.js +173 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireCompletion.js +47 -0
- package/build/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireId.js +52 -0
- package/build/carbonbox/reporting/shared/domain/enums/ClientInputFieldType.js +34 -0
- package/build/carbonbox/reporting/shared/domain/enums/QuestionnaireQuestionOrigin.js +18 -0
- package/build/carbonbox/reporting/shared/domain/exceptions/InvalidReportBlockClientInputError.js +31 -0
- package/build/carbonbox/reporting/shared/domain/types/ReportBlockClientInputPrimitives.js +2 -0
- package/build/carbonbox/reporting/shared/domain/value-objects/ReportSection.js +43 -0
- package/build/carbonbox/shared/domain/authorization/enums/Permission.js +6 -0
- package/build/carbonbox/shared/domain/enums/ErrorCode.js +12 -1
- package/build/carbonbox/shared/domain/enums/SemanticUuidPrefix.js +2 -0
- package/build/main/index.js +64 -14
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/entity/EmissionFactor.d.ts +6 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/entity/EmissionFactor.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/entity/IEmissionFactor.d.ts +6 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/entity/IEmissionFactor.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/enums/MethodologicalTier.d.ts +19 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/enums/MethodologicalTier.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidIpccCodeError.d.ts +7 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidIpccCodeError.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidMethodologicalTierError.d.ts +8 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/exceptions/InvalidMethodologicalTierError.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/types/EmissionFactorPrimitives.d.ts +4 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/types/EmissionFactorPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/types/EmissionFactorProps.d.ts +4 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/types/EmissionFactorProps.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccCode.d.ts +18 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccCode.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccSubcategory.d.ts +9 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorIpccSubcategory.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorMethodologicalTier.d.ts +27 -0
- package/build/types/carbonbox/emission-calculation-formulas/emission-factors/domain/value-objects/EmissionFactorMethodologicalTier.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-instances/domain/entity/ReportInstance.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/entity/IReportPreparationQuestionnaire.d.ts +28 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/entity/IReportPreparationQuestionnaire.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/entity/ReportPreparationQuestionnaire.d.ts +55 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/entity/ReportPreparationQuestionnaire.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/enums/ReportPreparationQuestionnaireStatus.d.ts +19 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/enums/ReportPreparationQuestionnaireStatus.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/DuplicatePreparationQuestionError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/DuplicatePreparationQuestionError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationAnswerError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationAnswerError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationQuestionError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/InvalidPreparationQuestionError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/PreparationQuestionNotFoundError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/PreparationQuestionNotFoundError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeCompletedError.d.ts +8 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeCompletedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeModifiedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeModifiedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeReopenedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/ReportPreparationQuestionnaireCannotBeReopenedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/TemplateQuestionCannotBeRemovedError.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/exceptions/TemplateQuestionCannotBeRemovedError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/repository/IReportPreparationQuestionnaireRepository.d.ts +61 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/repository/IReportPreparationQuestionnaireRepository.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationAnswerPrimitives.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationAnswerPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationQuestionPrimitives.d.ts +17 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/PreparationQuestionPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireCompletionPrimitives.d.ts +7 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireCompletionPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnairePrimitives.d.ts +17 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnairePrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireProps.d.ts +15 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/types/ReportPreparationQuestionnaireProps.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationAnswer.d.ts +16 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationAnswer.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationQuestion.d.ts +33 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/PreparationQuestion.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireCompletion.d.ts +17 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireCompletion.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireId.d.ts +14 -0
- package/build/types/carbonbox/reporting/report-preparation-questionnaires/domain/value-objects/ReportPreparationQuestionnaireId.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/enums/ClientInputFieldType.d.ts +31 -0
- package/build/types/carbonbox/reporting/shared/domain/enums/ClientInputFieldType.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/enums/QuestionnaireQuestionOrigin.d.ts +15 -0
- package/build/types/carbonbox/reporting/shared/domain/enums/QuestionnaireQuestionOrigin.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/exceptions/InvalidReportBlockClientInputError.d.ts +7 -0
- package/build/types/carbonbox/reporting/shared/domain/exceptions/InvalidReportBlockClientInputError.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/types/QuestionnaireAnswerPrimitives.d.ts +8 -2
- package/build/types/carbonbox/reporting/shared/domain/types/QuestionnaireAnswerPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/shared/domain/types/ReportBlockClientInputPrimitives.d.ts +14 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ReportBlockClientInputPrimitives.d.ts.map +1 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ReportBlockPrimitives.d.ts +2 -0
- package/build/types/carbonbox/reporting/shared/domain/types/ReportBlockPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/shared/domain/value-objects/ReportSection.d.ts +11 -0
- package/build/types/carbonbox/reporting/shared/domain/value-objects/ReportSection.d.ts.map +1 -1
- package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts +7 -1
- package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts.map +1 -1
- 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/carbonbox/shared/domain/enums/SemanticUuidPrefix.d.ts +3 -1
- package/build/types/carbonbox/shared/domain/enums/SemanticUuidPrefix.d.ts.map +1 -1
- package/build/types/main/index.d.ts +31 -0
- package/build/types/main/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
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
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _EmissionFactor_code, _EmissionFactor_name, _EmissionFactor_description, _EmissionFactor_greenhouseGasValues, _EmissionFactor_informationSource;
|
|
13
|
+
var _EmissionFactor_code, _EmissionFactor_name, _EmissionFactor_description, _EmissionFactor_greenhouseGasValues, _EmissionFactor_informationSource, _EmissionFactor_ipccCode, _EmissionFactor_ipccSubcategory, _EmissionFactor_methodologicalTier;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.EmissionFactor = void 0;
|
|
16
16
|
const AggregateRoot_1 = require("../../../../shared/domain/entities/AggregateRoot");
|
|
@@ -19,6 +19,9 @@ const EmissionFactorDescription_1 = require("../value-objects/EmissionFactorDesc
|
|
|
19
19
|
const EmissionFactorGreenhouseGasValues_1 = require("../value-objects/EmissionFactorGreenhouseGasValues");
|
|
20
20
|
const EmissionFactorId_1 = require("../value-objects/EmissionFactorId");
|
|
21
21
|
const EmissionFactorInformationSource_1 = require("../value-objects/EmissionFactorInformationSource");
|
|
22
|
+
const EmissionFactorIpccCode_1 = require("../value-objects/EmissionFactorIpccCode");
|
|
23
|
+
const EmissionFactorIpccSubcategory_1 = require("../value-objects/EmissionFactorIpccSubcategory");
|
|
24
|
+
const EmissionFactorMethodologicalTier_1 = require("../value-objects/EmissionFactorMethodologicalTier");
|
|
22
25
|
const EmissionFactorName_1 = require("../value-objects/EmissionFactorName");
|
|
23
26
|
class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
24
27
|
constructor(props, skipDomainValidation) {
|
|
@@ -31,6 +34,9 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
31
34
|
_EmissionFactor_description.set(this, void 0);
|
|
32
35
|
_EmissionFactor_greenhouseGasValues.set(this, void 0);
|
|
33
36
|
_EmissionFactor_informationSource.set(this, void 0);
|
|
37
|
+
_EmissionFactor_ipccCode.set(this, void 0);
|
|
38
|
+
_EmissionFactor_ipccSubcategory.set(this, void 0);
|
|
39
|
+
_EmissionFactor_methodologicalTier.set(this, void 0);
|
|
34
40
|
if (skipDomainValidation === false) {
|
|
35
41
|
// Initialize with domain validation
|
|
36
42
|
__classPrivateFieldSet(this, _EmissionFactor_code, EmissionFactorCode_1.EmissionFactorCode.create(props.code), "f");
|
|
@@ -38,6 +44,9 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
38
44
|
__classPrivateFieldSet(this, _EmissionFactor_description, EmissionFactorDescription_1.EmissionFactorDescription.create(props.description), "f");
|
|
39
45
|
__classPrivateFieldSet(this, _EmissionFactor_greenhouseGasValues, EmissionFactorGreenhouseGasValues_1.EmissionFactorGreenhouseGasValues.create(props.greenhouseGasValues), "f");
|
|
40
46
|
__classPrivateFieldSet(this, _EmissionFactor_informationSource, EmissionFactorInformationSource_1.EmissionFactorInformationSource.create(props.informationSource), "f");
|
|
47
|
+
__classPrivateFieldSet(this, _EmissionFactor_ipccCode, EmissionFactorIpccCode_1.EmissionFactorIpccCode.create(props.ipccCode), "f");
|
|
48
|
+
__classPrivateFieldSet(this, _EmissionFactor_ipccSubcategory, EmissionFactorIpccSubcategory_1.EmissionFactorIpccSubcategory.create(props.ipccSubcategory), "f");
|
|
49
|
+
__classPrivateFieldSet(this, _EmissionFactor_methodologicalTier, EmissionFactorMethodologicalTier_1.EmissionFactorMethodologicalTier.create(props.methodologicalTier), "f");
|
|
41
50
|
}
|
|
42
51
|
else {
|
|
43
52
|
// Initialize from primitives (no domain validation)
|
|
@@ -46,6 +55,9 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
46
55
|
__classPrivateFieldSet(this, _EmissionFactor_description, EmissionFactorDescription_1.EmissionFactorDescription.fromPrimitives(props.description), "f");
|
|
47
56
|
__classPrivateFieldSet(this, _EmissionFactor_greenhouseGasValues, EmissionFactorGreenhouseGasValues_1.EmissionFactorGreenhouseGasValues.fromPrimitives(props.greenhouseGasValues), "f");
|
|
48
57
|
__classPrivateFieldSet(this, _EmissionFactor_informationSource, EmissionFactorInformationSource_1.EmissionFactorInformationSource.fromPrimitives(props.informationSource), "f");
|
|
58
|
+
__classPrivateFieldSet(this, _EmissionFactor_ipccCode, EmissionFactorIpccCode_1.EmissionFactorIpccCode.fromPrimitives(props.ipccCode), "f");
|
|
59
|
+
__classPrivateFieldSet(this, _EmissionFactor_ipccSubcategory, EmissionFactorIpccSubcategory_1.EmissionFactorIpccSubcategory.fromPrimitives(props.ipccSubcategory), "f");
|
|
60
|
+
__classPrivateFieldSet(this, _EmissionFactor_methodologicalTier, EmissionFactorMethodologicalTier_1.EmissionFactorMethodologicalTier.fromPrimitives(props.methodologicalTier), "f");
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
63
|
static create(props) {
|
|
@@ -59,6 +71,9 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
59
71
|
description: primitives.description,
|
|
60
72
|
greenhouseGasValues: primitives.greenhouseGasValues,
|
|
61
73
|
informationSource: primitives.informationSource,
|
|
74
|
+
ipccCode: primitives.ipccCode,
|
|
75
|
+
ipccSubcategory: primitives.ipccSubcategory,
|
|
76
|
+
methodologicalTier: primitives.methodologicalTier,
|
|
62
77
|
};
|
|
63
78
|
return new EmissionFactor(props, true);
|
|
64
79
|
}
|
|
@@ -70,6 +85,9 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
70
85
|
description: __classPrivateFieldGet(this, _EmissionFactor_description, "f").toPrimitives(),
|
|
71
86
|
greenhouseGasValues: __classPrivateFieldGet(this, _EmissionFactor_greenhouseGasValues, "f").toPrimitives(),
|
|
72
87
|
informationSource: __classPrivateFieldGet(this, _EmissionFactor_informationSource, "f").toPrimitives(),
|
|
88
|
+
ipccCode: __classPrivateFieldGet(this, _EmissionFactor_ipccCode, "f").toPrimitives(),
|
|
89
|
+
ipccSubcategory: __classPrivateFieldGet(this, _EmissionFactor_ipccSubcategory, "f").toPrimitives(),
|
|
90
|
+
methodologicalTier: __classPrivateFieldGet(this, _EmissionFactor_methodologicalTier, "f").toEnum(),
|
|
73
91
|
};
|
|
74
92
|
}
|
|
75
93
|
get code() {
|
|
@@ -87,6 +105,15 @@ class EmissionFactor extends AggregateRoot_1.AggregateRoot {
|
|
|
87
105
|
get informationSource() {
|
|
88
106
|
return __classPrivateFieldGet(this, _EmissionFactor_informationSource, "f");
|
|
89
107
|
}
|
|
108
|
+
get ipccCode() {
|
|
109
|
+
return __classPrivateFieldGet(this, _EmissionFactor_ipccCode, "f");
|
|
110
|
+
}
|
|
111
|
+
get ipccSubcategory() {
|
|
112
|
+
return __classPrivateFieldGet(this, _EmissionFactor_ipccSubcategory, "f");
|
|
113
|
+
}
|
|
114
|
+
get methodologicalTier() {
|
|
115
|
+
return __classPrivateFieldGet(this, _EmissionFactor_methodologicalTier, "f");
|
|
116
|
+
}
|
|
90
117
|
}
|
|
91
118
|
exports.EmissionFactor = EmissionFactor;
|
|
92
|
-
_EmissionFactor_code = new WeakMap(), _EmissionFactor_name = new WeakMap(), _EmissionFactor_description = new WeakMap(), _EmissionFactor_greenhouseGasValues = new WeakMap(), _EmissionFactor_informationSource = new WeakMap();
|
|
119
|
+
_EmissionFactor_code = new WeakMap(), _EmissionFactor_name = new WeakMap(), _EmissionFactor_description = new WeakMap(), _EmissionFactor_greenhouseGasValues = new WeakMap(), _EmissionFactor_informationSource = new WeakMap(), _EmissionFactor_ipccCode = new WeakMap(), _EmissionFactor_ipccSubcategory = new WeakMap(), _EmissionFactor_methodologicalTier = new WeakMap();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MethodologicalTier = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* IPCC methodological tier of an emission factor
|
|
6
|
+
* Defines the level of detail and specificity of the emission factor source (IPCC 2006 Guidelines)
|
|
7
|
+
*/
|
|
8
|
+
var MethodologicalTier;
|
|
9
|
+
(function (MethodologicalTier) {
|
|
10
|
+
/**
|
|
11
|
+
* Tier 1 - IPCC default emission factors
|
|
12
|
+
*/
|
|
13
|
+
MethodologicalTier["TIER_1"] = "TIER_1";
|
|
14
|
+
/**
|
|
15
|
+
* Tier 2 - Country-specific emission factors
|
|
16
|
+
*/
|
|
17
|
+
MethodologicalTier["TIER_2"] = "TIER_2";
|
|
18
|
+
/**
|
|
19
|
+
* Tier 3 - Facility or plant-specific emission factors
|
|
20
|
+
*/
|
|
21
|
+
MethodologicalTier["TIER_3"] = "TIER_3";
|
|
22
|
+
})(MethodologicalTier || (exports.MethodologicalTier = MethodologicalTier = {}));
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidIpccCodeError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class InvalidIpccCodeError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(receivedValue) {
|
|
8
|
+
const technicalMessage = `Invalid IPCC code: '${receivedValue}'. IPCC codes must follow the IPCC 2006 category format (e.g. 1A3b, 1A4a, 2B1, 4A).`;
|
|
9
|
+
const context = {
|
|
10
|
+
receivedValue,
|
|
11
|
+
receivedLength: receivedValue.length,
|
|
12
|
+
timestamp: new Date().toISOString(),
|
|
13
|
+
};
|
|
14
|
+
const suggestions = [
|
|
15
|
+
'Provide an IPCC 2006 category code such as 1A3b or 1A4a',
|
|
16
|
+
'Verify that the code starts with the sector number (1 to 6) followed by the category letter',
|
|
17
|
+
'Check the IPCC 2006 Guidelines for National Greenhouse Gas Inventories for the category list',
|
|
18
|
+
'Review the emission factor configuration to ensure the IPCC code is correctly assigned',
|
|
19
|
+
];
|
|
20
|
+
super(ErrorCode_1.ErrorCode.INVALID_IPCC_CODE, technicalMessage, context, suggestions);
|
|
21
|
+
this.name = 'InvalidIpccCodeError';
|
|
22
|
+
}
|
|
23
|
+
static create(receivedValue) {
|
|
24
|
+
return new InvalidIpccCodeError(receivedValue);
|
|
25
|
+
}
|
|
26
|
+
logError() {
|
|
27
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.InvalidIpccCodeError = InvalidIpccCodeError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidMethodologicalTierError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
class InvalidMethodologicalTierError extends CodedRootError_1.CodedRootError {
|
|
7
|
+
constructor(receivedValue, validTiers) {
|
|
8
|
+
const validTiersList = validTiers.join(', ');
|
|
9
|
+
const technicalMessage = `Invalid methodological tier value '${receivedValue}': must be one of ${validTiersList}.`;
|
|
10
|
+
const context = {
|
|
11
|
+
receivedValue,
|
|
12
|
+
validTiers,
|
|
13
|
+
validTiersList,
|
|
14
|
+
timestamp: new Date().toISOString(),
|
|
15
|
+
};
|
|
16
|
+
const suggestions = [
|
|
17
|
+
`Use one of the valid methodological tiers: ${validTiersList}`,
|
|
18
|
+
'Verify that the tier value is correctly spelled',
|
|
19
|
+
'Check the MethodologicalTier enum for valid options',
|
|
20
|
+
'Review the IPCC 2006 Guidelines for the tier definitions (Tier 1 default, Tier 2 country-specific, Tier 3 facility-specific)',
|
|
21
|
+
];
|
|
22
|
+
super(ErrorCode_1.ErrorCode.INVALID_METHODOLOGICAL_TIER, technicalMessage, context, suggestions);
|
|
23
|
+
this.name = 'InvalidMethodologicalTierError';
|
|
24
|
+
}
|
|
25
|
+
static create(receivedValue, validTiers) {
|
|
26
|
+
return new InvalidMethodologicalTierError(receivedValue, validTiers);
|
|
27
|
+
}
|
|
28
|
+
logError() {
|
|
29
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.InvalidMethodologicalTierError = InvalidMethodologicalTierError;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmissionFactorIpccCode = void 0;
|
|
4
|
+
const String_1 = require("../../../../shared/domain/value-objects/String");
|
|
5
|
+
const InvalidIpccCodeError_1 = require("../exceptions/InvalidIpccCodeError");
|
|
6
|
+
class EmissionFactorIpccCode extends String_1.String {
|
|
7
|
+
constructor(value, skipDomainValidation) {
|
|
8
|
+
super(value, skipDomainValidation, EmissionFactorIpccCode.PROPERTY_NAME);
|
|
9
|
+
if (skipDomainValidation === false) {
|
|
10
|
+
EmissionFactorIpccCode.guardAgainstInvalidFormat(value);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
static create(value) {
|
|
14
|
+
String_1.String.guardAgainstEmptyValue(value, EmissionFactorIpccCode.PROPERTY_NAME);
|
|
15
|
+
String_1.String.guardAgainstInvalidType(value, EmissionFactorIpccCode.PROPERTY_NAME);
|
|
16
|
+
return new EmissionFactorIpccCode(value, false);
|
|
17
|
+
}
|
|
18
|
+
static fromPrimitives(primitive) {
|
|
19
|
+
const value = primitive;
|
|
20
|
+
return new EmissionFactorIpccCode(value, true);
|
|
21
|
+
}
|
|
22
|
+
static guardAgainstInvalidFormat(value) {
|
|
23
|
+
if (!EmissionFactorIpccCode.IPCC_CODE_REGEX.test(value)) {
|
|
24
|
+
throw InvalidIpccCodeError_1.InvalidIpccCodeError.create(value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static isValidIpccCode(value) {
|
|
28
|
+
return EmissionFactorIpccCode.IPCC_CODE_REGEX.test(value);
|
|
29
|
+
}
|
|
30
|
+
toPrimitives() {
|
|
31
|
+
return this.value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.EmissionFactorIpccCode = EmissionFactorIpccCode;
|
|
35
|
+
EmissionFactorIpccCode.PROPERTY_NAME = 'ipccCode';
|
|
36
|
+
/**
|
|
37
|
+
* IPCC 2006 category code format:
|
|
38
|
+
* sector (1-6) + optional category letter (A-H) + optional sub-category number (1-2 digits)
|
|
39
|
+
* + optional sub-sub-category letter (a-z) + optional roman numeral level.
|
|
40
|
+
* Examples: 1A, 1A3, 1A3b, 1A4a, 2B1, 4A, 1A1ai
|
|
41
|
+
*/
|
|
42
|
+
EmissionFactorIpccCode.IPCC_CODE_REGEX = /^[1-6](?:[A-Ha-h](?:[0-9]{1,2}(?:[a-z](?:[ivx]+)?)?)?)?$/;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmissionFactorIpccSubcategory = void 0;
|
|
4
|
+
const String_1 = require("../../../../shared/domain/value-objects/String");
|
|
5
|
+
class EmissionFactorIpccSubcategory extends String_1.String {
|
|
6
|
+
constructor(value, skipDomainValidation) {
|
|
7
|
+
super(value, skipDomainValidation, EmissionFactorIpccSubcategory.PROPERTY_NAME);
|
|
8
|
+
}
|
|
9
|
+
static create(value) {
|
|
10
|
+
String_1.String.guardAgainstEmptyValue(value, EmissionFactorIpccSubcategory.PROPERTY_NAME);
|
|
11
|
+
String_1.String.guardAgainstInvalidType(value, EmissionFactorIpccSubcategory.PROPERTY_NAME);
|
|
12
|
+
return new EmissionFactorIpccSubcategory(value, false);
|
|
13
|
+
}
|
|
14
|
+
static fromPrimitives(primitive) {
|
|
15
|
+
const value = primitive;
|
|
16
|
+
return new EmissionFactorIpccSubcategory(value, true);
|
|
17
|
+
}
|
|
18
|
+
toPrimitives() {
|
|
19
|
+
return this.value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.EmissionFactorIpccSubcategory = EmissionFactorIpccSubcategory;
|
|
23
|
+
EmissionFactorIpccSubcategory.PROPERTY_NAME = 'ipccSubcategory';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmissionFactorMethodologicalTier = void 0;
|
|
4
|
+
const String_1 = require("../../../../shared/domain/value-objects/String");
|
|
5
|
+
const MethodologicalTier_1 = require("../enums/MethodologicalTier");
|
|
6
|
+
const InvalidMethodologicalTierError_1 = require("../exceptions/InvalidMethodologicalTierError");
|
|
7
|
+
class EmissionFactorMethodologicalTier extends String_1.String {
|
|
8
|
+
constructor(value, skipDomainValidation) {
|
|
9
|
+
super(value, skipDomainValidation, EmissionFactorMethodologicalTier.PROPERTY_NAME);
|
|
10
|
+
if (skipDomainValidation === false) {
|
|
11
|
+
EmissionFactorMethodologicalTier.validateMethodologicalTier(value);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static create(value) {
|
|
15
|
+
String_1.String.guardAgainstEmptyValue(value, EmissionFactorMethodologicalTier.PROPERTY_NAME);
|
|
16
|
+
String_1.String.guardAgainstInvalidType(value, EmissionFactorMethodologicalTier.PROPERTY_NAME);
|
|
17
|
+
return new EmissionFactorMethodologicalTier(value, false);
|
|
18
|
+
}
|
|
19
|
+
static fromPrimitives(primitive) {
|
|
20
|
+
return new EmissionFactorMethodologicalTier(primitive, true);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Valida que el valor sea un tier metodológico IPCC soportado.
|
|
24
|
+
*/
|
|
25
|
+
static validateMethodologicalTier(value) {
|
|
26
|
+
if (!EmissionFactorMethodologicalTier.VALID_METHODOLOGICAL_TIERS.includes(value)) {
|
|
27
|
+
throw InvalidMethodologicalTierError_1.InvalidMethodologicalTierError.create(value, EmissionFactorMethodologicalTier.VALID_METHODOLOGICAL_TIERS);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Obtiene los tiers metodológicos válidos.
|
|
32
|
+
*/
|
|
33
|
+
static getValidMethodologicalTiers() {
|
|
34
|
+
return Object.freeze([...EmissionFactorMethodologicalTier.VALID_METHODOLOGICAL_TIERS]);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Verifica si un valor es un tier metodológico válido.
|
|
38
|
+
*/
|
|
39
|
+
static isValidMethodologicalTier(value) {
|
|
40
|
+
return EmissionFactorMethodologicalTier.VALID_METHODOLOGICAL_TIERS.includes(value);
|
|
41
|
+
}
|
|
42
|
+
isTier1() {
|
|
43
|
+
return this.value === MethodologicalTier_1.MethodologicalTier.TIER_1;
|
|
44
|
+
}
|
|
45
|
+
isTier2() {
|
|
46
|
+
return this.value === MethodologicalTier_1.MethodologicalTier.TIER_2;
|
|
47
|
+
}
|
|
48
|
+
isTier3() {
|
|
49
|
+
return this.value === MethodologicalTier_1.MethodologicalTier.TIER_3;
|
|
50
|
+
}
|
|
51
|
+
toPrimitives() {
|
|
52
|
+
return this.value;
|
|
53
|
+
}
|
|
54
|
+
toEnum() {
|
|
55
|
+
return this.value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.EmissionFactorMethodologicalTier = EmissionFactorMethodologicalTier;
|
|
59
|
+
EmissionFactorMethodologicalTier.PROPERTY_NAME = 'methodologicalTier';
|
|
60
|
+
EmissionFactorMethodologicalTier.VALID_METHODOLOGICAL_TIERS = Object.values(MethodologicalTier_1.MethodologicalTier);
|
|
@@ -207,8 +207,9 @@ class ReportInstance extends AggregateRoot_1.AggregateRoot {
|
|
|
207
207
|
if (!__classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f") || Object.keys(__classPrivateFieldGet(this, _ReportInstance_dataSnapshot, "f")).length === 0) {
|
|
208
208
|
return false;
|
|
209
209
|
}
|
|
210
|
-
//
|
|
211
|
-
//
|
|
210
|
+
// Required questionnaire questions are guaranteed at creation time: the application layer
|
|
211
|
+
// only creates an instance from a COMPLETED ReportPreparationQuestionnaire and freezes its
|
|
212
|
+
// self-describing answers (QuestionnaireAnswerPrimitives) into this aggregate.
|
|
212
213
|
return true;
|
|
213
214
|
}
|
|
214
215
|
canBeApprovedInternally() {
|
|
@@ -0,0 +1,284 @@
|
|
|
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 _ReportPreparationQuestionnaire_instances, _ReportPreparationQuestionnaire_carbonClientId, _ReportPreparationQuestionnaire_reportTemplateId, _ReportPreparationQuestionnaire_reportTemplateVersion, _ReportPreparationQuestionnaire_questions, _ReportPreparationQuestionnaire_answers, _ReportPreparationQuestionnaire_status, _ReportPreparationQuestionnaire_createdAt, _ReportPreparationQuestionnaire_updatedAt, _ReportPreparationQuestionnaire_ensureCanBeModified, _ReportPreparationQuestionnaire_ensureUniqueQuestionIds, _ReportPreparationQuestionnaire_findQuestion, _ReportPreparationQuestionnaire_getQuestionOrThrow, _ReportPreparationQuestionnaire_findAnswer, _ReportPreparationQuestionnaire_getUnansweredRequiredQuestionIds, _ReportPreparationQuestionnaire_calculateCompletion;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ReportPreparationQuestionnaire = void 0;
|
|
16
|
+
const AggregateRoot_1 = require("../../../../shared/domain/entities/AggregateRoot");
|
|
17
|
+
const ReportPreparationQuestionnaireId_1 = require("../value-objects/ReportPreparationQuestionnaireId");
|
|
18
|
+
const ReportPreparationQuestionnaireStatus_1 = require("../enums/ReportPreparationQuestionnaireStatus");
|
|
19
|
+
const PreparationQuestion_1 = require("../value-objects/PreparationQuestion");
|
|
20
|
+
const PreparationAnswer_1 = require("../value-objects/PreparationAnswer");
|
|
21
|
+
const ReportPreparationQuestionnaireCompletion_1 = require("../value-objects/ReportPreparationQuestionnaireCompletion");
|
|
22
|
+
const PreparationQuestionNotFoundError_1 = require("../exceptions/PreparationQuestionNotFoundError");
|
|
23
|
+
const DuplicatePreparationQuestionError_1 = require("../exceptions/DuplicatePreparationQuestionError");
|
|
24
|
+
const TemplateQuestionCannotBeRemovedError_1 = require("../exceptions/TemplateQuestionCannotBeRemovedError");
|
|
25
|
+
const InvalidPreparationQuestionError_1 = require("../exceptions/InvalidPreparationQuestionError");
|
|
26
|
+
const ReportPreparationQuestionnaireCannotBeModifiedError_1 = require("../exceptions/ReportPreparationQuestionnaireCannotBeModifiedError");
|
|
27
|
+
const ReportPreparationQuestionnaireCannotBeCompletedError_1 = require("../exceptions/ReportPreparationQuestionnaireCannotBeCompletedError");
|
|
28
|
+
const ReportPreparationQuestionnaireCannotBeReopenedError_1 = require("../exceptions/ReportPreparationQuestionnaireCannotBeReopenedError");
|
|
29
|
+
/**
|
|
30
|
+
* Report preparation questionnaire: one per (carbonClientId, reportTemplateId).
|
|
31
|
+
*
|
|
32
|
+
* Questions come from two origins:
|
|
33
|
+
* - TEMPLATE: materialized from the CLIENT_INPUT blocks of the report template (question id = block id).
|
|
34
|
+
* - CUSTOM: added by the client to provide extra information the AI must use.
|
|
35
|
+
*
|
|
36
|
+
* It is a living document reused across reporting periods; each ReportInstance freezes a copy of
|
|
37
|
+
* the self-describing answers (see toQuestionnaireAnswers) at creation time.
|
|
38
|
+
*/
|
|
39
|
+
class ReportPreparationQuestionnaire extends AggregateRoot_1.AggregateRoot {
|
|
40
|
+
constructor(props, skipDomainValidation) {
|
|
41
|
+
const id = skipDomainValidation
|
|
42
|
+
? ReportPreparationQuestionnaireId_1.ReportPreparationQuestionnaireId.fromPrimitives(props.id).toPrimitives()
|
|
43
|
+
: ReportPreparationQuestionnaireId_1.ReportPreparationQuestionnaireId.create(props.id).toPrimitives();
|
|
44
|
+
super({ id }, skipDomainValidation);
|
|
45
|
+
_ReportPreparationQuestionnaire_instances.add(this);
|
|
46
|
+
_ReportPreparationQuestionnaire_carbonClientId.set(this, void 0);
|
|
47
|
+
_ReportPreparationQuestionnaire_reportTemplateId.set(this, void 0);
|
|
48
|
+
_ReportPreparationQuestionnaire_reportTemplateVersion.set(this, void 0);
|
|
49
|
+
_ReportPreparationQuestionnaire_questions.set(this, void 0);
|
|
50
|
+
_ReportPreparationQuestionnaire_answers.set(this, void 0);
|
|
51
|
+
_ReportPreparationQuestionnaire_status.set(this, void 0);
|
|
52
|
+
_ReportPreparationQuestionnaire_createdAt.set(this, void 0);
|
|
53
|
+
_ReportPreparationQuestionnaire_updatedAt.set(this, void 0);
|
|
54
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_carbonClientId, props.carbonClientId, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_reportTemplateId, props.reportTemplateId, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_reportTemplateVersion, props.reportTemplateVersion, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_status, props.status, "f");
|
|
58
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_createdAt, props.createdAt, "f");
|
|
59
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, props.updatedAt, "f");
|
|
60
|
+
if (skipDomainValidation === false) {
|
|
61
|
+
// Initialize with domain validation
|
|
62
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_questions, props.questions.map((question) => PreparationQuestion_1.PreparationQuestion.create(question.toPrimitives())), "f");
|
|
63
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_answers, props.answers.map((answer) => PreparationAnswer_1.PreparationAnswer.create(answer.toPrimitives())), "f");
|
|
64
|
+
__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_ensureUniqueQuestionIds).call(this);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Initialize from primitives (no domain validation)
|
|
68
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_questions, props.questions.map((question) => PreparationQuestion_1.PreparationQuestion.fromPrimitives(question.toPrimitives())), "f");
|
|
69
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_answers, props.answers.map((answer) => PreparationAnswer_1.PreparationAnswer.fromPrimitives(answer.toPrimitives())), "f");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
static create(props) {
|
|
73
|
+
const now = new Date().toISOString();
|
|
74
|
+
const fullProps = {
|
|
75
|
+
...props,
|
|
76
|
+
answers: [],
|
|
77
|
+
status: ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.DRAFT,
|
|
78
|
+
createdAt: now,
|
|
79
|
+
updatedAt: now,
|
|
80
|
+
};
|
|
81
|
+
return new ReportPreparationQuestionnaire(fullProps, false);
|
|
82
|
+
}
|
|
83
|
+
static fromPrimitives(primitives) {
|
|
84
|
+
const props = {
|
|
85
|
+
id: primitives.id,
|
|
86
|
+
carbonClientId: primitives.carbonClientId,
|
|
87
|
+
reportTemplateId: primitives.reportTemplateId,
|
|
88
|
+
reportTemplateVersion: primitives.reportTemplateVersion,
|
|
89
|
+
questions: primitives.questions.map((question) => PreparationQuestion_1.PreparationQuestion.fromPrimitives(question)),
|
|
90
|
+
answers: primitives.answers.map((answer) => PreparationAnswer_1.PreparationAnswer.fromPrimitives(answer)),
|
|
91
|
+
status: primitives.status,
|
|
92
|
+
createdAt: primitives.createdAt,
|
|
93
|
+
updatedAt: primitives.updatedAt,
|
|
94
|
+
};
|
|
95
|
+
return new ReportPreparationQuestionnaire(props, true);
|
|
96
|
+
}
|
|
97
|
+
get toPrimitives() {
|
|
98
|
+
return {
|
|
99
|
+
id: this.id.toPrimitives(),
|
|
100
|
+
carbonClientId: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_carbonClientId, "f"),
|
|
101
|
+
reportTemplateId: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_reportTemplateId, "f"),
|
|
102
|
+
reportTemplateVersion: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_reportTemplateVersion, "f"),
|
|
103
|
+
questions: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").map((question) => question.toPrimitives()),
|
|
104
|
+
answers: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_answers, "f").map((answer) => answer.toPrimitives()),
|
|
105
|
+
status: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f"),
|
|
106
|
+
completion: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_calculateCompletion).call(this).toPrimitives(),
|
|
107
|
+
createdAt: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_createdAt, "f"),
|
|
108
|
+
updatedAt: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_updatedAt, "f"),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// Getters
|
|
112
|
+
getId() {
|
|
113
|
+
return this.id.toPrimitives();
|
|
114
|
+
}
|
|
115
|
+
getCarbonClientId() {
|
|
116
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_carbonClientId, "f");
|
|
117
|
+
}
|
|
118
|
+
getReportTemplateId() {
|
|
119
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_reportTemplateId, "f");
|
|
120
|
+
}
|
|
121
|
+
getReportTemplateVersion() {
|
|
122
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_reportTemplateVersion, "f");
|
|
123
|
+
}
|
|
124
|
+
getQuestions() {
|
|
125
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").map((question) => question.toPrimitives());
|
|
126
|
+
}
|
|
127
|
+
getAnswers() {
|
|
128
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_answers, "f").map((answer) => answer.toPrimitives());
|
|
129
|
+
}
|
|
130
|
+
getStatus() {
|
|
131
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f");
|
|
132
|
+
}
|
|
133
|
+
getCompletion() {
|
|
134
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_calculateCompletion).call(this).toPrimitives();
|
|
135
|
+
}
|
|
136
|
+
getCreatedAt() {
|
|
137
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_createdAt, "f");
|
|
138
|
+
}
|
|
139
|
+
getUpdatedAt() {
|
|
140
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_updatedAt, "f");
|
|
141
|
+
}
|
|
142
|
+
// Status checks
|
|
143
|
+
isDraft() {
|
|
144
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f") === ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.DRAFT;
|
|
145
|
+
}
|
|
146
|
+
isInProgress() {
|
|
147
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f") === ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.IN_PROGRESS;
|
|
148
|
+
}
|
|
149
|
+
isCompleted() {
|
|
150
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f") === ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.COMPLETED;
|
|
151
|
+
}
|
|
152
|
+
// Business logic - Capabilities
|
|
153
|
+
canBeModified() {
|
|
154
|
+
return !this.isCompleted();
|
|
155
|
+
}
|
|
156
|
+
canBeCompleted() {
|
|
157
|
+
return !this.isCompleted() && __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_calculateCompletion).call(this).isComplete();
|
|
158
|
+
}
|
|
159
|
+
canBeReopened() {
|
|
160
|
+
return this.isCompleted();
|
|
161
|
+
}
|
|
162
|
+
// Business logic - Actions
|
|
163
|
+
addCustomQuestion(question) {
|
|
164
|
+
__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_ensureCanBeModified).call(this, 'add custom question');
|
|
165
|
+
if (!question.isCustom()) {
|
|
166
|
+
throw InvalidPreparationQuestionError_1.InvalidPreparationQuestionError.create(question.getId(), 'only questions with origin CUSTOM can be added to an existing questionnaire');
|
|
167
|
+
}
|
|
168
|
+
if (__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findQuestion).call(this, question.getId()) !== undefined) {
|
|
169
|
+
throw DuplicatePreparationQuestionError_1.DuplicatePreparationQuestionError.create(this.id.toPrimitives(), question.getId());
|
|
170
|
+
}
|
|
171
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_questions, [...__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f"), question], "f");
|
|
172
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, new Date().toISOString(), "f");
|
|
173
|
+
}
|
|
174
|
+
removeCustomQuestion(questionId) {
|
|
175
|
+
__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_ensureCanBeModified).call(this, 'remove custom question');
|
|
176
|
+
const question = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_getQuestionOrThrow).call(this, questionId);
|
|
177
|
+
if (question.isFromTemplate()) {
|
|
178
|
+
throw TemplateQuestionCannotBeRemovedError_1.TemplateQuestionCannotBeRemovedError.create(this.id.toPrimitives(), questionId);
|
|
179
|
+
}
|
|
180
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_questions, __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").filter((existing) => existing.getId() !== questionId), "f");
|
|
181
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_answers, __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_answers, "f").filter((existing) => existing.getQuestionId() !== questionId), "f");
|
|
182
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, new Date().toISOString(), "f");
|
|
183
|
+
}
|
|
184
|
+
answerQuestion(questionId, answer, answeredBy) {
|
|
185
|
+
__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_ensureCanBeModified).call(this, 'answer question');
|
|
186
|
+
const question = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_getQuestionOrThrow).call(this, questionId);
|
|
187
|
+
question.validateAnswer(answer);
|
|
188
|
+
const newAnswer = PreparationAnswer_1.PreparationAnswer.create({
|
|
189
|
+
questionId,
|
|
190
|
+
answer: answer.trim(),
|
|
191
|
+
answeredAt: new Date().toISOString(),
|
|
192
|
+
answeredBy,
|
|
193
|
+
});
|
|
194
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_answers, [
|
|
195
|
+
...__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_answers, "f").filter((existing) => existing.getQuestionId() !== questionId),
|
|
196
|
+
newAnswer,
|
|
197
|
+
], "f");
|
|
198
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_status, ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.IN_PROGRESS, "f");
|
|
199
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, new Date().toISOString(), "f");
|
|
200
|
+
}
|
|
201
|
+
complete() {
|
|
202
|
+
if (!this.canBeCompleted()) {
|
|
203
|
+
throw ReportPreparationQuestionnaireCannotBeCompletedError_1.ReportPreparationQuestionnaireCannotBeCompletedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f"), __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_calculateCompletion).call(this).toPrimitives(), __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_getUnansweredRequiredQuestionIds).call(this));
|
|
204
|
+
}
|
|
205
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_status, ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.COMPLETED, "f");
|
|
206
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, new Date().toISOString(), "f");
|
|
207
|
+
}
|
|
208
|
+
reopen() {
|
|
209
|
+
if (!this.canBeReopened()) {
|
|
210
|
+
throw ReportPreparationQuestionnaireCannotBeReopenedError_1.ReportPreparationQuestionnaireCannotBeReopenedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f"));
|
|
211
|
+
}
|
|
212
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_status, ReportPreparationQuestionnaireStatus_1.ReportPreparationQuestionnaireStatus.IN_PROGRESS, "f");
|
|
213
|
+
__classPrivateFieldSet(this, _ReportPreparationQuestionnaire_updatedAt, new Date().toISOString(), "f");
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Self-describing projection of the answers, frozen into a ReportInstance and consumed by the AI.
|
|
217
|
+
* Ordered by question order so the prompt follows the template structure.
|
|
218
|
+
*/
|
|
219
|
+
toQuestionnaireAnswers() {
|
|
220
|
+
return [...__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f")]
|
|
221
|
+
.sort((first, second) => first.getOrder() - second.getOrder())
|
|
222
|
+
.flatMap((question) => {
|
|
223
|
+
const answer = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findAnswer).call(this, question.getId());
|
|
224
|
+
if (answer === undefined) {
|
|
225
|
+
return [];
|
|
226
|
+
}
|
|
227
|
+
return [{
|
|
228
|
+
questionId: question.getId(),
|
|
229
|
+
origin: question.getOrigin(),
|
|
230
|
+
questionText: question.getQuestionText(),
|
|
231
|
+
targetSectionId: question.getTargetSectionId(),
|
|
232
|
+
aiInstruction: question.getAiInstruction(),
|
|
233
|
+
answer: answer.getAnswer(),
|
|
234
|
+
answeredAt: answer.getAnsweredAt(),
|
|
235
|
+
answeredBy: answer.getAnsweredBy(),
|
|
236
|
+
}];
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
// Helper methods
|
|
240
|
+
getUnansweredRequiredQuestionIds() {
|
|
241
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_getUnansweredRequiredQuestionIds).call(this);
|
|
242
|
+
}
|
|
243
|
+
hasAnswerFor(questionId) {
|
|
244
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findAnswer).call(this, questionId) !== undefined;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.ReportPreparationQuestionnaire = ReportPreparationQuestionnaire;
|
|
248
|
+
_ReportPreparationQuestionnaire_carbonClientId = new WeakMap(), _ReportPreparationQuestionnaire_reportTemplateId = new WeakMap(), _ReportPreparationQuestionnaire_reportTemplateVersion = new WeakMap(), _ReportPreparationQuestionnaire_questions = new WeakMap(), _ReportPreparationQuestionnaire_answers = new WeakMap(), _ReportPreparationQuestionnaire_status = new WeakMap(), _ReportPreparationQuestionnaire_createdAt = new WeakMap(), _ReportPreparationQuestionnaire_updatedAt = new WeakMap(), _ReportPreparationQuestionnaire_instances = new WeakSet(), _ReportPreparationQuestionnaire_ensureCanBeModified = function _ReportPreparationQuestionnaire_ensureCanBeModified(attemptedAction) {
|
|
249
|
+
if (!this.canBeModified()) {
|
|
250
|
+
throw ReportPreparationQuestionnaireCannotBeModifiedError_1.ReportPreparationQuestionnaireCannotBeModifiedError.create(this.id.toPrimitives(), __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_status, "f"), attemptedAction);
|
|
251
|
+
}
|
|
252
|
+
}, _ReportPreparationQuestionnaire_ensureUniqueQuestionIds = function _ReportPreparationQuestionnaire_ensureUniqueQuestionIds() {
|
|
253
|
+
const seenQuestionIds = new Set();
|
|
254
|
+
__classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").forEach((question) => {
|
|
255
|
+
if (seenQuestionIds.has(question.getId())) {
|
|
256
|
+
throw DuplicatePreparationQuestionError_1.DuplicatePreparationQuestionError.create(this.id.toPrimitives(), question.getId());
|
|
257
|
+
}
|
|
258
|
+
seenQuestionIds.add(question.getId());
|
|
259
|
+
});
|
|
260
|
+
}, _ReportPreparationQuestionnaire_findQuestion = function _ReportPreparationQuestionnaire_findQuestion(questionId) {
|
|
261
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").find((question) => question.getId() === questionId);
|
|
262
|
+
}, _ReportPreparationQuestionnaire_getQuestionOrThrow = function _ReportPreparationQuestionnaire_getQuestionOrThrow(questionId) {
|
|
263
|
+
const question = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findQuestion).call(this, questionId);
|
|
264
|
+
if (question === undefined) {
|
|
265
|
+
throw PreparationQuestionNotFoundError_1.PreparationQuestionNotFoundError.create(this.id.toPrimitives(), questionId);
|
|
266
|
+
}
|
|
267
|
+
return question;
|
|
268
|
+
}, _ReportPreparationQuestionnaire_findAnswer = function _ReportPreparationQuestionnaire_findAnswer(questionId) {
|
|
269
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_answers, "f").find((answer) => answer.getQuestionId() === questionId);
|
|
270
|
+
}, _ReportPreparationQuestionnaire_getUnansweredRequiredQuestionIds = function _ReportPreparationQuestionnaire_getUnansweredRequiredQuestionIds() {
|
|
271
|
+
return __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f")
|
|
272
|
+
.filter((question) => question.isRequired() && __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findAnswer).call(this, question.getId()) === undefined)
|
|
273
|
+
.map((question) => question.getId());
|
|
274
|
+
}, _ReportPreparationQuestionnaire_calculateCompletion = function _ReportPreparationQuestionnaire_calculateCompletion() {
|
|
275
|
+
const requiredQuestions = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").filter((question) => question.isRequired());
|
|
276
|
+
const answeredRequired = requiredQuestions.filter((question) => __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findAnswer).call(this, question.getId()) !== undefined);
|
|
277
|
+
const answeredTotal = __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").filter((question) => __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_instances, "m", _ReportPreparationQuestionnaire_findAnswer).call(this, question.getId()) !== undefined);
|
|
278
|
+
return ReportPreparationQuestionnaireCompletion_1.ReportPreparationQuestionnaireCompletion.create({
|
|
279
|
+
answeredRequired: answeredRequired.length,
|
|
280
|
+
totalRequired: requiredQuestions.length,
|
|
281
|
+
answeredTotal: answeredTotal.length,
|
|
282
|
+
totalQuestions: __classPrivateFieldGet(this, _ReportPreparationQuestionnaire_questions, "f").length,
|
|
283
|
+
});
|
|
284
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportPreparationQuestionnaireStatus = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Report preparation questionnaire status enumeration
|
|
6
|
+
* Defines the lifecycle states of a client questionnaire for a report template
|
|
7
|
+
*/
|
|
8
|
+
var ReportPreparationQuestionnaireStatus;
|
|
9
|
+
(function (ReportPreparationQuestionnaireStatus) {
|
|
10
|
+
/**
|
|
11
|
+
* Draft - Questionnaire created, no answers yet
|
|
12
|
+
*/
|
|
13
|
+
ReportPreparationQuestionnaireStatus["DRAFT"] = "DRAFT";
|
|
14
|
+
/**
|
|
15
|
+
* In progress - At least one answer provided (or reopened after completion)
|
|
16
|
+
*/
|
|
17
|
+
ReportPreparationQuestionnaireStatus["IN_PROGRESS"] = "IN_PROGRESS";
|
|
18
|
+
/**
|
|
19
|
+
* Completed - All required questions answered; report instances can be created from it
|
|
20
|
+
*/
|
|
21
|
+
ReportPreparationQuestionnaireStatus["COMPLETED"] = "COMPLETED";
|
|
22
|
+
})(ReportPreparationQuestionnaireStatus || (exports.ReportPreparationQuestionnaireStatus = ReportPreparationQuestionnaireStatus = {}));
|