@golemio/energetics 1.12.2-dev.2739893110 → 1.12.2-dev.2740931754

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 (132) hide show
  1. package/db/example/00_clear_test_data.sql +14 -0
  2. package/db/example/06_eno.sql +25 -0
  3. package/db/example/07_enapo_om_detail.sql +140 -0
  4. package/db/migrations/postgresql/20260805090000-ppas-distribution-installation.js +47 -0
  5. package/db/migrations/postgresql/20260807090000-enapo-gid-mapping-om-detail.js +53 -0
  6. package/db/migrations/postgresql/20260807091000-enapo-om-detail-porsenna.js +53 -0
  7. package/db/migrations/postgresql/sqls/20260805090000-ppas-distribution-installation-down.sql +86 -0
  8. package/db/migrations/postgresql/sqls/20260805090000-ppas-distribution-installation-up.sql +124 -0
  9. package/db/migrations/postgresql/sqls/20260807090000-enapo-gid-mapping-om-detail-down.sql +3 -0
  10. package/db/migrations/postgresql/sqls/20260807090000-enapo-gid-mapping-om-detail-up.sql +182 -0
  11. package/db/migrations/postgresql/sqls/20260807091000-enapo-om-detail-porsenna-down.sql +135 -0
  12. package/db/migrations/postgresql/sqls/20260807091000-enapo-om-detail-porsenna-up.sql +292 -0
  13. package/db/scripts/ded_gid_mapping_mock_import.sql +48 -0
  14. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js +2 -5
  15. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js.map +1 -1
  16. package/dist/integration-engine/enapo/ioc/Di.js +2 -0
  17. package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
  18. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +1 -0
  19. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +1 -0
  20. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
  21. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.d.ts +7 -0
  22. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.js +36 -0
  23. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.js.map +1 -0
  24. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.d.ts +7 -0
  25. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js +133 -122
  26. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js.map +1 -1
  27. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.d.ts +3 -1
  28. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js +10 -5
  29. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js.map +1 -1
  30. package/dist/output-gateway/constants/Links.d.ts +1 -0
  31. package/dist/output-gateway/constants/Links.js +2 -1
  32. package/dist/output-gateway/constants/Links.js.map +1 -1
  33. package/dist/output-gateway/controllers/v2/EnoBuildingsController.d.ts +11 -0
  34. package/dist/output-gateway/controllers/v2/EnoBuildingsController.js +53 -0
  35. package/dist/output-gateway/controllers/v2/EnoBuildingsController.js.map +1 -0
  36. package/dist/output-gateway/helpers/objectMappers.d.ts +10 -0
  37. package/dist/output-gateway/helpers/objectMappers.js +37 -0
  38. package/dist/output-gateway/helpers/objectMappers.js.map +1 -0
  39. package/dist/output-gateway/index.js +8 -1
  40. package/dist/output-gateway/index.js.map +1 -1
  41. package/dist/output-gateway/ioc/Di.js +9 -1
  42. package/dist/output-gateway/ioc/Di.js.map +1 -1
  43. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +4 -0
  44. package/dist/output-gateway/ioc/ModuleContainerToken.js +4 -0
  45. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
  46. package/dist/output-gateway/models/EnoBuildingDetailViewModel.d.ts +35 -0
  47. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js +43 -0
  48. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js.map +1 -0
  49. package/dist/output-gateway/models/EnoConsumptionPointViewModel.d.ts +106 -0
  50. package/dist/output-gateway/models/EnoConsumptionPointViewModel.js +119 -0
  51. package/dist/output-gateway/models/EnoConsumptionPointViewModel.js.map +1 -0
  52. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.d.ts +27 -0
  53. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.js +41 -0
  54. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.js.map +1 -0
  55. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.d.ts +30 -0
  56. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.js +3 -0
  57. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.js.map +1 -0
  58. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.d.ts +106 -0
  59. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.js +3 -0
  60. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.js.map +1 -0
  61. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.d.ts +22 -0
  62. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.js +3 -0
  63. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.js.map +1 -0
  64. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.d.ts +12 -0
  65. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.js +41 -0
  66. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.js.map +1 -0
  67. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.d.ts +8 -0
  68. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.js +62 -0
  69. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.js.map +1 -0
  70. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.d.ts +18 -0
  71. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js +100 -0
  72. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js.map +1 -0
  73. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.d.ts +8 -0
  74. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.js +51 -0
  75. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.js.map +1 -0
  76. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.d.ts +8 -0
  77. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.js +51 -0
  78. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.js.map +1 -0
  79. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.d.ts +8 -0
  80. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.js +52 -0
  81. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.js.map +1 -0
  82. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.d.ts +13 -0
  83. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.js +39 -0
  84. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.js.map +1 -0
  85. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.d.ts +22 -0
  86. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.js +3 -0
  87. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.js.map +1 -0
  88. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.d.ts +108 -0
  89. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.js +3 -0
  90. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.js.map +1 -0
  91. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.d.ts +9 -0
  92. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js +40 -0
  93. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js.map +1 -0
  94. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.d.ts +14 -0
  95. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js +150 -0
  96. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js.map +1 -0
  97. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.d.ts +10 -10
  98. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.d.ts +1 -1
  99. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.d.ts +1 -3
  100. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js +57 -72
  101. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js.map +1 -1
  102. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.d.ts +17 -0
  103. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js +63 -0
  104. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js.map +1 -0
  105. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.d.ts +11 -0
  106. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.js +3 -0
  107. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.js.map +1 -0
  108. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.d.ts +9 -8
  109. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js +10 -8
  110. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js.map +1 -1
  111. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.d.ts +26 -0
  112. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.js +56 -0
  113. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.js.map +1 -0
  114. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.d.ts +1 -17
  115. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js +1 -33
  116. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js.map +1 -1
  117. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.d.ts +2 -1
  118. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js +5 -3
  119. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js.map +1 -1
  120. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice.d.ts +1 -17
  121. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice.d.ts +9 -7
  122. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.d.ts +20 -0
  123. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.js +3 -0
  124. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.js.map +1 -0
  125. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice.d.ts +3 -1
  126. package/dist/schema-definitions/models/eno/AddressModel.d.ts +1 -1
  127. package/dist/schema-definitions/models/eno/AddressModel.js +1 -1
  128. package/dist/schema-definitions/models/eno/AddressModel.js.map +1 -1
  129. package/dist/schema-definitions/models/eno/interfaces/IAddress.d.ts +1 -1
  130. package/docs/implementation_documentation.md +43 -2
  131. package/docs/openapi-output.yaml +263 -1
  132. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { IConsumption } from "../../schema-definitions/models/porsenna/interfaces/IConsumption";
2
+ import { AbstractNumericParsingRepository } from "./AbstractNumericParsingRepository";
3
+ export declare class PorsennaConsumptionsRepository extends AbstractNumericParsingRepository {
4
+ constructor();
5
+ GetByDeviceIds(deviceIds: string[]): Promise<IConsumption[]>;
6
+ GetAll(): never;
7
+ GetOne(): never;
8
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PorsennaConsumptionsRepository = void 0;
13
+ const PorsennaConsumptionModel_1 = require("../../schema-definitions/models/porsenna/PorsennaConsumptionModel");
14
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
15
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
16
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
17
+ const AbstractNumericParsingRepository_1 = require("./AbstractNumericParsingRepository");
18
+ let PorsennaConsumptionsRepository = class PorsennaConsumptionsRepository extends AbstractNumericParsingRepository_1.AbstractNumericParsingRepository {
19
+ constructor() {
20
+ super("EnoPorsennaConsumptionModelData", PorsennaConsumptionModel_1.PorsennaConsumptionModel.TABLE_NAME, PorsennaConsumptionModel_1.PorsennaConsumptionModel.attributeModel, {
21
+ schema: "energetics",
22
+ });
23
+ }
24
+ async GetByDeviceIds(deviceIds) {
25
+ if (deviceIds.length === 0) {
26
+ return [];
27
+ }
28
+ try {
29
+ const rows = (await this.sequelizeModel.findAll({
30
+ where: { device_id: { [sequelize_1.Op.in]: deviceIds } },
31
+ order: [["period", "ASC"]],
32
+ raw: true,
33
+ }));
34
+ return this.parseNumericColumns(rows);
35
+ }
36
+ catch (err) {
37
+ throw new golemio_errors_1.GeneralError("Database error ~ GetByDeviceIds PorsennaConsumptionsRepository", this.name, err, 500);
38
+ }
39
+ }
40
+ GetAll() {
41
+ throw new Error("Not implemented");
42
+ }
43
+ GetOne() {
44
+ throw new Error("Not implemented");
45
+ }
46
+ };
47
+ exports.PorsennaConsumptionsRepository = PorsennaConsumptionsRepository;
48
+ exports.PorsennaConsumptionsRepository = PorsennaConsumptionsRepository = __decorate([
49
+ (0, tsyringe_1.injectable)(),
50
+ __metadata("design:paramtypes", [])
51
+ ], PorsennaConsumptionsRepository);
52
+ //# sourceMappingURL=PorsennaConsumptionsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PorsennaConsumptionsRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/PorsennaConsumptionsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gHAAyF;AAEzF,6EAAwE;AACxE,mEAAyD;AACzD,iEAAgE;AAChE,yFAAsF;AAG/E,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,mEAAgC;IAChF;QACI,KAAK,CAAC,iCAAiC,EAAE,mDAAwB,CAAC,UAAU,EAAE,mDAAwB,CAAC,cAAc,EAAE;YACnH,MAAM,EAAE,YAAY;SACvB,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,SAAmB;QAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5C,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;gBAC5C,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC1B,GAAG,EAAE,IAAI;aACZ,CAAC,CAA8B,CAAC;YAEjC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,gEAAgE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClH,CAAC;IACL,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AAhCY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,qBAAU,GAAE;;GACA,8BAA8B,CAgC1C"}
@@ -0,0 +1,13 @@
1
+ import { ModelAttributes } from "@golemio/core/dist/shared/sequelize";
2
+ import { AbstractNumericParsingRepository } from "./AbstractNumericParsingRepository";
3
+ /**
4
+ * Read-only access to a PPAS invoice child table (devices/prices) keyed by `invoice_id`.
5
+ */
6
+ export declare class PpasInvoiceChildRepository<T extends {
7
+ invoice_id: string;
8
+ }> extends AbstractNumericParsingRepository {
9
+ constructor(modelName: string, tableName: string, attributes: ModelAttributes);
10
+ GetByInvoiceIds(invoiceIds: string[]): Promise<T[]>;
11
+ GetAll(): never;
12
+ GetOne(): never;
13
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PpasInvoiceChildRepository = void 0;
4
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
5
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
6
+ const AbstractNumericParsingRepository_1 = require("./AbstractNumericParsingRepository");
7
+ /**
8
+ * Read-only access to a PPAS invoice child table (devices/prices) keyed by `invoice_id`.
9
+ */
10
+ class PpasInvoiceChildRepository extends AbstractNumericParsingRepository_1.AbstractNumericParsingRepository {
11
+ constructor(modelName, tableName, attributes) {
12
+ super(modelName, tableName, attributes, {
13
+ schema: "energetics",
14
+ });
15
+ }
16
+ async GetByInvoiceIds(invoiceIds) {
17
+ if (invoiceIds.length === 0) {
18
+ return [];
19
+ }
20
+ try {
21
+ const rows = (await this.sequelizeModel.findAll({
22
+ where: { invoice_id: { [sequelize_1.Op.in]: invoiceIds } },
23
+ raw: true,
24
+ }));
25
+ return this.parseNumericColumns(rows);
26
+ }
27
+ catch (err) {
28
+ throw new golemio_errors_1.GeneralError("Database error ~ GetByInvoiceIds PpasInvoiceChildRepository", this.name, err, 500);
29
+ }
30
+ }
31
+ GetAll() {
32
+ throw new Error("Not implemented");
33
+ }
34
+ GetOne() {
35
+ throw new Error("Not implemented");
36
+ }
37
+ }
38
+ exports.PpasInvoiceChildRepository = PpasInvoiceChildRepository;
39
+ //# sourceMappingURL=PpasInvoiceChildRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PpasInvoiceChildRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/PpasInvoiceChildRepository.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AACxE,mEAA0E;AAC1E,yFAAsF;AAEtF;;GAEG;AACH,MAAa,0BAA6D,SAAQ,mEAAgC;IAC9G,YAAY,SAAiB,EAAE,SAAiB,EAAE,UAA2B;QACzE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE;YACpC,MAAM,EAAE,YAAY;SACvB,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,UAAoB;QAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE;gBAC9C,GAAG,EAAE,IAAI;aACZ,CAAC,CAAmB,CAAC;YAEtB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,6DAA6D,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ;AA/BD,gEA+BC"}
@@ -0,0 +1,22 @@
1
+ import { IEnoBuildingDetailView } from "../../models/interfaces/IEnoBuildingDetailView";
2
+ import { IEnoConsumptionPointView } from "../../models/interfaces/IEnoConsumptionPointView";
3
+ import { IEnoPorsennaDeviceView } from "../../models/interfaces/IEnoPorsennaDeviceView";
4
+ import { IAddress } from "../../../schema-definitions/models/eno/interfaces/IAddress";
5
+ import { IConsumption } from "../../../schema-definitions/models/porsenna/interfaces/IConsumption";
6
+ import { IPpasCommercialInvoiceDevice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice";
7
+ import { IPpasCommercialInvoicePrice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice";
8
+ import { IPpasDistributionInvoiceDevice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice";
9
+ import { IPpasDistributionInvoicePrice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice";
10
+ export interface IEnoBuildingDetailAggregate {
11
+ gid: string;
12
+ /** null when the GID is known to the mapping but has no eno_budova record */
13
+ building: IEnoBuildingDetailView | null;
14
+ addresses: IAddress[];
15
+ points: IEnoConsumptionPointView[];
16
+ distributionDevices: IPpasDistributionInvoiceDevice[];
17
+ distributionPrices: IPpasDistributionInvoicePrice[];
18
+ commercialDevices: IPpasCommercialInvoiceDevice[];
19
+ commercialPrices: IPpasCommercialInvoicePrice[];
20
+ porsennaDevices: IEnoPorsennaDeviceView[];
21
+ porsennaConsumption: IConsumption[];
22
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEnoBuildingDetailAggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnoBuildingDetailAggregate.js","sourceRoot":"","sources":["../../../../src/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ import { StripPrefix } from "../../helpers/objectMappers";
2
+ import { IEnoBuildingDetailView } from "../../models/interfaces/IEnoBuildingDetailView";
3
+ import { IEnoConsumptionPointView } from "../../models/interfaces/IEnoConsumptionPointView";
4
+ import { IPpasCommercialInvoiceDevice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice";
5
+ import { IPpasCommercialInvoicePrice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice";
6
+ import { IPpasDistributionInvoiceDevice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice";
7
+ import { IPpasDistributionInvoicePrice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice";
8
+ import { EnapoCommodity } from "../../../schema-definitions/models/enapo/interfaces/IEnapoGidMapping";
9
+ export type TEnoElectricityMetadata = StripPrefix<IEnoConsumptionPointView, "md_">;
10
+ export type TEnoDistributionInvoice = StripPrefix<IEnoConsumptionPointView, "di_">;
11
+ export type TEnoDistributionInstallation = Omit<StripPrefix<IEnoConsumptionPointView, "dinst_">, "place_id">;
12
+ export type TEnoCommercialInvoice = StripPrefix<IEnoConsumptionPointView, "ci_">;
13
+ export type TEnoCommercialInstallation = Omit<StripPrefix<IEnoConsumptionPointView, "cinst_">, "place_id">;
14
+ export type TEnoDistributionDevice = Omit<IPpasDistributionInvoiceDevice, "invoice_id" | "place_id">;
15
+ export type TEnoDistributionPrice = Omit<IPpasDistributionInvoicePrice, "invoice_id" | "customer_id" | "place_id">;
16
+ export type TEnoCommercialDevice = Omit<IPpasCommercialInvoiceDevice, "invoice_id" | "place_id">;
17
+ export type TEnoCommercialPrice = Omit<IPpasCommercialInvoicePrice, "invoice_id" | "customer_id" | "place_id">;
18
+ export interface IEnoPorsennaDeviceInfo {
19
+ name: string | null;
20
+ type: string | null;
21
+ level: string | null;
22
+ measurement_target: string | null;
23
+ meter_number: string | null;
24
+ supply_point_number: string | null;
25
+ disabled_at: Date | null;
26
+ tenant: string;
27
+ }
28
+ export interface IEnoPorsennaSubDevice {
29
+ name: string | null;
30
+ type: string | null;
31
+ meter_number: string | null;
32
+ disabled_at: Date | null;
33
+ }
34
+ export interface IEnoPorsennaYearlyConsumption {
35
+ period: string;
36
+ value: number;
37
+ unit: string;
38
+ days_covered: number | null;
39
+ }
40
+ export interface IEnoPorsennaBlock {
41
+ device: IEnoPorsennaDeviceInfo;
42
+ sub_devices: IEnoPorsennaSubDevice[];
43
+ yearly_consumption: IEnoPorsennaYearlyConsumption[];
44
+ }
45
+ export interface IEnoPorsennaOnlyBlock {
46
+ porsenna: IEnoPorsennaBlock | null;
47
+ }
48
+ export interface IEnoEnergyManagement {
49
+ source: string;
50
+ building_name: string | null;
51
+ address: string | null;
52
+ devices_total: number;
53
+ devices_active: number;
54
+ }
55
+ export interface IEnoElectricityBlock {
56
+ metadata: TEnoElectricityMetadata | null;
57
+ porsenna?: IEnoPorsennaBlock;
58
+ }
59
+ export interface IEnoGasDistributionBlock {
60
+ invoice: TEnoDistributionInvoice;
61
+ installation: TEnoDistributionInstallation;
62
+ devices: TEnoDistributionDevice[];
63
+ prices: TEnoDistributionPrice[];
64
+ }
65
+ export interface IEnoGasCommercialBlock {
66
+ invoice: TEnoCommercialInvoice;
67
+ installation: TEnoCommercialInstallation;
68
+ devices: TEnoCommercialDevice[];
69
+ prices: TEnoCommercialPrice[];
70
+ }
71
+ export interface IEnoGasBlock {
72
+ distribution: IEnoGasDistributionBlock | null;
73
+ commercial: IEnoGasCommercialBlock | null;
74
+ porsenna?: IEnoPorsennaBlock;
75
+ }
76
+ export interface IEnoConsumptionPointResponse {
77
+ place_id: string;
78
+ id_type: "ean" | "eic" | "om";
79
+ commodity: EnapoCommodity;
80
+ is_first_gid: boolean;
81
+ is_active: boolean;
82
+ link_source: string;
83
+ valid_from: string | null;
84
+ valid_to: string | null;
85
+ address: string | null;
86
+ /** Present only when commodity = electricity */
87
+ electricity?: IEnoElectricityBlock;
88
+ /** Present only when commodity = gas */
89
+ gas?: IEnoGasBlock;
90
+ /** Present only when commodity = heat (Porsenna-sourced) */
91
+ heat?: IEnoPorsennaOnlyBlock;
92
+ /** Present only when commodity = water (Porsenna-sourced) */
93
+ water?: IEnoPorsennaOnlyBlock;
94
+ }
95
+ export interface IEnoBuildingAddressResponse {
96
+ popis: string | null;
97
+ hlavni: boolean | null;
98
+ poradi: number;
99
+ }
100
+ export interface IEnoBuildingDetailResponse {
101
+ gid: string;
102
+ /** null when the GID has no eno_budova record (known only to the OM mapping or Porsenna) */
103
+ building: Omit<IEnoBuildingDetailView, "gid"> | null;
104
+ addresses: IEnoBuildingAddressResponse[];
105
+ /** null when the building is not tracked in Porsenna (e-manazer) */
106
+ energy_management: IEnoEnergyManagement | null;
107
+ consumption_points: IEnoConsumptionPointResponse[];
108
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEnoBuildingDetailResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnoBuildingDetailResponse.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter";
2
+ export declare class V2EnoBuildingsRouter extends AbstractRouter {
3
+ private controller;
4
+ private cacheHeaderMiddleware;
5
+ private maxAge;
6
+ private staleWhileRevalidate;
7
+ constructor();
8
+ protected initRoutes(): void;
9
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.V2EnoBuildingsRouter = void 0;
13
+ const Links_1 = require("../../constants/Links");
14
+ const RouteVersion_1 = require("../../constants/RouteVersion");
15
+ const Di_1 = require("../../ioc/Di");
16
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
17
+ const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
18
+ const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
19
+ const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
20
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
21
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
+ let V2EnoBuildingsRouter = class V2EnoBuildingsRouter extends AbstractRouter_1.AbstractRouter {
23
+ constructor() {
24
+ super(RouteVersion_1.RouteVersion.v2, Links_1.DED_BUILDING_PATH);
25
+ this.maxAge = 6 * 60 * 60; // 6 hours
26
+ this.staleWhileRevalidate = 60; // 1 minute
27
+ this.controller = Di_1.OGEnergeticsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.EnoBuildingsController);
28
+ this.cacheHeaderMiddleware = Di_1.OGEnergeticsContainer.resolve(ioc_1.ContainerToken.CacheHeaderMiddleware);
29
+ this.initRoutes();
30
+ }
31
+ initRoutes() {
32
+ this.router.get("/:gid", (0, express_validator_1.param)("gid").exists().isString().not().isArray(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(this.maxAge, this.staleWhileRevalidate), this.controller.getOne);
33
+ }
34
+ };
35
+ exports.V2EnoBuildingsRouter = V2EnoBuildingsRouter;
36
+ exports.V2EnoBuildingsRouter = V2EnoBuildingsRouter = __decorate([
37
+ (0, tsyringe_1.injectable)(),
38
+ __metadata("design:paramtypes", [])
39
+ ], V2EnoBuildingsRouter);
40
+ //# sourceMappingURL=V2EnoBuildingsRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V2EnoBuildingsRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v2/V2EnoBuildingsRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAwD;AACxD,+DAA0D;AAE1D,qCAAmD;AACnD,yEAAoE;AACpE,sFAAmF;AAEnF,6EAA2E;AAC3E,+DAAuE;AACvE,mFAAoE;AACpE,iEAAgE;AAGzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,+BAAc;IAMpD;QACI,KAAK,CAAC,2BAAY,CAAC,EAAE,EAAE,yBAAiB,CAAC,CAAC;QAJtC,WAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU;QAChC,yBAAoB,GAAG,EAAE,CAAC,CAAC,WAAW;QAI1C,IAAI,CAAC,UAAU,GAAG,0BAAqB,CAAC,OAAO,CAAyB,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QACrH,IAAI,CAAC,qBAAqB,GAAG,0BAAqB,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACxH,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,OAAO,EACP,IAAA,yBAAK,EAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAChD,wBAAW,EACX,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAChF,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ,CAAA;AAtBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAsBhC"}
@@ -0,0 +1,14 @@
1
+ import { IEnoBuildingDetailAggregate } from "../repositories/interfaces/IEnoBuildingDetailAggregate";
2
+ import { IEnoBuildingDetailResponse } from "../routers/interfaces/IEnoBuildingDetailResponse";
3
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
4
+ export declare class EnoBuildingDetailTransformation extends AbstractTransformation<IEnoBuildingDetailAggregate, IEnoBuildingDetailResponse> {
5
+ name: string;
6
+ protected transformInternal: (element: IEnoBuildingDetailAggregate) => IEnoBuildingDetailResponse;
7
+ private transformPoint;
8
+ private transformElectricity;
9
+ private transformGas;
10
+ private buildPorsennaBlock;
11
+ private transformEnergyManagement;
12
+ private resolveAddress;
13
+ private composeAddress;
14
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EnoBuildingDetailTransformation = void 0;
10
+ const objectMappers_1 = require("../helpers/objectMappers");
11
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
12
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
13
+ let EnoBuildingDetailTransformation = class EnoBuildingDetailTransformation extends AbstractTransformation_1.AbstractTransformation {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.name = "EnoBuildingDetailTransformation";
17
+ this.transformInternal = (element) => {
18
+ return {
19
+ gid: element.gid,
20
+ building: element.building === null ? null : (0, objectMappers_1.omitKeys)(element.building, ["gid"]),
21
+ addresses: element.addresses.map((address) => ({
22
+ popis: address.popis ?? null,
23
+ hlavni: address.hlavni ?? null,
24
+ poradi: address.poradi,
25
+ })),
26
+ energy_management: this.transformEnergyManagement(element),
27
+ consumption_points: element.points.map((point) => this.transformPoint(point, element)),
28
+ };
29
+ };
30
+ this.transformPoint = (point, aggregate) => {
31
+ const porsenna = this.buildPorsennaBlock(point, aggregate);
32
+ return {
33
+ place_id: point.place_id,
34
+ id_type: point.id_type,
35
+ commodity: point.commodity,
36
+ is_first_gid: point.is_first_gid,
37
+ is_active: point.is_active,
38
+ link_source: point.link_source,
39
+ valid_from: point.valid_from,
40
+ valid_to: point.valid_to,
41
+ address: this.resolveAddress(point),
42
+ ...(point.commodity === "electricity" ? { electricity: this.transformElectricity(point, porsenna) } : {}),
43
+ ...(point.commodity === "gas" ? { gas: this.transformGas(point, aggregate, porsenna) } : {}),
44
+ ...(point.commodity === "heat" ? { heat: { porsenna } } : {}),
45
+ ...(point.commodity === "water" ? { water: { porsenna } } : {}),
46
+ };
47
+ };
48
+ this.transformElectricity = (point, porsenna) => {
49
+ return {
50
+ metadata: point.md_year === null ? null : (0, objectMappers_1.stripPrefix)(point, "md_"),
51
+ ...(porsenna === null ? {} : { porsenna }),
52
+ };
53
+ };
54
+ this.transformGas = (point, aggregate, porsenna) => {
55
+ return {
56
+ distribution: point.di_id === null
57
+ ? null
58
+ : {
59
+ invoice: (0, objectMappers_1.stripPrefix)(point, "di_"),
60
+ installation: (0, objectMappers_1.omitKeys)((0, objectMappers_1.stripPrefix)(point, "dinst_"), ["place_id"]),
61
+ devices: aggregate.distributionDevices
62
+ .filter((device) => device.invoice_id === point.di_id && device.place_id === point.dinst_place_id)
63
+ .map((device) => (0, objectMappers_1.omitKeys)(device, ["invoice_id", "place_id"])),
64
+ prices: aggregate.distributionPrices
65
+ .filter((price) => price.invoice_id === point.di_id && price.place_id === point.dinst_place_id)
66
+ .map((price) => (0, objectMappers_1.omitKeys)(price, ["invoice_id", "customer_id", "place_id"])),
67
+ },
68
+ commercial: point.ci_id === null
69
+ ? null
70
+ : {
71
+ invoice: (0, objectMappers_1.stripPrefix)(point, "ci_"),
72
+ installation: (0, objectMappers_1.omitKeys)((0, objectMappers_1.stripPrefix)(point, "cinst_"), ["place_id"]),
73
+ devices: aggregate.commercialDevices
74
+ .filter((device) => device.invoice_id === point.ci_id && device.place_id === point.cinst_place_id)
75
+ .map((device) => (0, objectMappers_1.omitKeys)(device, ["invoice_id", "place_id"])),
76
+ prices: aggregate.commercialPrices
77
+ .filter((price) => price.invoice_id === point.ci_id && price.place_id === point.cinst_place_id)
78
+ .map((price) => (0, objectMappers_1.omitKeys)(price, ["invoice_id", "customer_id", "place_id"])),
79
+ },
80
+ ...(porsenna === null ? {} : { porsenna }),
81
+ };
82
+ };
83
+ this.buildPorsennaBlock = (point, aggregate) => {
84
+ const device = aggregate.porsennaDevices.find((candidate) => candidate.identifier === point.place_id && (candidate.level === null || candidate.level === "main"));
85
+ if (device === undefined) {
86
+ return null;
87
+ }
88
+ return {
89
+ device: {
90
+ name: device.name,
91
+ type: device.type,
92
+ level: device.level,
93
+ measurement_target: device.measurement_target,
94
+ meter_number: device.meter_number,
95
+ supply_point_number: device.supply_point_number,
96
+ disabled_at: device.disabled_at,
97
+ tenant: device.source,
98
+ },
99
+ sub_devices: aggregate.porsennaDevices
100
+ .filter((candidate) => candidate.parent_device_id === device.device_id)
101
+ .map((candidate) => ({
102
+ name: candidate.name,
103
+ type: candidate.type,
104
+ meter_number: candidate.meter_number,
105
+ disabled_at: candidate.disabled_at,
106
+ })),
107
+ yearly_consumption: aggregate.porsennaConsumption
108
+ .filter((row) => row.device_id === device.device_id && row.var === "yearly")
109
+ .map((row) => ({
110
+ period: row.period,
111
+ value: row.value,
112
+ unit: row.unit,
113
+ days_covered: row.count,
114
+ })),
115
+ };
116
+ };
117
+ this.transformEnergyManagement = (aggregate) => {
118
+ const devices = aggregate.porsennaDevices;
119
+ if (devices.length === 0) {
120
+ return null;
121
+ }
122
+ const primary = devices[0];
123
+ return {
124
+ source: primary.source,
125
+ building_name: primary.building_name,
126
+ address: this.composeAddress(primary.building_street, primary.building_house_number, primary.building_street_number, primary.building_city, primary.building_postcode),
127
+ devices_total: devices.length,
128
+ devices_active: devices.filter((device) => device.disabled_at === null).length,
129
+ };
130
+ };
131
+ this.resolveAddress = (point) => {
132
+ if (point.md_address !== null) {
133
+ return point.md_address;
134
+ }
135
+ return (this.composeAddress(point.dinst_address_street, point.dinst_address_house_number, point.dinst_address_house_org_number, point.dinst_address_city, point.dinst_address_post_code) ??
136
+ this.composeAddress(point.cinst_address_street, point.cinst_address_house_number, point.cinst_address_house_org_number, point.cinst_address_city, point.cinst_address_post_code));
137
+ };
138
+ this.composeAddress = (street, houseNumber, houseOrgNumber, city, postCode) => {
139
+ const numberPart = [houseNumber, houseOrgNumber].filter((part) => part !== null && part !== "").join("/");
140
+ const streetPart = [street, numberPart].filter((part) => part !== null && part !== "").join(" ");
141
+ const parts = [streetPart, city, postCode].filter((part) => part !== null && part !== "");
142
+ return parts.length > 0 ? parts.join(", ") : null;
143
+ };
144
+ }
145
+ };
146
+ exports.EnoBuildingDetailTransformation = EnoBuildingDetailTransformation;
147
+ exports.EnoBuildingDetailTransformation = EnoBuildingDetailTransformation = __decorate([
148
+ (0, tsyringe_1.injectable)()
149
+ ], EnoBuildingDetailTransformation);
150
+ //# sourceMappingURL=EnoBuildingDetailTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnoBuildingDetailTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/EnoBuildingDetailTransformation.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,12 @@ export type ReadingType = {
4
4
  dateFrom: string;
5
5
  dateTo: string;
6
6
  kind: string;
7
- readingFrom: number;
8
- readingTo: number;
9
- consumption: number;
7
+ readingFrom?: number;
8
+ readingTo?: number;
9
+ consumption?: number;
10
10
  unit: string;
11
- mrType: string | number;
12
- gas: {
11
+ mrKind: string | number;
12
+ gas?: {
13
13
  consumptionKwh: number;
14
14
  volumeCoefficient: number;
15
15
  combustionHeat: number;
@@ -25,18 +25,18 @@ export type DeviceType = {
25
25
  export type Devices = DeviceType | DeviceType[];
26
26
  export interface IPpasDistributionInvoiceDetailInput {
27
27
  id: IPpasInvoiceId;
28
- precedingId: IPpasInvoiceId;
28
+ precedingId?: IPpasInvoiceId;
29
29
  customer: IPpasInvoiceCustomer;
30
30
  customerAddress: IPpasDistributionInvoiceCustomerAddress;
31
31
  facts: IPpasInvoiceFacts;
32
32
  cancellation?: IPpasInvoiceCancellation;
33
- installations: {
33
+ installations: Array<{
34
34
  pointOfDelivery: string;
35
35
  installation: string;
36
36
  billingClass: string;
37
37
  measurementType: string;
38
38
  contract: {
39
- contractId: string | number;
39
+ id: string | number;
40
40
  moveInDate: string;
41
41
  moveOutDate: string;
42
42
  };
@@ -52,10 +52,10 @@ export interface IPpasDistributionInvoiceDetailInput {
52
52
  quantity: number;
53
53
  unit: string;
54
54
  unitPrice: number;
55
- timeSlot: number;
55
+ timeSlot?: number;
56
56
  priceNetto: number;
57
57
  currency: string;
58
58
  taxRate: number;
59
59
  }>;
60
- };
60
+ }>;
61
61
  }
@@ -7,7 +7,7 @@ export interface IPpasDistributionInvoiceCustomerAddress {
7
7
  cityPart: string;
8
8
  postCode: string;
9
9
  country: string;
10
- ruianId: number;
10
+ ruianId?: number | string;
11
11
  }
12
12
  export interface IPpasDistributionInvoiceListInput {
13
13
  id: IPpasInvoiceId;
@@ -1,7 +1,5 @@
1
1
  import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
2
  import { IPpasDistributionInvoiceListInput } from "./IPpasDistributionInvoiceListInput";
3
3
  import { IPpasDistributionInvoiceDetailInput } from "./IPpasDistributionInvoiceDetailInput";
4
- export declare const ppasDistributionInvoiceListInputJsonSchema: JSONSchemaType<{
5
- InvoiceList: IPpasDistributionInvoiceListInput | IPpasDistributionInvoiceListInput[];
6
- }>;
4
+ export declare const ppasDistributionInvoiceListInputJsonSchema: JSONSchemaType<IPpasDistributionInvoiceListInput | IPpasDistributionInvoiceListInput[]>;
7
5
  export declare const ppasDistributionInvoiceDetailInputJsonSchema: JSONSchemaType<IPpasDistributionInvoiceDetailInput>;