@carbonbox/domain 0.10.8 → 0.11.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.
Files changed (112) hide show
  1. package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.js +47 -4
  2. package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodEnd.js +20 -0
  3. package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodStart.js +20 -0
  4. package/build/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionSegmentConfiguration.js +29 -0
  5. package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/entity/CorporateCarbonFootprintSegmentConfiguration.js +10 -12
  6. package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.js +119 -0
  7. package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/domain/value-objects/CorporateCarbonFootprintConfigurationSegmentConfigurations.js +1 -1
  8. package/build/carbonbox/carbon-footprint-configurations/event-configurations/domain/value-objects/EventCarbonFootprintConfigurationEventEditionLifecycleStageConfigurations.js +1 -1
  9. package/build/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/entity/EventEditionLifecycleStageConfiguration.js +10 -12
  10. package/build/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSourceConfigurations.js +119 -0
  11. package/build/carbonbox/carbon-footprint-configurations/product-configurations/domain/value-objects/ProductCarbonFootprintConfigurationSegmentConfigurations.js +1 -1
  12. package/build/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/entity/ProductCarbonFootprintSegmentConfiguration.js +10 -12
  13. package/build/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.js +119 -0
  14. package/build/carbonbox/shared/domain/authorization/enums/Permission.js +2 -0
  15. package/build/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReference.js +2 -0
  16. package/build/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReferencePrimitives.js +2 -0
  17. package/build/carbonbox/shared/domain/types/EmissionSourceConfiguration.js +2 -0
  18. package/build/carbonbox/shared/domain/types/EmissionSourceConfigurationPrimitives.js +2 -0
  19. package/build/carbonbox/shared/domain/value-objects/CarbonFootprintSegmentConfigurationReference.js +193 -0
  20. package/build/carbonbox/shared/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationReferences.js +76 -185
  21. package/build/carbonbox/shared/domain/value-objects/EmissionSourceConfiguration.js +97 -0
  22. package/build/carbonbox/shared/domain/value-objects/EventEditionLifecycleStageConfigurationReferences.js +99 -252
  23. package/build/carbonbox/shared/domain/value-objects/ProductCarbonFootprintSegmentConfigurationReferences.js +106 -280
  24. package/build/main/index.js +32 -18
  25. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.d.ts +11 -0
  26. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/ActivityDataSubmission.d.ts.map +1 -1
  27. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/IActivityDataSubmission.d.ts +8 -0
  28. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/entity/IActivityDataSubmission.d.ts.map +1 -1
  29. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionPrimitives.d.ts +4 -0
  30. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionPrimitives.d.ts.map +1 -1
  31. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionProps.d.ts +4 -0
  32. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/types/ActivityDataSubmissionProps.d.ts.map +1 -1
  33. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodEnd.d.ts +9 -0
  34. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodEnd.d.ts.map +1 -0
  35. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodStart.d.ts +9 -0
  36. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionPeriodStart.d.ts.map +1 -0
  37. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionSegmentConfiguration.d.ts +11 -0
  38. package/build/types/carbonbox/activity-data-collection/activity-data-submissions/domain/value-objects/ActivityDataSubmissionSegmentConfiguration.d.ts.map +1 -0
  39. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/entity/CorporateCarbonFootprintSegmentConfiguration.d.ts +2 -2
  40. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/entity/CorporateCarbonFootprintSegmentConfiguration.d.ts.map +1 -1
  41. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/entity/ICorporateCarbonFootprintSegmentConfiguration.d.ts +2 -2
  42. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/entity/ICorporateCarbonFootprintSegmentConfiguration.d.ts.map +1 -1
  43. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/types/CorporateCarbonFootprintSegmentConfigurationPrimitives.d.ts +2 -2
  44. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/types/CorporateCarbonFootprintSegmentConfigurationPrimitives.d.ts.map +1 -1
  45. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/types/CorporateCarbonFootprintSegmentConfigurationProps.d.ts +2 -2
  46. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/types/CorporateCarbonFootprintSegmentConfigurationProps.d.ts.map +1 -1
  47. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.d.ts +23 -0
  48. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.d.ts.map +1 -0
  49. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/entity/EventEditionLifecycleStageConfiguration.d.ts +2 -2
  50. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/entity/EventEditionLifecycleStageConfiguration.d.ts.map +1 -1
  51. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/entity/IEventEditionLifecycleStageConfiguration.d.ts +2 -2
  52. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/entity/IEventEditionLifecycleStageConfiguration.d.ts.map +1 -1
  53. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/types/EventEditionLifecycleStageConfigurationPrimitives.d.ts +2 -2
  54. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/types/EventEditionLifecycleStageConfigurationPrimitives.d.ts.map +1 -1
  55. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/types/EventEditionLifecycleStageConfigurationProps.d.ts +2 -2
  56. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/types/EventEditionLifecycleStageConfigurationProps.d.ts.map +1 -1
  57. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSourceConfigurations.d.ts +23 -0
  58. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSourceConfigurations.d.ts.map +1 -0
  59. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/entity/IProductCarbonFootprintSegmentConfiguration.d.ts +2 -2
  60. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/entity/IProductCarbonFootprintSegmentConfiguration.d.ts.map +1 -1
  61. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/entity/ProductCarbonFootprintSegmentConfiguration.d.ts +2 -2
  62. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/entity/ProductCarbonFootprintSegmentConfiguration.d.ts.map +1 -1
  63. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/types/ProductCarbonFootprintSegmentConfigurationPrimitives.d.ts +2 -2
  64. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/types/ProductCarbonFootprintSegmentConfigurationPrimitives.d.ts.map +1 -1
  65. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/types/ProductCarbonFootprintSegmentConfigurationProps.d.ts +2 -2
  66. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/types/ProductCarbonFootprintSegmentConfigurationProps.d.ts.map +1 -1
  67. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.d.ts +23 -0
  68. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSourceConfigurations.d.ts.map +1 -0
  69. package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts +2 -0
  70. package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts.map +1 -1
  71. package/build/types/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReference.d.ts +12 -0
  72. package/build/types/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReference.d.ts.map +1 -0
  73. package/build/types/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReferencePrimitives.d.ts +12 -0
  74. package/build/types/carbonbox/shared/domain/types/CarbonFootprintSegmentConfigurationReferencePrimitives.d.ts.map +1 -0
  75. package/build/types/carbonbox/shared/domain/types/CorporateCarbonFootprintSegmentConfigurationReference.d.ts +2 -2
  76. package/build/types/carbonbox/shared/domain/types/CorporateCarbonFootprintSegmentConfigurationReference.d.ts.map +1 -1
  77. package/build/types/carbonbox/shared/domain/types/CorporateCarbonFootprintSegmentConfigurationReferencePrimitives.d.ts +2 -2
  78. package/build/types/carbonbox/shared/domain/types/CorporateCarbonFootprintSegmentConfigurationReferencePrimitives.d.ts.map +1 -1
  79. package/build/types/carbonbox/shared/domain/types/EmissionSourceConfiguration.d.ts +6 -0
  80. package/build/types/carbonbox/shared/domain/types/EmissionSourceConfiguration.d.ts.map +1 -0
  81. package/build/types/carbonbox/shared/domain/types/EmissionSourceConfigurationPrimitives.d.ts +6 -0
  82. package/build/types/carbonbox/shared/domain/types/EmissionSourceConfigurationPrimitives.d.ts.map +1 -0
  83. package/build/types/carbonbox/shared/domain/types/EventEditionLifecycleStageConfigurationReference.d.ts +2 -2
  84. package/build/types/carbonbox/shared/domain/types/EventEditionLifecycleStageConfigurationReference.d.ts.map +1 -1
  85. package/build/types/carbonbox/shared/domain/types/EventEditionLifecycleStageConfigurationReferencePrimitives.d.ts +2 -2
  86. package/build/types/carbonbox/shared/domain/types/EventEditionLifecycleStageConfigurationReferencePrimitives.d.ts.map +1 -1
  87. package/build/types/carbonbox/shared/domain/types/ProductCarbonFootprintSegmentConfigurationReference.d.ts +2 -2
  88. package/build/types/carbonbox/shared/domain/types/ProductCarbonFootprintSegmentConfigurationReference.d.ts.map +1 -1
  89. package/build/types/carbonbox/shared/domain/types/ProductCarbonFootprintSegmentConfigurationReferencePrimitives.d.ts +2 -2
  90. package/build/types/carbonbox/shared/domain/types/ProductCarbonFootprintSegmentConfigurationReferencePrimitives.d.ts.map +1 -1
  91. package/build/types/carbonbox/shared/domain/value-objects/CarbonFootprintSegmentConfigurationReference.d.ts +37 -0
  92. package/build/types/carbonbox/shared/domain/value-objects/CarbonFootprintSegmentConfigurationReference.d.ts.map +1 -0
  93. package/build/types/carbonbox/shared/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationReferences.d.ts +8 -142
  94. package/build/types/carbonbox/shared/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationReferences.d.ts.map +1 -1
  95. package/build/types/carbonbox/shared/domain/value-objects/EmissionSourceConfiguration.d.ts +24 -0
  96. package/build/types/carbonbox/shared/domain/value-objects/EmissionSourceConfiguration.d.ts.map +1 -0
  97. package/build/types/carbonbox/shared/domain/value-objects/EventEditionLifecycleStageConfigurationReferences.d.ts +17 -164
  98. package/build/types/carbonbox/shared/domain/value-objects/EventEditionLifecycleStageConfigurationReferences.d.ts.map +1 -1
  99. package/build/types/carbonbox/shared/domain/value-objects/ProductCarbonFootprintSegmentConfigurationReferences.d.ts +20 -176
  100. package/build/types/carbonbox/shared/domain/value-objects/ProductCarbonFootprintSegmentConfigurationReferences.d.ts.map +1 -1
  101. package/build/types/main/index.d.ts +12 -1
  102. package/build/types/main/index.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/build/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSources.js +0 -90
  105. package/build/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSources.js +0 -22
  106. package/build/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSources.js +0 -22
  107. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSources.d.ts +0 -44
  108. package/build/types/carbonbox/carbon-footprint-configurations/corporate-configurations/corporate-segment-configurations/domain/value-objects/CorporateCarbonFootprintSegmentConfigurationEmissionSources.d.ts.map +0 -1
  109. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSources.d.ts +0 -9
  110. package/build/types/carbonbox/carbon-footprint-configurations/event-configurations/event-edition-lifecycle-stage-configurations/domain/value-objects/EventEditionLifecycleStageConfigurationEmissionSources.d.ts.map +0 -1
  111. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSources.d.ts +0 -9
  112. package/build/types/carbonbox/carbon-footprint-configurations/product-configurations/product-segment-configurations/domain/value-objects/ProductCarbonFootprintSegmentConfigurationEmissionSources.d.ts.map +0 -1
@@ -20,10 +20,6 @@ const ValueObject_1 = require("./ValueObject");
20
20
  const String_1 = require("./String");
21
21
  const AggregateId_1 = require("./AggregateId");
22
22
  class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject_1.ValueObject {
23
- /**
24
- * Constructor protegido para que solo clases hijas puedan instanciar.
25
- * Aplica todas las validaciones de dominio al momento de construcción.
26
- */
27
23
  constructor(value, skipDomainValidation, propertyName = CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_PROPERTY_NAME, options = CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_OPTIONS) {
28
24
  super(value, skipDomainValidation, propertyName, 'The provided value must be of type CorporateCarbonFootprintSegmentConfigurationReference[] from the domain layer', { allowNull: false, allowUndefined: false });
29
25
  _CorporateCarbonFootprintSegmentConfigurationReferences_configurations.set(this, void 0);
@@ -32,12 +28,9 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
32
28
  if (skipDomainValidation === false) {
33
29
  CorporateCarbonFootprintSegmentConfigurationReferences.validateConfigurations(value, propertyName, finalOptions);
34
30
  }
35
- __classPrivateFieldSet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, [...value], "f"); // Create defensive copy
31
+ __classPrivateFieldSet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, [...value], "f");
36
32
  __classPrivateFieldSet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, finalOptions, "f");
37
33
  }
38
- /**
39
- * Validación estática para reutilización en factory methods y constructores.
40
- */
41
34
  static validateConfigurations(value, propertyName, options) {
42
35
  this.guardAgainstInvalidArrayType(value, propertyName);
43
36
  this.guardAgainstInvalidEmptyArray(value, options, propertyName);
@@ -46,46 +39,31 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
46
39
  this.guardAgainstInvalidConfiguration(configuration, index, propertyName);
47
40
  });
48
41
  }
49
- /**
50
- * Valida que el valor sea un array.
51
- */
52
42
  static guardAgainstInvalidArrayType(value, propertyName) {
53
43
  if (!Array.isArray(value)) {
54
44
  throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'array', typeof value);
55
45
  }
56
46
  }
57
- /**
58
- * Valida que el array no esté vacío si no se permite.
59
- */
60
47
  static guardAgainstInvalidEmptyArray(value, options, propertyName) {
61
48
  if (!options.allowEmpty && value.length === 0) {
62
49
  throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(propertyName, 'non-empty array', 'empty array');
63
50
  }
64
51
  }
65
- /**
66
- * Valida que no haya códigos de configuración duplicados.
67
- */
68
52
  static guardAgainstDuplicateConfigurationIds(value, propertyName) {
69
- const configurationIds = value.map((config) => config.id);
53
+ const configurationIds = value.map((configuration) => configuration.id);
70
54
  const uniqueIds = new Set(configurationIds);
71
55
  if (configurationIds.length !== uniqueIds.size) {
72
56
  throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(`${propertyName}.id`, 'unique configuration IDs', 'duplicate IDs found');
73
57
  }
74
58
  }
75
- /**
76
- * Valida una configuración individual.
77
- */
78
59
  static guardAgainstInvalidConfiguration(configuration, index, basePropertyName) {
79
60
  const propertyName = `${basePropertyName}[${index}]`;
80
61
  this.guardAgainstInvalidConfigurationStructure(configuration, propertyName);
81
62
  this.guardAgainstInvalidConfigurationId(configuration.id, `${propertyName}.id`);
82
63
  this.guardAgainstInvalidCorporateSegment(configuration.segment, `${propertyName}.segment`);
83
64
  this.guardAgainstInvalidCorporateSubsegment(configuration.subsegment, `${propertyName}.subsegment`);
84
- this.guardAgainstInvalidEmissionSources(configuration.emissionSources, `${propertyName}.emissionSources`);
65
+ this.guardAgainstInvalidEmissionSourceConfigurations(configuration.emissionSourceConfigurations, `${propertyName}.emissionSourceConfigurations`);
85
66
  }
86
- /**
87
- * Valida que el objeto de configuración tenga la estructura correcta.
88
- */
89
67
  static guardAgainstInvalidConfigurationStructure(configuration, propertyName) {
90
68
  if (!configuration || typeof configuration !== 'object') {
91
69
  throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'CorporateCarbonFootprintSegmentConfigurationReference object', typeof configuration);
@@ -99,53 +77,52 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
99
77
  if (configuration.subsegment !== null && typeof configuration.subsegment !== 'object') {
100
78
  throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.subsegment`, 'CorporateSubsegmentReference object or null', typeof configuration.subsegment);
101
79
  }
102
- if (!Array.isArray(configuration.emissionSources)) {
103
- throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.emissionSources`, 'EmissionSource array', typeof configuration.emissionSources);
80
+ if (!Array.isArray(configuration.emissionSourceConfigurations)) {
81
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.emissionSourceConfigurations`, 'EmissionSourceConfiguration array', typeof configuration.emissionSourceConfigurations);
104
82
  }
105
83
  }
106
- /**
107
- * Valida el ID de configuración usando las validaciones de AggregateId.
108
- */
109
84
  static guardAgainstInvalidConfigurationId(id, propertyName) {
110
85
  String_1.String.guardAgainstEmptyValue(id, propertyName);
111
86
  AggregateId_1.AggregateId.guardAgainstInvalidId(id, propertyName);
112
87
  }
113
- /**
114
- * Valida la referencia de segmento corporativo.
115
- */
116
88
  static guardAgainstInvalidCorporateSegment(segment, propertyName) {
117
89
  this.guardAgainstInvalidSegmentReference(segment, propertyName, 'CorporateConfigurationCarbonFootprintSegmentReference');
118
90
  }
119
- /**
120
- * Valida la referencia de subsegmento corporativo (puede ser null).
121
- */
122
91
  static guardAgainstInvalidCorporateSubsegment(subsegment, propertyName) {
123
92
  if (subsegment !== null) {
124
93
  this.guardAgainstInvalidSegmentReference(subsegment, propertyName, 'CorporateConfigurationCarbonFootprintSubsegmentReference');
125
94
  }
126
95
  }
127
- /**
128
- * Valida el array de fuentes de emisión.
129
- */
130
- static guardAgainstInvalidEmissionSources(emissionSources, propertyName) {
131
- if (!Array.isArray(emissionSources)) {
132
- throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'EmissionSource array', typeof emissionSources);
96
+ static guardAgainstInvalidEmissionSourceConfigurations(emissionSourceConfigurations, propertyName) {
97
+ if (!Array.isArray(emissionSourceConfigurations)) {
98
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'EmissionSourceConfiguration array', typeof emissionSourceConfigurations);
133
99
  }
134
- if (emissionSources.length === 0) {
135
- throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(propertyName, 'non-empty EmissionSource array', 'empty array');
100
+ if (emissionSourceConfigurations.length === 0) {
101
+ throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(propertyName, 'non-empty EmissionSourceConfiguration array', 'empty array');
136
102
  }
137
- emissionSources.forEach((emissionSource, index) => {
138
- if (typeof emissionSource !== 'string') {
139
- throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}[${index}]`, 'EmissionSource enum value', typeof emissionSource);
103
+ const validEmissionSources = Object.values(EmissionSource_1.EmissionSource);
104
+ const seenEmissionSources = new Set();
105
+ emissionSourceConfigurations.forEach((configuration, index) => {
106
+ const elementPath = `${propertyName}[${index}]`;
107
+ if (!configuration || typeof configuration !== 'object') {
108
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(elementPath, 'EmissionSourceConfiguration object', typeof configuration);
140
109
  }
141
- if (!Object.values(EmissionSource_1.EmissionSource).includes(emissionSource)) {
142
- throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(`${propertyName}[${index}]`, `valid EmissionSource enum value (${Object.values(EmissionSource_1.EmissionSource).join(', ')})`, emissionSource);
110
+ if (typeof configuration.emissionSource !== 'string') {
111
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${elementPath}.emissionSource`, 'EmissionSource enum value', typeof configuration.emissionSource);
143
112
  }
113
+ if (!validEmissionSources.includes(configuration.emissionSource)) {
114
+ throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(`${elementPath}.emissionSource`, `valid EmissionSource enum value (${validEmissionSources.join(', ')})`, configuration.emissionSource);
115
+ }
116
+ if (typeof configuration.dynamicFormCode !== 'string') {
117
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${elementPath}.dynamicFormCode`, 'string', typeof configuration.dynamicFormCode);
118
+ }
119
+ String_1.String.guardAgainstEmptyValue(configuration.dynamicFormCode, `${elementPath}.dynamicFormCode`);
120
+ if (seenEmissionSources.has(configuration.emissionSource)) {
121
+ throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(`${elementPath}.emissionSource`, 'unique emissionSource within emissionSourceConfigurations', `duplicate emissionSource '${configuration.emissionSource}'`);
122
+ }
123
+ seenEmissionSources.add(configuration.emissionSource);
144
124
  });
145
125
  }
146
- /**
147
- * Valida una referencia de segmento genérica.
148
- */
149
126
  static guardAgainstInvalidSegmentReference(reference, propertyName, typeName) {
150
127
  if (!reference || typeof reference !== 'object') {
151
128
  throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, `${typeName} object`, typeof reference);
@@ -156,179 +133,110 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
156
133
  String_1.String.guardAgainstEmptyValue(reference.id, `${propertyName}.id`);
157
134
  AggregateId_1.AggregateId.guardAgainstInvalidId(reference.id, `${propertyName}.id`);
158
135
  }
159
- /**
160
- * Configuraciones de segmento corporativo (inmutable).
161
- */
162
136
  get configurations() {
163
137
  return Object.freeze([...__classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f")]);
164
138
  }
165
- /**
166
- * Opciones de configuración de la colección.
167
- */
168
139
  get options() {
169
140
  return Object.freeze({ ...__classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, "f") });
170
141
  }
171
- /**
172
- * Número de configuraciones en la colección.
173
- */
174
142
  get length() {
175
143
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length;
176
144
  }
177
- /**
178
- * Verifica si la colección está vacía.
179
- */
180
145
  isEmpty() {
181
146
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length === 0;
182
147
  }
183
- /**
184
- * Verifica si la colección tiene configuraciones.
185
- */
186
148
  hasConfigurations() {
187
149
  return !this.isEmpty();
188
150
  }
189
- /**
190
- * Verifica si la colección permite estar vacía.
191
- */
192
151
  allowsEmpty() {
193
152
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, "f").allowEmpty === true;
194
153
  }
195
- /**
196
- * Verifica si la colección requiere tener elementos.
197
- */
198
154
  requiresElements() {
199
155
  return !this.allowsEmpty();
200
156
  }
201
- /**
202
- * Verifica si la colección está en un estado válido según sus opciones.
203
- */
204
157
  isValidState() {
205
158
  if (this.requiresElements() && this.isEmpty()) {
206
159
  return false;
207
160
  }
208
161
  return true;
209
162
  }
210
- /**
211
- * Obtiene una configuración por su código.
212
- */
213
163
  getConfigurationById(configurationId) {
214
164
  const configuration = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").find((config) => config.id === configurationId.trim());
215
165
  return configuration || null;
216
166
  }
217
- /**
218
- * Verifica si existe una configuración con el código especificado.
219
- */
220
167
  hasConfigurationId(configurationId) {
221
168
  return this.getConfigurationById(configurationId) !== null;
222
169
  }
223
- /**
224
- * Obtiene una configuración por su índice.
225
- */
226
170
  getConfigurationAt(index) {
227
171
  if (index < 0 || index >= __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length) {
228
172
  return null;
229
173
  }
230
174
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f")[index];
231
175
  }
232
- /**
233
- * Obtiene todos los IDs de configuración.
234
- */
235
176
  getAllConfigurationIds() {
236
177
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").map((config) => config.id);
237
178
  }
238
- /**
239
- * Obtiene todas las configuraciones por ID de segmento corporativo.
240
- */
241
179
  getConfigurationsBySegmentId(segmentId) {
242
180
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.segment.id === segmentId.trim());
243
181
  }
244
- /**
245
- * Obtiene todas las configuraciones por fuente de emisión.
246
- */
247
182
  getConfigurationsByEmissionSource(emissionSource) {
248
- return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.emissionSources.includes(emissionSource));
183
+ return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.emissionSourceConfigurations.some((esc) => esc.emissionSource === emissionSource));
249
184
  }
250
- /**
251
- * Obtiene configuraciones que tienen subsegmento corporativo asignado.
252
- */
253
185
  getConfigurationsWithSubsegment() {
254
186
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.subsegment !== null);
255
187
  }
256
- /**
257
- * Obtiene configuraciones que no tienen subsegmento corporativo asignado.
258
- */
259
188
  getConfigurationsWithoutSubsegment() {
260
189
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.subsegment === null);
261
190
  }
262
- /**
263
- * Verifica si alguna configuración tiene subsegmento asignado.
264
- */
265
191
  hasAnyConfigurationWithSubsegment() {
266
192
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").some((config) => config.subsegment !== null);
267
193
  }
268
- /**
269
- * Obtiene todos los IDs únicos de segmentos corporativos.
270
- */
271
194
  getUniqueSegmentIds() {
272
195
  const ids = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").map((config) => config.segment.id);
273
196
  return [...new Set(ids)];
274
197
  }
275
- /**
276
- * Obtiene todas las fuentes de emisión únicas.
277
- */
278
198
  getUniqueEmissionSources() {
279
- const sources = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").flatMap((config) => config.emissionSources);
199
+ const sources = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").flatMap((config) => config.emissionSourceConfigurations.map((esc) => esc.emissionSource));
280
200
  return [...new Set(sources)];
281
201
  }
282
- /**
283
- * Busca configuraciones que coincidan con un patrón en ID de configuración o fuentes de emisión.
284
- */
202
+ getDynamicFormCodeFor(configurationId, emissionSource) {
203
+ const configuration = this.getConfigurationById(configurationId);
204
+ if (!configuration)
205
+ return null;
206
+ const match = configuration.emissionSourceConfigurations.find((esc) => esc.emissionSource === emissionSource);
207
+ return match ? match.dynamicFormCode : null;
208
+ }
285
209
  findConfigurationsMatching(searchText) {
286
210
  const lowerSearchText = searchText.toLowerCase().trim();
287
211
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").filter((config) => config.id.toLowerCase().includes(lowerSearchText)
288
212
  || config.segment.id.toLowerCase().includes(lowerSearchText)
289
- || config.emissionSources.some((source) => source.toLowerCase().includes(lowerSearchText))
213
+ || config.emissionSourceConfigurations.some((esc) => esc.emissionSource.toLowerCase().includes(lowerSearchText)
214
+ || esc.dynamicFormCode.toLowerCase().includes(lowerSearchText))
290
215
  || (config.subsegment && config.subsegment.id.toLowerCase().includes(lowerSearchText)));
291
216
  }
292
- /**
293
- * Obtiene los primeros N configuraciones.
294
- */
295
217
  getFirstN(count) {
296
218
  if (count <= 0) {
297
219
  return [];
298
220
  }
299
221
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").slice(0, count);
300
222
  }
301
- /**
302
- * Obtiene los últimos N configuraciones.
303
- */
304
223
  getLastN(count) {
305
224
  if (count <= 0) {
306
225
  return [];
307
226
  }
308
227
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").slice(-count);
309
228
  }
310
- /**
311
- * Obtiene estadísticas de la colección.
312
- */
313
229
  getStatistics() {
314
- const totalConfigurations = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length;
315
- const configurationsWithSubsegment = this.getConfigurationsWithSubsegment().length;
316
- const configurationsWithoutSubsegment = this.getConfigurationsWithoutSubsegment().length;
317
- const uniqueSegments = this.getUniqueSegmentIds().length;
318
- const uniqueEmissionSources = this.getUniqueEmissionSources().length;
319
230
  return {
320
- totalConfigurations,
321
- configurationsWithSubsegment,
322
- configurationsWithoutSubsegment,
323
- uniqueSegments,
324
- uniqueEmissionSources,
231
+ totalConfigurations: __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length,
232
+ configurationsWithSubsegment: this.getConfigurationsWithSubsegment().length,
233
+ configurationsWithoutSubsegment: this.getConfigurationsWithoutSubsegment().length,
234
+ uniqueSegments: this.getUniqueSegmentIds().length,
235
+ uniqueEmissionSources: this.getUniqueEmissionSources().length,
325
236
  allowsEmpty: __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, "f").allowEmpty === true,
326
237
  isValidState: this.isValidState(),
327
238
  };
328
239
  }
329
- /**
330
- * Compara la igualdad semántica con otra colección de configuraciones.
331
- */
332
240
  equals(other) {
333
241
  if (!(other instanceof CorporateCarbonFootprintSegmentConfigurationReferences)) {
334
242
  return false;
@@ -344,57 +252,46 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
344
252
  return this.configurationsAreEqual(config, otherConfig);
345
253
  });
346
254
  }
347
- /**
348
- * Compara si dos configuraciones son iguales.
349
- */
350
- configurationsAreEqual(config1, config2) {
351
- return (config1.id === config2.id
352
- && this.segmentReferencesAreEqual(config1.segment, config2.segment)
353
- && this.subsegmentReferencesAreEqual(config1.subsegment, config2.subsegment)
354
- && this.emissionSourcesAreEqual(config1.emissionSources, config2.emissionSources));
355
- }
356
- /**
357
- * Compara referencias de segmento.
358
- */
359
- segmentReferencesAreEqual(seg1, seg2) {
360
- return seg1.id === seg2.id;
361
- }
362
- /**
363
- * Compara referencias de subsegmento (pueden ser null).
364
- */
365
- subsegmentReferencesAreEqual(subseg1, subseg2) {
366
- if (subseg1 === null && subseg2 === null) {
255
+ configurationsAreEqual(leftConfiguration, rightConfiguration) {
256
+ return (leftConfiguration.id === rightConfiguration.id
257
+ && this.segmentReferencesAreEqual(leftConfiguration.segment, rightConfiguration.segment)
258
+ && this.subsegmentReferencesAreEqual(leftConfiguration.subsegment, rightConfiguration.subsegment)
259
+ && this.emissionSourceConfigurationsAreEqual(leftConfiguration.emissionSourceConfigurations, rightConfiguration.emissionSourceConfigurations));
260
+ }
261
+ segmentReferencesAreEqual(leftSegment, rightSegment) {
262
+ return leftSegment.id === rightSegment.id;
263
+ }
264
+ subsegmentReferencesAreEqual(leftSubsegment, rightSubsegment) {
265
+ if (leftSubsegment === null && rightSubsegment === null) {
367
266
  return true;
368
267
  }
369
- if (subseg1 === null || subseg2 === null) {
268
+ if (leftSubsegment === null || rightSubsegment === null) {
370
269
  return false;
371
270
  }
372
- return subseg1.id === subseg2.id;
271
+ return leftSubsegment.id === rightSubsegment.id;
373
272
  }
374
- /**
375
- * Compara arrays de fuentes de emisión.
376
- */
377
- emissionSourcesAreEqual(sources1, sources2) {
378
- if (sources1.length !== sources2.length) {
273
+ emissionSourceConfigurationsAreEqual(leftConfigurations, rightConfigurations) {
274
+ if (leftConfigurations.length !== rightConfigurations.length) {
379
275
  return false;
380
276
  }
381
- const sorted1 = [...sources1].sort();
382
- const sorted2 = [...sources2].sort();
383
- return sorted1.every((source, index) => source === sorted2[index]);
277
+ const leftSorted = [...leftConfigurations].sort((left, right) => left.emissionSource.localeCompare(right.emissionSource));
278
+ const rightSorted = [...rightConfigurations].sort((left, right) => left.emissionSource.localeCompare(right.emissionSource));
279
+ return leftSorted.every((configuration, index) => (configuration.emissionSource === rightSorted[index].emissionSource
280
+ && configuration.dynamicFormCode === rightSorted[index].dynamicFormCode));
384
281
  }
385
- /**
386
- * Genera un hash code para usar en colecciones.
387
- */
388
282
  hashCode() {
389
283
  const configHashes = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f")
390
- .map((config) => `${config.id}_${config.segment.id}_${config.emissionSources.sort().join(',')}`)
284
+ .map((config) => {
285
+ const sortedConfigurations = [...config.emissionSourceConfigurations]
286
+ .sort((left, right) => left.emissionSource.localeCompare(right.emissionSource))
287
+ .map((esc) => `${esc.emissionSource}:${esc.dynamicFormCode}`)
288
+ .join(',');
289
+ return `${config.id}_${config.segment.id}_${sortedConfigurations}`;
290
+ })
391
291
  .join('|');
392
292
  const optionsHash = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, "f").allowEmpty ? 'allowEmpty' : 'requireElements';
393
293
  return `corporateSegmentConfigurations_${optionsHash}_${configHashes}`;
394
294
  }
395
- /**
396
- * Convierte a representación primitiva para persistencia.
397
- */
398
295
  toPrimitives() {
399
296
  return __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").map((config) => ({
400
297
  id: config.id,
@@ -404,25 +301,19 @@ class CorporateCarbonFootprintSegmentConfigurationReferences extends ValueObject
404
301
  subsegment: config.subsegment ? {
405
302
  id: config.subsegment.id,
406
303
  } : null,
407
- emissionSources: config.emissionSources,
304
+ emissionSourceConfigurations: config.emissionSourceConfigurations.map((esc) => ({
305
+ emissionSource: esc.emissionSource,
306
+ dynamicFormCode: esc.dynamicFormCode,
307
+ })),
408
308
  }));
409
309
  }
410
- /**
411
- * Representación como string (resumen de la colección).
412
- */
413
310
  toString() {
414
311
  const emptyStatus = __classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_options, "f").allowEmpty ? 'puede estar vacía' : 'requiere elementos';
415
312
  return `Configuraciones de Segmento Corporativo (${__classPrivateFieldGet(this, _CorporateCarbonFootprintSegmentConfigurationReferences_configurations, "f").length}) - ${emptyStatus}`;
416
313
  }
417
- /**
418
- * Representación JSON para serialización.
419
- */
420
314
  toJSON() {
421
315
  return this.toPrimitives();
422
316
  }
423
- /**
424
- * Método estático para validar si un array es válido.
425
- */
426
317
  static isValidConfigurations(value, options = CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_OPTIONS) {
427
318
  try {
428
319
  const finalOptions = { ...CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_OPTIONS, ...options };
@@ -438,5 +329,5 @@ exports.CorporateCarbonFootprintSegmentConfigurationReferences = CorporateCarbon
438
329
  _CorporateCarbonFootprintSegmentConfigurationReferences_configurations = new WeakMap(), _CorporateCarbonFootprintSegmentConfigurationReferences_options = new WeakMap();
439
330
  CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_PROPERTY_NAME = 'corporateSegmentConfigurationReferences';
440
331
  CorporateCarbonFootprintSegmentConfigurationReferences.DEFAULT_OPTIONS = {
441
- allowEmpty: false, // Por defecto no permite estar vacío
332
+ allowEmpty: false,
442
333
  };
@@ -0,0 +1,97 @@
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 _EmissionSourceConfiguration_emissionSource, _EmissionSourceConfiguration_dynamicFormCode;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.EmissionSourceConfiguration = void 0;
16
+ const InvalidPropertyTypeError_1 = require("../exceptions/InvalidPropertyTypeError");
17
+ const InvalidPropertyValueError_1 = require("../exceptions/InvalidPropertyValueError");
18
+ const EmissionSource_1 = require("../enums/EmissionSource");
19
+ const ObjectValueObject_1 = require("./ObjectValueObject");
20
+ const String_1 = require("./String");
21
+ class EmissionSourceConfiguration extends ObjectValueObject_1.ObjectValueObject {
22
+ constructor(value, skipDomainValidation, propertyName = EmissionSourceConfiguration.DEFAULT_PROPERTY_NAME) {
23
+ super(value, skipDomainValidation, propertyName, 'The provided value must be of type EmissionSourceConfiguration from the domain layer', { allowNull: false, allowUndefined: false });
24
+ _EmissionSourceConfiguration_emissionSource.set(this, void 0);
25
+ _EmissionSourceConfiguration_dynamicFormCode.set(this, void 0);
26
+ if (skipDomainValidation === false) {
27
+ EmissionSourceConfiguration.validateEmissionSourceConfiguration(value, propertyName);
28
+ }
29
+ __classPrivateFieldSet(this, _EmissionSourceConfiguration_emissionSource, value.emissionSource, "f");
30
+ __classPrivateFieldSet(this, _EmissionSourceConfiguration_dynamicFormCode, value.dynamicFormCode.trim(), "f");
31
+ }
32
+ static validateEmissionSourceConfiguration(value, propertyName) {
33
+ this.guardAgainstInvalidStructure(value, propertyName);
34
+ this.guardAgainstInvalidEmissionSource(value.emissionSource, `${propertyName}.emissionSource`);
35
+ this.guardAgainstInvalidDynamicFormCode(value.dynamicFormCode, `${propertyName}.dynamicFormCode`);
36
+ }
37
+ static guardAgainstInvalidStructure(value, propertyName) {
38
+ if (!value || typeof value !== 'object') {
39
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(propertyName, 'EmissionSourceConfiguration object', typeof value);
40
+ }
41
+ if (typeof value.emissionSource !== 'string') {
42
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.emissionSource`, 'EmissionSource enum value', typeof value.emissionSource);
43
+ }
44
+ if (typeof value.dynamicFormCode !== 'string') {
45
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`${propertyName}.dynamicFormCode`, 'string', typeof value.dynamicFormCode);
46
+ }
47
+ }
48
+ static guardAgainstInvalidEmissionSource(emissionSource, propertyName) {
49
+ const validValues = Object.values(EmissionSource_1.EmissionSource);
50
+ if (!validValues.includes(emissionSource)) {
51
+ throw InvalidPropertyValueError_1.InvalidPropertyValueError.create(propertyName, `valid EmissionSource enum value (${validValues.join(', ')})`, emissionSource);
52
+ }
53
+ }
54
+ static guardAgainstInvalidDynamicFormCode(dynamicFormCode, propertyName) {
55
+ String_1.String.guardAgainstEmptyValue(dynamicFormCode, propertyName);
56
+ }
57
+ get emissionSource() {
58
+ return __classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f");
59
+ }
60
+ get dynamicFormCode() {
61
+ return __classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f");
62
+ }
63
+ hasEmissionSource(emissionSource) {
64
+ return __classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f") === emissionSource;
65
+ }
66
+ hasDynamicFormCode(dynamicFormCode) {
67
+ return __classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f") === dynamicFormCode.trim();
68
+ }
69
+ equals(other) {
70
+ if (!(other instanceof EmissionSourceConfiguration)) {
71
+ return false;
72
+ }
73
+ return __classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f") === __classPrivateFieldGet(other, _EmissionSourceConfiguration_emissionSource, "f")
74
+ && __classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f") === __classPrivateFieldGet(other, _EmissionSourceConfiguration_dynamicFormCode, "f");
75
+ }
76
+ hashCode() {
77
+ return `${__classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f")}__${__classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f")}`;
78
+ }
79
+ toPrimitives() {
80
+ return {
81
+ emissionSource: __classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f"),
82
+ dynamicFormCode: __classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f"),
83
+ };
84
+ }
85
+ toString() {
86
+ return `${__classPrivateFieldGet(this, _EmissionSourceConfiguration_emissionSource, "f")}:${__classPrivateFieldGet(this, _EmissionSourceConfiguration_dynamicFormCode, "f")}`;
87
+ }
88
+ toJSON() {
89
+ return this.toPrimitives();
90
+ }
91
+ static validateCompletely(value, propertyName = EmissionSourceConfiguration.DEFAULT_PROPERTY_NAME) {
92
+ this.validateEmissionSourceConfiguration(value, propertyName);
93
+ }
94
+ }
95
+ exports.EmissionSourceConfiguration = EmissionSourceConfiguration;
96
+ _EmissionSourceConfiguration_emissionSource = new WeakMap(), _EmissionSourceConfiguration_dynamicFormCode = new WeakMap();
97
+ EmissionSourceConfiguration.DEFAULT_PROPERTY_NAME = 'emissionSourceConfiguration';