@carbonbox/domain 0.45.0 → 0.47.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/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.js +24 -2
- package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/exceptions/InvalidActivityDataSubmissionFacilityError.js +31 -0
- package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionFacility.js +25 -0
- package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/entity/CorporateCarbonFootprintConfiguration.js +10 -10
- package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/CorporateCarbonFootprintConfigurationFacilities.js +24 -0
- package/build/carbonbox/emission-calculation-results/emission-calculations/domain/value-objects/EmissionCalculationDimensions.js +5 -1
- package/build/carbonbox/reporting/shared/domain/enums/DataBindingSource.js +4 -0
- package/build/carbonbox/shared/domain/enums/ErrorCode.js +3 -1
- package/build/carbonbox/shared/domain/types/FacilityReferencesOptions.js +2 -0
- package/build/carbonbox/shared/domain/value-objects/FacilityReferences.js +224 -0
- package/build/carbonbox/shared/domain/value-objects/NullableFacilityReference.js +139 -0
- package/build/main/index.js +30 -22
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.d.ts +10 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.d.ts.map +1 -1
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/IActivityDataSubmission.d.ts +2 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/IActivityDataSubmission.d.ts.map +1 -1
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/exceptions/InvalidActivityDataSubmissionFacilityError.d.ts +7 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/exceptions/InvalidActivityDataSubmissionFacilityError.d.ts.map +1 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionPrimitives.d.ts +2 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionProps.d.ts +2 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionProps.d.ts.map +1 -1
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionFacility.d.ts +15 -0
- package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionFacility.d.ts.map +1 -0
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/entity/CorporateCarbonFootprintConfiguration.d.ts +2 -2
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/entity/CorporateCarbonFootprintConfiguration.d.ts.map +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/entity/ICorporateCarbonFootprintConfiguration.d.ts +2 -2
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/entity/ICorporateCarbonFootprintConfiguration.d.ts.map +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/repository/ICorporateCarbonFootprintConfigurationRepository.d.ts +2 -2
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/repository/ICorporateCarbonFootprintConfigurationRepository.d.ts.map +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/types/CorporateCarbonFootprintConfigurationPrimitives.d.ts +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/types/CorporateCarbonFootprintConfigurationPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/types/CorporateCarbonFootprintConfigurationProps.d.ts +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/types/CorporateCarbonFootprintConfigurationProps.d.ts.map +1 -1
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/{CorporateCarbonFootprintConfigurationFacility.d.ts → CorporateCarbonFootprintConfigurationFacilities.d.ts} +6 -6
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/CorporateCarbonFootprintConfigurationFacilities.d.ts.map +1 -0
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/types/EmissionCalculationDimensions.d.ts +1 -0
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/types/EmissionCalculationDimensions.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/types/EmissionCalculationDimensionsPrimitives.d.ts +1 -0
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/types/EmissionCalculationDimensionsPrimitives.d.ts.map +1 -1
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/value-objects/EmissionCalculationDimensions.d.ts +1 -1
- package/build/types/carbonbox/emission-calculation-results/emission-calculations/domain/value-objects/EmissionCalculationDimensions.d.ts.map +1 -1
- package/build/types/carbonbox/reporting/shared/domain/enums/DataBindingSource.d.ts +2 -0
- package/build/types/carbonbox/reporting/shared/domain/enums/DataBindingSource.d.ts.map +1 -1
- package/build/types/carbonbox/shared/domain/enums/ErrorCode.d.ts +2 -1
- package/build/types/carbonbox/shared/domain/enums/ErrorCode.d.ts.map +1 -1
- package/build/types/carbonbox/shared/domain/types/FacilityReferencesOptions.d.ts +4 -0
- package/build/types/carbonbox/shared/domain/types/FacilityReferencesOptions.d.ts.map +1 -0
- package/build/types/carbonbox/shared/domain/value-objects/FacilityReferences.d.ts +104 -0
- package/build/types/carbonbox/shared/domain/value-objects/FacilityReferences.d.ts.map +1 -0
- package/build/types/carbonbox/shared/domain/value-objects/NullableFacilityReference.d.ts +28 -0
- package/build/types/carbonbox/shared/domain/value-objects/NullableFacilityReference.d.ts.map +1 -0
- package/build/types/main/index.d.ts +6 -1
- package/build/types/main/index.d.ts.map +1 -1
- package/package.json +54 -54
- package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/CorporateCarbonFootprintConfigurationFacility.js +0 -24
- package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/CorporateCarbonFootprintConfigurationFacility.d.ts.map +0 -1
|
@@ -10,16 +10,19 @@ 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 _ActivityDataSubmission_dynamicFormCode, _ActivityDataSubmission_carbonClient, _ActivityDataSubmission_footprintType, _ActivityDataSubmission_country, _ActivityDataSubmission_footprintConfiguration, _ActivityDataSubmission_segmentConfiguration, _ActivityDataSubmission_filledByStakeholder, _ActivityDataSubmission_fieldResponses, _ActivityDataSubmission_periodStart, _ActivityDataSubmission_periodEnd, _ActivityDataSubmission_overallUncertaintyPercentage, _ActivityDataSubmission_uncertaintySource, _ActivityDataSubmission_dataQualityNotes, _ActivityDataSubmission_reportingStandard, _ActivityDataSubmission_emissionScope, _ActivityDataSubmission_subScope, _ActivityDataSubmission_status, _ActivityDataSubmission_submittedAt, _ActivityDataSubmission_approvedAt, _ActivityDataSubmission_rejectedAt, _ActivityDataSubmission_rejectionReason;
|
|
13
|
+
var _ActivityDataSubmission_dynamicFormCode, _ActivityDataSubmission_carbonClient, _ActivityDataSubmission_footprintType, _ActivityDataSubmission_country, _ActivityDataSubmission_footprintConfiguration, _ActivityDataSubmission_segmentConfiguration, _ActivityDataSubmission_facility, _ActivityDataSubmission_filledByStakeholder, _ActivityDataSubmission_fieldResponses, _ActivityDataSubmission_periodStart, _ActivityDataSubmission_periodEnd, _ActivityDataSubmission_overallUncertaintyPercentage, _ActivityDataSubmission_uncertaintySource, _ActivityDataSubmission_dataQualityNotes, _ActivityDataSubmission_reportingStandard, _ActivityDataSubmission_emissionScope, _ActivityDataSubmission_subScope, _ActivityDataSubmission_status, _ActivityDataSubmission_submittedAt, _ActivityDataSubmission_approvedAt, _ActivityDataSubmission_rejectedAt, _ActivityDataSubmission_rejectionReason;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ActivityDataSubmission = void 0;
|
|
16
16
|
const AggregateRoot_1 = require("../../../../shared/domain/entities/AggregateRoot");
|
|
17
17
|
const InvalidPropertyValueError_1 = require("../../../../shared/domain/exceptions/InvalidPropertyValueError");
|
|
18
|
+
const CarbonFootprint_1 = require("../../../../carbon-footprint-configurations/shared/domain/enums/CarbonFootprint");
|
|
19
|
+
const InvalidActivityDataSubmissionFacilityError_1 = require("../exceptions/InvalidActivityDataSubmissionFacilityError");
|
|
18
20
|
const ActivityDataSubmissionApprovedAt_1 = require("../value-objects/ActivityDataSubmissionApprovedAt");
|
|
19
21
|
const ActivityDataSubmissionCarbonClient_1 = require("../value-objects/ActivityDataSubmissionCarbonClient");
|
|
20
22
|
const ActivityDataSubmissionDataQualityNotes_1 = require("../value-objects/ActivityDataSubmissionDataQualityNotes");
|
|
21
23
|
const ActivityDataSubmissionDynamicFormCode_1 = require("../value-objects/ActivityDataSubmissionDynamicFormCode");
|
|
22
24
|
const ActivityDataSubmissionEmissionScope_1 = require("../value-objects/ActivityDataSubmissionEmissionScope");
|
|
25
|
+
const ActivityDataSubmissionFacility_1 = require("../value-objects/ActivityDataSubmissionFacility");
|
|
23
26
|
const ActivityDataSubmissionFieldResponses_1 = require("../value-objects/ActivityDataSubmissionFieldResponses");
|
|
24
27
|
const ActivityDataSubmissionFilledByStakeholder_1 = require("../value-objects/ActivityDataSubmissionFilledByStakeholder");
|
|
25
28
|
const ActivityDataSubmissionFootprintType_1 = require("../value-objects/ActivityDataSubmissionFootprintType");
|
|
@@ -49,6 +52,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
49
52
|
_ActivityDataSubmission_country.set(this, void 0);
|
|
50
53
|
_ActivityDataSubmission_footprintConfiguration.set(this, void 0);
|
|
51
54
|
_ActivityDataSubmission_segmentConfiguration.set(this, void 0);
|
|
55
|
+
_ActivityDataSubmission_facility.set(this, void 0);
|
|
52
56
|
_ActivityDataSubmission_filledByStakeholder.set(this, void 0);
|
|
53
57
|
_ActivityDataSubmission_fieldResponses.set(this, void 0);
|
|
54
58
|
_ActivityDataSubmission_periodStart.set(this, void 0);
|
|
@@ -71,6 +75,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
71
75
|
__classPrivateFieldSet(this, _ActivityDataSubmission_country, ActivityDataSubmissionCountry_1.ActivityDataSubmissionCountry.create(props.country), "f");
|
|
72
76
|
__classPrivateFieldSet(this, _ActivityDataSubmission_footprintConfiguration, ActivityDataSubmissionFootprintConfiguration_1.ActivityDataSubmissionFootprintConfiguration.create(props.footprintConfiguration), "f");
|
|
73
77
|
__classPrivateFieldSet(this, _ActivityDataSubmission_segmentConfiguration, ActivityDataSubmissionSegmentConfiguration_1.ActivityDataSubmissionSegmentConfiguration.create(props.segmentConfiguration), "f");
|
|
78
|
+
__classPrivateFieldSet(this, _ActivityDataSubmission_facility, ActivityDataSubmissionFacility_1.ActivityDataSubmissionFacility.create(props.facility), "f");
|
|
74
79
|
__classPrivateFieldSet(this, _ActivityDataSubmission_filledByStakeholder, ActivityDataSubmissionFilledByStakeholder_1.ActivityDataSubmissionFilledByStakeholder.create(props.filledByStakeholder), "f");
|
|
75
80
|
__classPrivateFieldSet(this, _ActivityDataSubmission_fieldResponses, ActivityDataSubmissionFieldResponses_1.ActivityDataSubmissionFieldResponses.create(props.fieldResponses), "f");
|
|
76
81
|
__classPrivateFieldSet(this, _ActivityDataSubmission_periodStart, ActivityDataSubmissionPeriodStart_1.ActivityDataSubmissionPeriodStart.create(props.periodStart), "f");
|
|
@@ -87,6 +92,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
87
92
|
__classPrivateFieldSet(this, _ActivityDataSubmission_rejectedAt, ActivityDataSubmissionRejectedAt_1.ActivityDataSubmissionRejectedAt.create(props.rejectedAt), "f");
|
|
88
93
|
__classPrivateFieldSet(this, _ActivityDataSubmission_rejectionReason, ActivityDataSubmissionRejectionReason_1.ActivityDataSubmissionRejectionReason.create(props.rejectionReason), "f");
|
|
89
94
|
ActivityDataSubmission.guardAgainstInvalidPeriodRange(props.periodStart, props.periodEnd);
|
|
95
|
+
ActivityDataSubmission.guardAgainstFacilityOnNonCorporateFootprint(props.facility, props.footprintType);
|
|
90
96
|
}
|
|
91
97
|
else {
|
|
92
98
|
__classPrivateFieldSet(this, _ActivityDataSubmission_dynamicFormCode, ActivityDataSubmissionDynamicFormCode_1.ActivityDataSubmissionDynamicFormCode.fromPrimitives(props.dynamicFormCode), "f");
|
|
@@ -95,6 +101,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
95
101
|
__classPrivateFieldSet(this, _ActivityDataSubmission_country, ActivityDataSubmissionCountry_1.ActivityDataSubmissionCountry.fromPrimitives(props.country), "f");
|
|
96
102
|
__classPrivateFieldSet(this, _ActivityDataSubmission_footprintConfiguration, ActivityDataSubmissionFootprintConfiguration_1.ActivityDataSubmissionFootprintConfiguration.fromPrimitives(props.footprintConfiguration), "f");
|
|
97
103
|
__classPrivateFieldSet(this, _ActivityDataSubmission_segmentConfiguration, ActivityDataSubmissionSegmentConfiguration_1.ActivityDataSubmissionSegmentConfiguration.fromPrimitives(props.segmentConfiguration), "f");
|
|
104
|
+
__classPrivateFieldSet(this, _ActivityDataSubmission_facility, ActivityDataSubmissionFacility_1.ActivityDataSubmissionFacility.fromPrimitives(props.facility), "f");
|
|
98
105
|
__classPrivateFieldSet(this, _ActivityDataSubmission_filledByStakeholder, ActivityDataSubmissionFilledByStakeholder_1.ActivityDataSubmissionFilledByStakeholder.fromPrimitives(props.filledByStakeholder), "f");
|
|
99
106
|
__classPrivateFieldSet(this, _ActivityDataSubmission_fieldResponses, ActivityDataSubmissionFieldResponses_1.ActivityDataSubmissionFieldResponses.fromPrimitives(props.fieldResponses), "f");
|
|
100
107
|
__classPrivateFieldSet(this, _ActivityDataSubmission_periodStart, ActivityDataSubmissionPeriodStart_1.ActivityDataSubmissionPeriodStart.fromPrimitives(props.periodStart), "f");
|
|
@@ -112,6 +119,16 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
112
119
|
__classPrivateFieldSet(this, _ActivityDataSubmission_rejectionReason, ActivityDataSubmissionRejectionReason_1.ActivityDataSubmissionRejectionReason.fromPrimitives(props.rejectionReason), "f");
|
|
113
120
|
}
|
|
114
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* A facility attributes the activity data to one site of a corporate inventory. Product and
|
|
124
|
+
* event footprints measure a product / event edition, so they never carry a facility.
|
|
125
|
+
* `null` on a corporate submission means the data is reported at corporate level.
|
|
126
|
+
*/
|
|
127
|
+
static guardAgainstFacilityOnNonCorporateFootprint(facility, footprintType) {
|
|
128
|
+
if (facility !== null && footprintType !== CarbonFootprint_1.CarbonFootprint.CORPORATE) {
|
|
129
|
+
throw InvalidActivityDataSubmissionFacilityError_1.InvalidActivityDataSubmissionFacilityError.create(facility.id, footprintType);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
115
132
|
/**
|
|
116
133
|
* Validates that the reporting period range is coherent (`periodStart <= periodEnd`).
|
|
117
134
|
* Dates are in canonical DD/MM/YYYY format (project convention DT-2).
|
|
@@ -140,6 +157,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
140
157
|
country: primitives.country,
|
|
141
158
|
footprintConfiguration: primitives.footprintConfiguration,
|
|
142
159
|
segmentConfiguration: primitives.segmentConfiguration,
|
|
160
|
+
facility: primitives.facility,
|
|
143
161
|
filledByStakeholder: primitives.filledByStakeholder,
|
|
144
162
|
fieldResponses: primitives.fieldResponses,
|
|
145
163
|
periodStart: primitives.periodStart,
|
|
@@ -167,6 +185,7 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
167
185
|
country: __classPrivateFieldGet(this, _ActivityDataSubmission_country, "f").toEnum(),
|
|
168
186
|
footprintConfiguration: __classPrivateFieldGet(this, _ActivityDataSubmission_footprintConfiguration, "f").toPrimitives(),
|
|
169
187
|
segmentConfiguration: __classPrivateFieldGet(this, _ActivityDataSubmission_segmentConfiguration, "f").toPrimitives(),
|
|
188
|
+
facility: __classPrivateFieldGet(this, _ActivityDataSubmission_facility, "f").toPrimitives(),
|
|
170
189
|
filledByStakeholder: __classPrivateFieldGet(this, _ActivityDataSubmission_filledByStakeholder, "f").toPrimitives(),
|
|
171
190
|
fieldResponses: __classPrivateFieldGet(this, _ActivityDataSubmission_fieldResponses, "f").toPrimitives(),
|
|
172
191
|
periodStart: __classPrivateFieldGet(this, _ActivityDataSubmission_periodStart, "f").toPrimitives(),
|
|
@@ -202,6 +221,9 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
202
221
|
get segmentConfiguration() {
|
|
203
222
|
return __classPrivateFieldGet(this, _ActivityDataSubmission_segmentConfiguration, "f");
|
|
204
223
|
}
|
|
224
|
+
get facility() {
|
|
225
|
+
return __classPrivateFieldGet(this, _ActivityDataSubmission_facility, "f");
|
|
226
|
+
}
|
|
205
227
|
get filledByStakeholder() {
|
|
206
228
|
return __classPrivateFieldGet(this, _ActivityDataSubmission_filledByStakeholder, "f");
|
|
207
229
|
}
|
|
@@ -249,4 +271,4 @@ class ActivityDataSubmission extends AggregateRoot_1.AggregateRoot {
|
|
|
249
271
|
}
|
|
250
272
|
}
|
|
251
273
|
exports.ActivityDataSubmission = ActivityDataSubmission;
|
|
252
|
-
_ActivityDataSubmission_dynamicFormCode = new WeakMap(), _ActivityDataSubmission_carbonClient = new WeakMap(), _ActivityDataSubmission_footprintType = new WeakMap(), _ActivityDataSubmission_country = new WeakMap(), _ActivityDataSubmission_footprintConfiguration = new WeakMap(), _ActivityDataSubmission_segmentConfiguration = new WeakMap(), _ActivityDataSubmission_filledByStakeholder = new WeakMap(), _ActivityDataSubmission_fieldResponses = new WeakMap(), _ActivityDataSubmission_periodStart = new WeakMap(), _ActivityDataSubmission_periodEnd = new WeakMap(), _ActivityDataSubmission_overallUncertaintyPercentage = new WeakMap(), _ActivityDataSubmission_uncertaintySource = new WeakMap(), _ActivityDataSubmission_dataQualityNotes = new WeakMap(), _ActivityDataSubmission_reportingStandard = new WeakMap(), _ActivityDataSubmission_emissionScope = new WeakMap(), _ActivityDataSubmission_subScope = new WeakMap(), _ActivityDataSubmission_status = new WeakMap(), _ActivityDataSubmission_submittedAt = new WeakMap(), _ActivityDataSubmission_approvedAt = new WeakMap(), _ActivityDataSubmission_rejectedAt = new WeakMap(), _ActivityDataSubmission_rejectionReason = new WeakMap();
|
|
274
|
+
_ActivityDataSubmission_dynamicFormCode = new WeakMap(), _ActivityDataSubmission_carbonClient = new WeakMap(), _ActivityDataSubmission_footprintType = new WeakMap(), _ActivityDataSubmission_country = new WeakMap(), _ActivityDataSubmission_footprintConfiguration = new WeakMap(), _ActivityDataSubmission_segmentConfiguration = new WeakMap(), _ActivityDataSubmission_facility = new WeakMap(), _ActivityDataSubmission_filledByStakeholder = new WeakMap(), _ActivityDataSubmission_fieldResponses = new WeakMap(), _ActivityDataSubmission_periodStart = new WeakMap(), _ActivityDataSubmission_periodEnd = new WeakMap(), _ActivityDataSubmission_overallUncertaintyPercentage = new WeakMap(), _ActivityDataSubmission_uncertaintySource = new WeakMap(), _ActivityDataSubmission_dataQualityNotes = new WeakMap(), _ActivityDataSubmission_reportingStandard = new WeakMap(), _ActivityDataSubmission_emissionScope = new WeakMap(), _ActivityDataSubmission_subScope = new WeakMap(), _ActivityDataSubmission_status = new WeakMap(), _ActivityDataSubmission_submittedAt = new WeakMap(), _ActivityDataSubmission_approvedAt = new WeakMap(), _ActivityDataSubmission_rejectedAt = new WeakMap(), _ActivityDataSubmission_rejectionReason = new WeakMap();
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidActivityDataSubmissionFacilityError = void 0;
|
|
4
|
+
const CodedRootError_1 = require("../../../../shared/domain/exceptions/CodedRootError");
|
|
5
|
+
const ErrorCode_1 = require("../../../../shared/domain/enums/ErrorCode");
|
|
6
|
+
const CarbonFootprint_1 = require("../../../../carbon-footprint-configurations/shared/domain/enums/CarbonFootprint");
|
|
7
|
+
class InvalidActivityDataSubmissionFacilityError extends CodedRootError_1.CodedRootError {
|
|
8
|
+
constructor(facilityId, receivedFootprintType) {
|
|
9
|
+
const technicalMessage = `Invalid activity data submission facility '${facilityId}': a facility can only be assigned to a ${CarbonFootprint_1.CarbonFootprint.CORPORATE} footprint submission, received footprint type '${receivedFootprintType}'.`;
|
|
10
|
+
const context = {
|
|
11
|
+
facilityId,
|
|
12
|
+
receivedFootprintType,
|
|
13
|
+
allowedFootprintType: CarbonFootprint_1.CarbonFootprint.CORPORATE,
|
|
14
|
+
timestamp: new Date().toISOString(),
|
|
15
|
+
};
|
|
16
|
+
const suggestions = [
|
|
17
|
+
'Send facility as null for PRODUCT and EVENT footprint submissions',
|
|
18
|
+
'Assign a facility only when the submission belongs to a CORPORATE footprint configuration',
|
|
19
|
+
'Use null on a CORPORATE submission to report the activity data at corporate level',
|
|
20
|
+
];
|
|
21
|
+
super(ErrorCode_1.ErrorCode.INVALID_SUBMISSION_FACILITY, technicalMessage, context, suggestions);
|
|
22
|
+
this.name = 'InvalidActivityDataSubmissionFacilityError';
|
|
23
|
+
}
|
|
24
|
+
static create(facilityId, receivedFootprintType) {
|
|
25
|
+
return new InvalidActivityDataSubmissionFacilityError(facilityId, receivedFootprintType);
|
|
26
|
+
}
|
|
27
|
+
logError() {
|
|
28
|
+
return `${this.name}: ${this.technicalMessage}`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.InvalidActivityDataSubmissionFacilityError = InvalidActivityDataSubmissionFacilityError;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivityDataSubmissionFacility = void 0;
|
|
4
|
+
const NullableFacilityReference_1 = require("../../../../shared/domain/value-objects/NullableFacilityReference");
|
|
5
|
+
/**
|
|
6
|
+
* Sede a la que se imputa el dato de actividad. `null` significa "Nivel Corporativo":
|
|
7
|
+
* el dato pertenece a la organización y no a una sede concreta.
|
|
8
|
+
*/
|
|
9
|
+
class ActivityDataSubmissionFacility extends NullableFacilityReference_1.NullableFacilityReference {
|
|
10
|
+
constructor(value, skipDomainValidation) {
|
|
11
|
+
super(value, skipDomainValidation, ActivityDataSubmissionFacility.PROPERTY_NAME);
|
|
12
|
+
}
|
|
13
|
+
static create(value) {
|
|
14
|
+
return new ActivityDataSubmissionFacility(value, false);
|
|
15
|
+
}
|
|
16
|
+
static fromPrimitives(primitives) {
|
|
17
|
+
const value = primitives;
|
|
18
|
+
return new ActivityDataSubmissionFacility(value, true);
|
|
19
|
+
}
|
|
20
|
+
toPrimitives() {
|
|
21
|
+
return this.value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ActivityDataSubmissionFacility = ActivityDataSubmissionFacility;
|
|
25
|
+
ActivityDataSubmissionFacility.PROPERTY_NAME = 'facility';
|
|
@@ -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
|
|
13
|
+
var _CorporateCarbonFootprintConfiguration_facilities, _CorporateCarbonFootprintConfiguration_executionPeriod, _CorporateCarbonFootprintConfiguration_baseYear, _CorporateCarbonFootprintConfiguration_segmentConfigurations;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.CorporateCarbonFootprintConfiguration = void 0;
|
|
16
16
|
const CarbonFootprintConfiguration_1 = require("../../../shared/domain/entities/CarbonFootprintConfiguration");
|
|
@@ -20,7 +20,7 @@ const CorporateCarbonFootprintConfigurationName_1 = require("../value-objects/Co
|
|
|
20
20
|
const CorporateCarbonFootprintConfigurationCreatedByStakeholder_1 = require("../value-objects/CorporateCarbonFootprintConfigurationCreatedByStakeholder");
|
|
21
21
|
const CorporateCarbonFootprintConfigurationExecutionPeriod_1 = require("../value-objects/CorporateCarbonFootprintConfigurationExecutionPeriod");
|
|
22
22
|
const CorporateCarbonFootprintConfigurationBaseYear_1 = require("../value-objects/CorporateCarbonFootprintConfigurationBaseYear");
|
|
23
|
-
const
|
|
23
|
+
const CorporateCarbonFootprintConfigurationFacilities_1 = require("../value-objects/CorporateCarbonFootprintConfigurationFacilities");
|
|
24
24
|
const CorporateCarbonFootprintConfigurationFootprintType_1 = require("../value-objects/CorporateCarbonFootprintConfigurationFootprintType");
|
|
25
25
|
const CorporateCarbonFootprintConfigurationIntensityIndicatorConfigurations_1 = require("../value-objects/CorporateCarbonFootprintConfigurationIntensityIndicatorConfigurations");
|
|
26
26
|
const CorporateCarbonFootprintConfigurationOwnedByCarbonClient_1 = require("../value-objects/CorporateCarbonFootprintConfigurationOwnedByCarbonClient");
|
|
@@ -72,20 +72,20 @@ class CorporateCarbonFootprintConfiguration extends CarbonFootprintConfiguration
|
|
|
72
72
|
ownedByCarbonClient,
|
|
73
73
|
createdByStakeholder,
|
|
74
74
|
}, skipDomainValidation);
|
|
75
|
-
|
|
75
|
+
_CorporateCarbonFootprintConfiguration_facilities.set(this, void 0);
|
|
76
76
|
_CorporateCarbonFootprintConfiguration_executionPeriod.set(this, void 0);
|
|
77
77
|
_CorporateCarbonFootprintConfiguration_baseYear.set(this, void 0);
|
|
78
78
|
_CorporateCarbonFootprintConfiguration_segmentConfigurations.set(this, void 0);
|
|
79
79
|
if (skipDomainValidation === false) {
|
|
80
80
|
// Initialize with domain validation
|
|
81
|
-
__classPrivateFieldSet(this,
|
|
81
|
+
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_facilities, CorporateCarbonFootprintConfigurationFacilities_1.CorporateCarbonFootprintConfigurationFacilities.create(props.facilities), "f");
|
|
82
82
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_executionPeriod, CorporateCarbonFootprintConfigurationExecutionPeriod_1.CorporateCarbonFootprintConfigurationExecutionPeriod.create(props.executionPeriod), "f");
|
|
83
83
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_baseYear, CorporateCarbonFootprintConfigurationBaseYear_1.CorporateCarbonFootprintConfigurationBaseYear.create(props.baseYear), "f");
|
|
84
84
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_segmentConfigurations, CorporateCarbonFootprintConfigurationSegmentConfigurations_1.CorporateCarbonFootprintConfigurationSegmentConfigurations.create(props.segmentConfigurations), "f");
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
87
87
|
// Initialize from primitives (no domain validation)
|
|
88
|
-
__classPrivateFieldSet(this,
|
|
88
|
+
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_facilities, CorporateCarbonFootprintConfigurationFacilities_1.CorporateCarbonFootprintConfigurationFacilities.fromPrimitives(props.facilities), "f");
|
|
89
89
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_executionPeriod, CorporateCarbonFootprintConfigurationExecutionPeriod_1.CorporateCarbonFootprintConfigurationExecutionPeriod.fromPrimitives(props.executionPeriod), "f");
|
|
90
90
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_baseYear, CorporateCarbonFootprintConfigurationBaseYear_1.CorporateCarbonFootprintConfigurationBaseYear.fromPrimitives(props.baseYear), "f");
|
|
91
91
|
__classPrivateFieldSet(this, _CorporateCarbonFootprintConfiguration_segmentConfigurations, CorporateCarbonFootprintConfigurationSegmentConfigurations_1.CorporateCarbonFootprintConfigurationSegmentConfigurations.fromPrimitives(props.segmentConfigurations), "f");
|
|
@@ -106,7 +106,7 @@ class CorporateCarbonFootprintConfiguration extends CarbonFootprintConfiguration
|
|
|
106
106
|
status: primitives.status,
|
|
107
107
|
ownedByCarbonClient: primitives.ownedByCarbonClient,
|
|
108
108
|
createdByStakeholder: primitives.createdByStakeholder,
|
|
109
|
-
|
|
109
|
+
facilities: primitives.facilities,
|
|
110
110
|
executionPeriod: primitives.executionPeriod,
|
|
111
111
|
baseYear: primitives.baseYear,
|
|
112
112
|
segmentConfigurations: primitives.segmentConfigurations,
|
|
@@ -125,14 +125,14 @@ class CorporateCarbonFootprintConfiguration extends CarbonFootprintConfiguration
|
|
|
125
125
|
status: this.status.toEnum(),
|
|
126
126
|
ownedByCarbonClient: this.ownedByCarbonClient.toPrimitives(),
|
|
127
127
|
createdByStakeholder: this.createdByStakeholder.toPrimitives(),
|
|
128
|
-
|
|
128
|
+
facilities: this.facilities.toPrimitives(),
|
|
129
129
|
executionPeriod: this.executionPeriod.toPrimitives(),
|
|
130
130
|
baseYear: this.baseYear.toPrimitives(),
|
|
131
131
|
segmentConfigurations: this.segmentConfigurations.toPrimitives(),
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
-
get
|
|
135
|
-
return __classPrivateFieldGet(this,
|
|
134
|
+
get facilities() {
|
|
135
|
+
return __classPrivateFieldGet(this, _CorporateCarbonFootprintConfiguration_facilities, "f");
|
|
136
136
|
}
|
|
137
137
|
get executionPeriod() {
|
|
138
138
|
return __classPrivateFieldGet(this, _CorporateCarbonFootprintConfiguration_executionPeriod, "f");
|
|
@@ -145,4 +145,4 @@ class CorporateCarbonFootprintConfiguration extends CarbonFootprintConfiguration
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
exports.CorporateCarbonFootprintConfiguration = CorporateCarbonFootprintConfiguration;
|
|
148
|
-
|
|
148
|
+
_CorporateCarbonFootprintConfiguration_facilities = new WeakMap(), _CorporateCarbonFootprintConfiguration_executionPeriod = new WeakMap(), _CorporateCarbonFootprintConfiguration_baseYear = new WeakMap(), _CorporateCarbonFootprintConfiguration_segmentConfigurations = new WeakMap();
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CorporateCarbonFootprintConfigurationFacilities = void 0;
|
|
4
|
+
const FacilityReferences_1 = require("../../../../shared/domain/value-objects/FacilityReferences");
|
|
5
|
+
class CorporateCarbonFootprintConfigurationFacilities extends FacilityReferences_1.FacilityReferences {
|
|
6
|
+
constructor(value, skipDomainValidation) {
|
|
7
|
+
super(value, skipDomainValidation, CorporateCarbonFootprintConfigurationFacilities.PROPERTY_NAME, { allowEmpty: false });
|
|
8
|
+
}
|
|
9
|
+
static create(value) {
|
|
10
|
+
return new CorporateCarbonFootprintConfigurationFacilities(value, false);
|
|
11
|
+
}
|
|
12
|
+
static fromPrimitives(primitives) {
|
|
13
|
+
const value = primitives.map((primitive) => ({
|
|
14
|
+
id: primitive.id,
|
|
15
|
+
commercialBranchName: primitive.commercialBranchName,
|
|
16
|
+
}));
|
|
17
|
+
return new CorporateCarbonFootprintConfigurationFacilities(value, true);
|
|
18
|
+
}
|
|
19
|
+
toPrimitives() {
|
|
20
|
+
return this.value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.CorporateCarbonFootprintConfigurationFacilities = CorporateCarbonFootprintConfigurationFacilities;
|
|
24
|
+
CorporateCarbonFootprintConfigurationFacilities.PROPERTY_NAME = 'facilities';
|
|
@@ -14,7 +14,7 @@ const InvalidPropertyTypeError_1 = require("../../../../shared/domain/exceptions
|
|
|
14
14
|
* Value object wrapping the intrinsic dimensional keys denormalized on the
|
|
15
15
|
* EmissionCalculation at calculation time (CALC-001). Required string fields
|
|
16
16
|
* (`emissionScope`, `segmentId`, `periodStart`) are validated non-empty;
|
|
17
|
-
* `subScope` and `
|
|
17
|
+
* `subScope`, `subsegmentId` and `facilityId` are nullable.
|
|
18
18
|
*/
|
|
19
19
|
class EmissionCalculationDimensions extends ValueObject_1.ValueObject {
|
|
20
20
|
constructor(value, skipDomainValidation) {
|
|
@@ -47,6 +47,9 @@ _a = EmissionCalculationDimensions, _EmissionCalculationDimensions_validate = fu
|
|
|
47
47
|
if (value.subsegmentId !== null && typeof value.subsegmentId !== 'string') {
|
|
48
48
|
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${_a.PROPERTY_NAME}.subsegmentId`, 'string or null', typeof value.subsegmentId);
|
|
49
49
|
}
|
|
50
|
+
if (value.facilityId !== null && typeof value.facilityId !== 'string') {
|
|
51
|
+
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${_a.PROPERTY_NAME}.facilityId`, 'string or null', typeof value.facilityId);
|
|
52
|
+
}
|
|
50
53
|
}, _EmissionCalculationDimensions_toPrimitives = function _EmissionCalculationDimensions_toPrimitives(value) {
|
|
51
54
|
return {
|
|
52
55
|
emissionScope: value.emissionScope,
|
|
@@ -54,6 +57,7 @@ _a = EmissionCalculationDimensions, _EmissionCalculationDimensions_validate = fu
|
|
|
54
57
|
segmentId: value.segmentId,
|
|
55
58
|
subsegmentId: value.subsegmentId,
|
|
56
59
|
periodStart: value.periodStart,
|
|
60
|
+
facilityId: value.facilityId,
|
|
57
61
|
};
|
|
58
62
|
};
|
|
59
63
|
EmissionCalculationDimensions.PROPERTY_NAME = 'dimensions';
|
|
@@ -43,6 +43,9 @@ var DataBindingSource;
|
|
|
43
43
|
DataBindingSource["AGGREGATION_GAS_N2O"] = "aggregation.gas.n2o";
|
|
44
44
|
// Aggregations - By Segment
|
|
45
45
|
DataBindingSource["AGGREGATION_BY_SEGMENT"] = "aggregation.bySegment";
|
|
46
|
+
// Aggregations - By Facility (SEDES, snapshot v6): emissions attributed per facility; the entry
|
|
47
|
+
// with a null facilityId is the corporate level (data of the organization, not of one facility).
|
|
48
|
+
DataBindingSource["AGGREGATION_BY_FACILITY"] = "aggregation.byFacility";
|
|
46
49
|
// Aggregations - Biogenic CO₂ (informational item OUTSIDE the inventory total and the scopes,
|
|
47
50
|
// GHG Protocol cap. 9 / ISO 14064-1 §9.3.1): the `CO2-BIOGENIC` species, total and per source.
|
|
48
51
|
DataBindingSource["AGGREGATION_BIOGENIC_CO2"] = "aggregation.biogenicCO2";
|
|
@@ -92,6 +95,7 @@ var DataBindingSource;
|
|
|
92
95
|
DataBindingSource["CHART_BY_SCOPE"] = "chart.byScope";
|
|
93
96
|
DataBindingSource["CHART_BY_SUBCATEGORY"] = "chart.bySubcategory";
|
|
94
97
|
DataBindingSource["CHART_BY_SEGMENT"] = "chart.bySegment";
|
|
98
|
+
DataBindingSource["CHART_BY_FACILITY"] = "chart.byFacility";
|
|
95
99
|
DataBindingSource["CHART_BY_GAS"] = "chart.byGas";
|
|
96
100
|
DataBindingSource["CHART_TREND_ANALYSIS"] = "chart.trendAnalysis";
|
|
97
101
|
DataBindingSource["CHART_UNCERTAINTY_BY_SOURCE"] = "chart.uncertaintyBySource";
|
|
@@ -17,7 +17,7 @@ exports.ErrorCode = void 0;
|
|
|
17
17
|
* - RPT: Reporting
|
|
18
18
|
* - SHR: Shared/Common
|
|
19
19
|
*
|
|
20
|
-
* Total Codes:
|
|
20
|
+
* Total Codes: 174
|
|
21
21
|
* Total Exceptions Migrated: 171 (100%)
|
|
22
22
|
*
|
|
23
23
|
* @since 1.0.0
|
|
@@ -118,6 +118,8 @@ var ErrorCode;
|
|
|
118
118
|
ErrorCode["TRIGGER_VALUE_CONVERSION_ERROR"] = "CBX-ADC-020";
|
|
119
119
|
ErrorCode["TRIGGER_VALUE_STRING_OPERATION_ERROR"] = "CBX-ADC-021";
|
|
120
120
|
ErrorCode["UNKNOWN_CONDITIONAL_ACTION_CATEGORY"] = "CBX-ADC-022";
|
|
121
|
+
// Activity Data Submission facility attribution (CBX-ADC-023)
|
|
122
|
+
ErrorCode["INVALID_SUBMISSION_FACILITY"] = "CBX-ADC-023";
|
|
121
123
|
// Emission Calculation Errors (CBX-EMC-XXX)
|
|
122
124
|
ErrorCode["CALCULATION_FAILED"] = "CBX-EMC-001";
|
|
123
125
|
ErrorCode["MISSING_EMISSION_FACTOR"] = "CBX-EMC-002";
|
|
@@ -0,0 +1,224 @@
|
|
|
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 _FacilityReferences_facilityReferences, _FacilityReferences_options;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.FacilityReferences = void 0;
|
|
16
|
+
const InvalidPropertyTypeError_1 = require("../exceptions/InvalidPropertyTypeError");
|
|
17
|
+
const InvalidPropertyValueError_1 = require("../exceptions/InvalidPropertyValueError");
|
|
18
|
+
const ValueObject_1 = require("./ValueObject");
|
|
19
|
+
const String_1 = require("./String");
|
|
20
|
+
const AggregateId_1 = require("./AggregateId");
|
|
21
|
+
class FacilityReferences extends ValueObject_1.ValueObject {
|
|
22
|
+
/**
|
|
23
|
+
* Constructor protegido para que solo clases hijas puedan instanciar.
|
|
24
|
+
* Aplica todas las validaciones de dominio al momento de construcción.
|
|
25
|
+
*/
|
|
26
|
+
constructor(value, skipDomainValidation, propertyName = FacilityReferences.DEFAULT_PROPERTY_NAME, options = FacilityReferences.DEFAULT_OPTIONS) {
|
|
27
|
+
const finalOptions = { ...FacilityReferences.DEFAULT_OPTIONS, ...options };
|
|
28
|
+
if (skipDomainValidation === false) {
|
|
29
|
+
FacilityReferences.validateReferences(value, propertyName, finalOptions);
|
|
30
|
+
}
|
|
31
|
+
super(FacilityReferences.toCleanReferences(value), skipDomainValidation, propertyName, 'The provided value must be an array of FacilityReference from the domain layer', { allowNull: false, allowUndefined: false });
|
|
32
|
+
_FacilityReferences_facilityReferences.set(this, void 0);
|
|
33
|
+
_FacilityReferences_options.set(this, void 0);
|
|
34
|
+
__classPrivateFieldSet(this, _FacilityReferences_facilityReferences, FacilityReferences.toCleanReferences(value), "f");
|
|
35
|
+
__classPrivateFieldSet(this, _FacilityReferences_options, finalOptions, "f");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validación estática para reutilización en factory methods y constructores.
|
|
39
|
+
*/
|
|
40
|
+
static validateReferences(value, propertyName, options) {
|
|
41
|
+
this.guardAgainstInvalidType(value, propertyName);
|
|
42
|
+
this.guardAgainstInvalidEmptyArray(value, options, propertyName);
|
|
43
|
+
value.forEach((reference, index) => {
|
|
44
|
+
this.guardAgainstInvalidReference(reference, index, propertyName);
|
|
45
|
+
});
|
|
46
|
+
this.guardAgainstDuplicatedIds(value, propertyName);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Valida que el valor sea un array válido.
|
|
50
|
+
*/
|
|
51
|
+
static guardAgainstInvalidType(value, propertyName) {
|
|
52
|
+
if (!Array.isArray(value)) {
|
|
53
|
+
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'array of FacilityReference', typeof value);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Valida que el array no esté vacío si no se permite.
|
|
58
|
+
*/
|
|
59
|
+
static guardAgainstInvalidEmptyArray(value, options, propertyName) {
|
|
60
|
+
if (!options.allowEmpty && value.length === 0) {
|
|
61
|
+
throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(propertyName, 'non-empty array', 'empty array');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Valida que no haya sedes duplicadas en la lista.
|
|
66
|
+
*/
|
|
67
|
+
static guardAgainstDuplicatedIds(value, propertyName) {
|
|
68
|
+
const ids = value.map((item) => item.id.trim());
|
|
69
|
+
const uniqueIds = new Set(ids);
|
|
70
|
+
if (ids.length !== uniqueIds.size) {
|
|
71
|
+
throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(`${propertyName}.ids`, 'array with unique IDs', 'array with duplicated IDs');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Valida una referencia individual.
|
|
76
|
+
*/
|
|
77
|
+
static guardAgainstInvalidReference(reference, index, basePropertyName) {
|
|
78
|
+
const propertyName = `${basePropertyName}[${index}]`;
|
|
79
|
+
if (!reference || typeof reference !== 'object') {
|
|
80
|
+
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'FacilityReference object', typeof reference);
|
|
81
|
+
}
|
|
82
|
+
if (typeof reference.id !== 'string') {
|
|
83
|
+
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.id`, 'string', typeof reference.id);
|
|
84
|
+
}
|
|
85
|
+
if (typeof reference.commercialBranchName !== 'string') {
|
|
86
|
+
throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.commercialBranchName`, 'string', typeof reference.commercialBranchName);
|
|
87
|
+
}
|
|
88
|
+
String_1.String.guardAgainstEmptyValue(reference.id, `${propertyName}.id`);
|
|
89
|
+
AggregateId_1.AggregateId.guardAgainstInvalidId(reference.id, `${propertyName}.id`);
|
|
90
|
+
String_1.String.guardAgainstEmptyValue(reference.commercialBranchName, `${propertyName}.commercialBranchName`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Limpia y normaliza las referencias.
|
|
94
|
+
*/
|
|
95
|
+
static toCleanReferences(value) {
|
|
96
|
+
return value.map((item) => ({
|
|
97
|
+
id: item.id.trim(),
|
|
98
|
+
commercialBranchName: item.commercialBranchName.trim(),
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Array de referencias de sedes (inmutable).
|
|
103
|
+
*/
|
|
104
|
+
get facilityReferences() {
|
|
105
|
+
return Object.freeze([...__classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f")]);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Opciones de configuración de la colección.
|
|
109
|
+
*/
|
|
110
|
+
get options() {
|
|
111
|
+
return Object.freeze({ ...__classPrivateFieldGet(this, _FacilityReferences_options, "f") });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Número de referencias en la lista.
|
|
115
|
+
*/
|
|
116
|
+
get count() {
|
|
117
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").length;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Verifica si la lista está vacía.
|
|
121
|
+
*/
|
|
122
|
+
isEmpty() {
|
|
123
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").length === 0;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Verifica si la lista tiene referencias.
|
|
127
|
+
*/
|
|
128
|
+
hasReferences() {
|
|
129
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").length > 0;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Verifica si la colección permite estar vacía.
|
|
133
|
+
*/
|
|
134
|
+
allowsEmpty() {
|
|
135
|
+
return __classPrivateFieldGet(this, _FacilityReferences_options, "f").allowEmpty === true;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Verifica si la colección está en un estado válido según sus opciones.
|
|
139
|
+
*/
|
|
140
|
+
isValidState() {
|
|
141
|
+
if (!this.allowsEmpty() && this.isEmpty()) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Obtiene una referencia por su id.
|
|
148
|
+
*/
|
|
149
|
+
getById(id) {
|
|
150
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").find((reference) => reference.id === id.trim());
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Verifica si existe una referencia con el id especificado.
|
|
154
|
+
*/
|
|
155
|
+
hasId(id) {
|
|
156
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").some((reference) => reference.id === id.trim());
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Obtiene todos los ids de las referencias.
|
|
160
|
+
*/
|
|
161
|
+
getIds() {
|
|
162
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").map((reference) => reference.id);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Obtiene todos los nombres comerciales de las referencias.
|
|
166
|
+
*/
|
|
167
|
+
getCommercialBranchNames() {
|
|
168
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").map((reference) => reference.commercialBranchName);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Compara la igualdad semántica con otra lista de referencias.
|
|
172
|
+
* Dos colecciones son iguales si referencian el mismo conjunto de sedes.
|
|
173
|
+
*/
|
|
174
|
+
equals(other) {
|
|
175
|
+
if (!(other instanceof FacilityReferences)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
if (__classPrivateFieldGet(this, _FacilityReferences_options, "f").allowEmpty !== __classPrivateFieldGet(other, _FacilityReferences_options, "f").allowEmpty) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
if (__classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").length !== __classPrivateFieldGet(other, _FacilityReferences_facilityReferences, "f").length) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
const otherIds = new Set(other.getIds());
|
|
185
|
+
return this.getIds().every((id) => otherIds.has(id));
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Genera un hash code para usar en colecciones.
|
|
189
|
+
*/
|
|
190
|
+
hashCode() {
|
|
191
|
+
const optionsHash = __classPrivateFieldGet(this, _FacilityReferences_options, "f").allowEmpty ? 'E' : 'NE';
|
|
192
|
+
return `facilityReferences_${optionsHash}_${[...this.getIds()].sort().join('_')}`;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Convierte a representación primitiva para persistencia.
|
|
196
|
+
*/
|
|
197
|
+
toPrimitives() {
|
|
198
|
+
return __classPrivateFieldGet(this, _FacilityReferences_facilityReferences, "f").map((reference) => ({
|
|
199
|
+
id: reference.id,
|
|
200
|
+
commercialBranchName: reference.commercialBranchName,
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Representación como string (lista de nombres comerciales).
|
|
205
|
+
*/
|
|
206
|
+
toString() {
|
|
207
|
+
if (this.isEmpty()) {
|
|
208
|
+
return 'Sin sedes';
|
|
209
|
+
}
|
|
210
|
+
return this.getCommercialBranchNames().join(', ');
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Representación JSON para serialización.
|
|
214
|
+
*/
|
|
215
|
+
toJSON() {
|
|
216
|
+
return this.toPrimitives();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.FacilityReferences = FacilityReferences;
|
|
220
|
+
_FacilityReferences_facilityReferences = new WeakMap(), _FacilityReferences_options = new WeakMap();
|
|
221
|
+
FacilityReferences.DEFAULT_PROPERTY_NAME = 'facilityReferences';
|
|
222
|
+
FacilityReferences.DEFAULT_OPTIONS = {
|
|
223
|
+
allowEmpty: false, // Por defecto no permite estar vacío
|
|
224
|
+
};
|