@golemio/energetics 1.14.0 → 1.15.0-dev.2817183709

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 (61) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/example/10_enapo_budova_spotrebic.sql +14 -0
  3. package/db/migrations/postgresql/20260821090000-enapo-gid-mapping-sync-comment.js +53 -0
  4. package/db/migrations/postgresql/20260827090000-enapo-gid-mapping-pk.js +53 -0
  5. package/db/migrations/postgresql/20260901090000-enapo-budova-spotrebic.js +53 -0
  6. package/db/migrations/postgresql/sqls/20260821090000-enapo-gid-mapping-sync-comment-down.sql +3 -0
  7. package/db/migrations/postgresql/sqls/20260821090000-enapo-gid-mapping-sync-comment-up.sql +4 -0
  8. package/db/migrations/postgresql/sqls/20260827090000-enapo-gid-mapping-pk-down.sql +4 -0
  9. package/db/migrations/postgresql/sqls/20260827090000-enapo-gid-mapping-pk-up.sql +17 -0
  10. package/db/migrations/postgresql/sqls/20260901090000-enapo-budova-spotrebic-down.sql +1 -0
  11. package/db/migrations/postgresql/sqls/20260901090000-enapo-budova-spotrebic-up.sql +20 -0
  12. package/db/scripts/ded_gid_mapping_mock_import.sql +4 -1
  13. package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.d.ts +14 -0
  14. package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.js +56 -0
  15. package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.js.map +1 -0
  16. package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.d.ts +43 -0
  17. package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.js +193 -0
  18. package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.js.map +1 -0
  19. package/dist/integration-engine/enapo/ioc/Di.js +11 -3
  20. package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
  21. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +4 -0
  22. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +4 -0
  23. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
  24. package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.d.ts +13 -0
  25. package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.js +42 -0
  26. package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.js.map +1 -0
  27. package/dist/integration-engine/enapo/workers/EnapoWorker.js +1 -0
  28. package/dist/integration-engine/enapo/workers/EnapoWorker.js.map +1 -1
  29. package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.d.ts +45 -0
  30. package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.js +121 -0
  31. package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.js.map +1 -0
  32. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.d.ts +1 -0
  33. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js +10 -2
  34. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js.map +1 -1
  35. package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.d.ts +8 -0
  36. package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.js +51 -0
  37. package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.js.map +1 -0
  38. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.d.ts +2 -0
  39. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.d.ts +15 -0
  40. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js +1 -1
  41. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js.map +1 -1
  42. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.d.ts +1 -0
  43. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js +17 -0
  44. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js.map +1 -1
  45. package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.d.ts +3 -0
  46. package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.js +23 -0
  47. package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.js.map +1 -0
  48. package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.d.ts +15 -0
  49. package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.js +3 -0
  50. package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.js.map +1 -0
  51. package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.d.ts +22 -0
  52. package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.js +58 -0
  53. package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.js.map +1 -0
  54. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js +0 -1
  55. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js.map +1 -1
  56. package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.d.ts +15 -0
  57. package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.js +3 -0
  58. package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.js.map +1 -0
  59. package/docs/implementation_documentation.md +43 -2
  60. package/docs/openapi-output.yaml +69 -37
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"V2EnoBuildingsRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v2/V2EnoBuildingsRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAAkF;AAClF,uEAAmG;AACnG,iDAAwD;AACxD,+DAA0D;AAE1D,qCAAmD;AACnD,yEAAoE;AACpE,sFAAmF;AAEnF,6EAA2E;AAC3E,+DAAuE;AACvE,mFAA2E;AAC3E,iEAAgE;AAGzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,+BAAc;IASpD;QACI,KAAK,CAAC,2BAAY,CAAC,EAAE,EAAE,yBAAiB,CAAC,CAAC;QAPtC,WAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU;QAChC,yBAAoB,GAAG,EAAE,CAAC,CAAC,WAAW;QAC9C,oGAAoG;QAC5F,iBAAY,GAAG,EAAE,CAAC,CAAC,WAAW;QAC9B,+BAA0B,GAAG,EAAE,CAAC,CAAC,aAAa;QAIlD,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,GAAG,EACH,IAAA,yBAAK,EAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,8CAA2B,EAAE,CAAC,EAC5G,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,uCAAoB,EAAE,CAAC,CAAC,KAAK,EAAE,EAC9E,wBAAW,EACX,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,0BAA0B,CAAC,EAC5F,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,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,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,mDAA8B,EAAE,CAAC,CAAC,KAAK,EAAE,EACzF,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;AAnCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAmChC"}
1
+ {"version":3,"file":"V2EnoBuildingsRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v2/V2EnoBuildingsRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAAkF;AAClF,uEAAmG;AACnG,iDAAwD;AACxD,+DAA0D;AAE1D,qCAAmD;AACnD,yEAAoE;AACpE,sFAAmF;AAEnF,6EAA2E;AAC3E,+DAAuE;AACvE,mFAA2E;AAC3E,iEAAgE;AAGzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,+BAAc;IASpD;QACI,KAAK,CAAC,2BAAY,CAAC,EAAE,EAAE,yBAAiB,CAAC,CAAC;QAPtC,WAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU;QAChC,yBAAoB,GAAG,EAAE,CAAC,CAAC,WAAW;QAC9C,oGAAoG;QAC5F,iBAAY,GAAG,EAAE,CAAC,CAAC,WAAW;QAC9B,+BAA0B,GAAG,EAAE,CAAC,CAAC,aAAa;QAIlD,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,GAAG,EACH,IAAA,yBAAK,EAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,8CAA2B,EAAE,CAAC,EAC5G,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,uCAAoB,EAAE,CAAC,CAAC,KAAK,EAAE,EAC9E,wBAAW,EACX,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,0BAA0B,CAAC,EAC5F,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,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,CAAC,IAAI,EAAE,EACvD,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,mDAA8B,EAAE,CAAC,CAAC,KAAK,EAAE,EACzF,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;AAnCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAmChC"}
@@ -4,6 +4,7 @@ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformatio
4
4
  export declare class EnoBuildingDetailTransformation extends AbstractTransformation<IEnoBuildingDetailAggregate, IEnoBuildingDetailResponse> {
5
5
  name: string;
6
6
  protected transformInternal: (element: IEnoBuildingDetailAggregate) => IEnoBuildingDetailResponse;
7
+ private transformHeatSources;
7
8
  private resolveName;
8
9
  private resolveBuildingAddress;
9
10
  private transformConsumptionHistory;
@@ -31,6 +31,23 @@ let EnoBuildingDetailTransformation = class EnoBuildingDetailTransformation exte
31
31
  energy_management: this.transformEnergyManagement(element),
32
32
  consumption_history: this.transformConsumptionHistory(element),
33
33
  consumption_points: element.points.map((point) => this.transformPoint(point, element)),
34
+ heat_sources: this.transformHeatSources(element),
35
+ };
36
+ };
37
+ this.transformHeatSources = (aggregate) => {
38
+ const rated = aggregate.heatSources.map((source) => source.vykon_kw).filter((value) => value !== null);
39
+ return {
40
+ count: aggregate.heatSources.length,
41
+ total_rated_output_kw: rated.length === 0 ? null : rated.reduce((sum, value) => sum + value, 0),
42
+ sources: aggregate.heatSources.map((source) => ({
43
+ appliance_name: source.nazev_spotrebic,
44
+ note: source.poznamka,
45
+ rated_output_kw: source.vykon_kw,
46
+ fuel_code: source.palivo,
47
+ is_monitored: source.monitoring,
48
+ appliance_type: source.nazev_typ_bud_spotrebic,
49
+ operating_since: source.provoz_od,
50
+ })),
34
51
  };
35
52
  };
36
53
  this.resolveName = (aggregate) => aggregate.building?.nazev ??
@@ -1 +1 @@
1
- {"version":3,"file":"EnoBuildingDetailTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/EnoBuildingDetailTransformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnoBuildingDetailTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/EnoBuildingDetailTransformation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IEnapoGidMappingCsvRow } from "./interfaces/IEnapoGidMappingCsvRow";
3
+ export declare const enapoGidMappingCsvSchema: JSONSchemaType<IEnapoGidMappingCsvRow[]>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enapoGidMappingCsvSchema = void 0;
4
+ // Guards only the shape of the export contract: every column present as a string (CSV yields an empty
5
+ // string for a blank cell). Value normalization and business rules live in the transformation.
6
+ exports.enapoGidMappingCsvSchema = {
7
+ type: "array",
8
+ items: {
9
+ type: "object",
10
+ properties: {
11
+ place_id: { type: "string" },
12
+ id_type: { type: "string" },
13
+ commodity: { type: "string" },
14
+ gid: { type: "string" },
15
+ is_first_gid: { type: "string" },
16
+ link_source: { type: "string" },
17
+ valid_from: { type: "string" },
18
+ valid_to: { type: "string" },
19
+ },
20
+ required: ["place_id", "id_type", "commodity", "gid", "is_first_gid", "link_source", "valid_from", "valid_to"],
21
+ },
22
+ };
23
+ //# sourceMappingURL=EnapoGidMappingCsvSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoGidMappingCsvSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.ts"],"names":[],"mappings":";;;AAGA,sGAAsG;AACtG,+FAA+F;AAClF,QAAA,wBAAwB,GAA6C;IAC9E,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;KACjH;CACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Raw row of the ded_gid_mapping CSV export as delivered to blob storage by the data team.
3
+ * Every value arrives as a string (or empty string for a missing value); normalization and typing
4
+ * happen in the transformation, so the ingest never trusts the raw shape.
5
+ */
6
+ export interface IEnapoGidMappingCsvRow {
7
+ place_id: string;
8
+ id_type: string;
9
+ commodity: string;
10
+ gid: string;
11
+ is_first_gid: string;
12
+ link_source: string;
13
+ valid_from: string;
14
+ valid_to: string;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEnapoGidMappingCsvRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnapoGidMappingCsvRow.js","sourceRoot":"","sources":["../../../../../../src/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { Model, ModelAttributes } from "@golemio/core/dist/shared/sequelize";
3
+ import { IEnapoBudovaSpotrebic } from "./interfaces/IEnapoBudovaSpotrebic";
4
+ export declare class EnapoBudovaSpotrebicModel extends Model<IEnapoBudovaSpotrebic> implements IEnapoBudovaSpotrebic {
5
+ static TABLE_NAME: string;
6
+ static REPOSITORY_NAME: string;
7
+ id_bud_spotrebic: number;
8
+ gid: string;
9
+ kod_eno: string;
10
+ id_budova: number | null;
11
+ id_typ_bud_spotrebic: number | null;
12
+ nazev_typ_bud_spotrebic: string | null;
13
+ nazev_spotrebic: string | null;
14
+ poznamka: string | null;
15
+ palivo: number | null;
16
+ vykon_kw: number | null;
17
+ monitoring: boolean | null;
18
+ provoz_od: string | null;
19
+ adresa: string | null;
20
+ static attributeModel: ModelAttributes<EnapoBudovaSpotrebicModel, IEnapoBudovaSpotrebic>;
21
+ static jsonSchema: JSONSchemaType<IEnapoBudovaSpotrebic[]>;
22
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnapoBudovaSpotrebicModel = void 0;
4
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
5
+ class EnapoBudovaSpotrebicModel extends sequelize_1.Model {
6
+ }
7
+ exports.EnapoBudovaSpotrebicModel = EnapoBudovaSpotrebicModel;
8
+ EnapoBudovaSpotrebicModel.TABLE_NAME = "enapo_budova_spotrebic";
9
+ EnapoBudovaSpotrebicModel.REPOSITORY_NAME = "EnapoBudovaSpotrebicRepository";
10
+ EnapoBudovaSpotrebicModel.attributeModel = {
11
+ id_bud_spotrebic: {
12
+ type: sequelize_1.DataTypes.INTEGER,
13
+ allowNull: false,
14
+ primaryKey: true,
15
+ },
16
+ gid: {
17
+ type: sequelize_1.DataTypes.STRING,
18
+ allowNull: false,
19
+ primaryKey: true,
20
+ },
21
+ kod_eno: {
22
+ type: sequelize_1.DataTypes.STRING(50),
23
+ allowNull: false,
24
+ },
25
+ id_budova: sequelize_1.DataTypes.INTEGER,
26
+ id_typ_bud_spotrebic: sequelize_1.DataTypes.INTEGER,
27
+ nazev_typ_bud_spotrebic: sequelize_1.DataTypes.STRING(50),
28
+ nazev_spotrebic: sequelize_1.DataTypes.STRING(255),
29
+ poznamka: sequelize_1.DataTypes.STRING(500),
30
+ palivo: sequelize_1.DataTypes.INTEGER,
31
+ vykon_kw: sequelize_1.DataTypes.DECIMAL(12, 2),
32
+ monitoring: sequelize_1.DataTypes.BOOLEAN,
33
+ provoz_od: sequelize_1.DataTypes.DATEONLY,
34
+ adresa: sequelize_1.DataTypes.STRING(255),
35
+ };
36
+ EnapoBudovaSpotrebicModel.jsonSchema = {
37
+ type: "array",
38
+ items: {
39
+ type: "object",
40
+ properties: {
41
+ id_bud_spotrebic: { type: "integer" },
42
+ gid: { type: "string" },
43
+ kod_eno: { type: "string" },
44
+ id_budova: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
45
+ id_typ_bud_spotrebic: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
46
+ nazev_typ_bud_spotrebic: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
47
+ nazev_spotrebic: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
48
+ poznamka: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
49
+ palivo: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
50
+ vykon_kw: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
51
+ monitoring: { oneOf: [{ type: "boolean" }, { type: "null", nullable: true }] },
52
+ provoz_od: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
53
+ adresa: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
54
+ },
55
+ required: ["id_bud_spotrebic", "gid", "kod_eno"],
56
+ },
57
+ };
58
+ //# sourceMappingURL=EnapoBudovaSpotrebicModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoBudovaSpotrebicModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,6 @@ EnapoGidMappingModel.attributeModel = {
34
34
  link_source: {
35
35
  type: sequelize_1.DataTypes.STRING(50),
36
36
  allowNull: false,
37
- primaryKey: true,
38
37
  },
39
38
  valid_from: {
40
39
  type: sequelize_1.DataTypes.DATEONLY,
@@ -1 +1 @@
1
- {"version":3,"file":"EnapoGidMappingModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/enapo/EnapoGidMappingModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAGxF,MAAa,oBAAqB,SAAQ,iBAAuB;;AAAjE,oDAmEC;AAlEiB,+BAAU,GAAG,mBAAmB,CAAC;AACjC,oCAAe,GAAG,2BAA2B,CAAC;AAW9C,mCAAc,GAA4D;IACpF,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,YAAY,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,QAAQ;KAC3B;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,QAAQ;KAC3B;CACJ,CAAC;AAEY,+BAAU,GAAuC;IAC3D,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;YAC7E,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;SAC9E;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC;KACvF;CACJ,CAAC"}
1
+ {"version":3,"file":"EnapoGidMappingModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/enapo/EnapoGidMappingModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAGxF,MAAa,oBAAqB,SAAQ,iBAAuB;;AAAjE,oDAkEC;AAjEiB,+BAAU,GAAG,mBAAmB,CAAC;AACjC,oCAAe,GAAG,2BAA2B,CAAC;AAW9C,mCAAc,GAA4D;IACpF,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,YAAY,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,QAAQ;KAC3B;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,QAAQ;KAC3B;CACJ,CAAC;AAEY,+BAAU,GAAuC;IAC3D,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;YAC7E,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;SAC9E;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC;KACvF;CACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface IEnapoBudovaSpotrebic {
2
+ id_bud_spotrebic: number;
3
+ gid: string;
4
+ kod_eno: string;
5
+ id_budova: number | null;
6
+ id_typ_bud_spotrebic: number | null;
7
+ nazev_typ_bud_spotrebic: string | null;
8
+ nazev_spotrebic: string | null;
9
+ poznamka: string | null;
10
+ palivo: number | null;
11
+ vykon_kw: number | null;
12
+ monitoring: boolean | null;
13
+ provoz_od: string | null;
14
+ adresa: string | null;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEnapoBudovaSpotrebic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnapoBudovaSpotrebic.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.ts"],"names":[],"mappings":""}
@@ -700,6 +700,40 @@ Task přegeneruje materializovaný pohled `mv_enapo_om_consumption`, ze kterého
700
700
  - unit testy
701
701
  - [EnapoConsumptionHistoryRefreshTask.test.ts](../test/integration-engine/enapo/task/EnapoConsumptionHistoryRefreshTask.test.ts)
702
702
 
703
+ #### _task: EnapoGidMappingSyncTask_
704
+
705
+ Task denně synchronizuje mapování odběrných míst (EAN/EIC) na GID budov z CSV exportu v blob storage do tabulky `energetics.enapo_gid_mapping`. Rozsah je elektřina a plyn; voda a teplo se filtrují jako mimo rozsah.
706
+
707
+ - zdroj dat
708
+ - CSV `ded_gid_mapping` v Azure Blob Storage, kontejner `golem-energetics` (prod) / `rabin-energetics` (rabin)
709
+ - plná URL z configu `module.energetics.enapo.gidMapping.url` — jedna hodnota, ne base + path, aby unesla i SAS token v query stringu
710
+ - CSV dodává datový tým (výstup z dbt), modul ho jen konzumuje; za obsah a denní obnovu odpovídá producent
711
+ - formát: UTF-8, delimiter `,`, hlavička na prvním řádku
712
+ - CSV kontrakt (sloupce = `enapo_gid_mapping` bez vody/tepla)
713
+ - `place_id` (EAN/EIC, ≤ 50 znaků), `id_type` (`ean` = elektřina / `eic` = plyn), `commodity` (`electricity` / `gas`), `gid` (GID budovy/stavby), `is_first_gid` (bool), `link_source` (v CSV např. `eb_ean_eic`; slouží už jen k odfiltrování vody/tepla přes `eb_cis_odb_mista`, do tabulky se neukládá), `valid_from` a `valid_to` (date `YYYY-MM-DD`, případná časová část se zahazuje; u `valid_to` je `1900-01-01` nebo prázdno = nezrušeno = NULL)
714
+ - normalizaci a validaci provádí [EnapoGidMappingNormalizer](../src/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.ts) podle [ded_gid_mapping_mock_import.sql](../db/scripts/ded_gid_mapping_mock_import.sql): dopočet `id_type`↔`commodity`, zahození rozporných párů, `1900-01-01`→NULL, výběr aktivního a nejnovějšího mapování mezi duplicitami
715
+ - dedupuje na PK (`place_id`, `gid`) a `link_source` u všech řádků nastavuje na `manual_entry` (hodnota z CSV se neukládá)
716
+ - vstupní rabbitmq fronta
717
+ - název: dataplatform.enapoenergetics.syncEnapoGidMapping
718
+ - TTL: 30 minut (starší zpráva už je překonaná novější)
719
+ - parametry: žádné — task vždy ingestuje celý export, takže není co validovat a `schema` je záměrně `undefined`
720
+ - cron definice
721
+ - cron.dataplatform.enapoenergetics.syncEnapoGidMapping — denní běh, nejlépe krátce po obnově CSV producentem
722
+ - rabin `0 15 3 * * *`
723
+ - prod `0 15 3 * * *`
724
+ - samotná definice cronu je vedena mimo tento repozitář (deployment konfigurace); hodnoty výše jsou zamýšlený rozvrh
725
+ - data modely
726
+ - [EnapoGidMappingRepository](../src/integration-engine/enapo/repositories/EnapoGidMappingRepository.ts) — `savingType: "insertOrUpdate"` nad `enapo_gid_mapping` (PK `place_id` + `gid`)
727
+ - funkce
728
+ - **upsert-only, nic se nemaže**: nové mapování se vloží, existující aktualizuje, chybějící v tabulce zůstane. Opakovaný běh nad stejnými vstupy dá stejný výsledek bez duplicit
729
+ - **robustní vůči nečistým datům**: producenta k čistému exportu nedonutíme, takže co task neumí zpracovat, přeskočí a **zaloguje warning** se souhrnem (počet a pár vzorků na každý důvod: `missing_required`, `place_id_too_long`, `invalid_date`, `contradicting_pair`, `unresolvable_commodity`). Jeden vadný řádek běh neshodí — délkové a datové limity chrání typované cílové sloupce před hodnotou, která by jinak shodila celou dávku
730
+ - **voda a teplo nejsou chyba, jen mimo rozsah**: filtrují se jako první a pouze se spočítají. Jejich počet jde do `logger.info`, `logger.warn` zůstává vyhrazený pro skutečné defekty, aby velký očekávaný objem nepřehlušil pár reálných anomálií
731
+ - zápis běží v jedné transakci po dávkách 5 000 řádků — jeden `INSERT` nad celým exportem by narazil na limit 65535 bind parametrů Postgresu. Dedup před zápisem je nutný i technicky (`insertOrUpdate` nesmí v jedné dávce zasáhnout stejný PK dvakrát); selhání kterékoli dávky rolluje celý běh
732
+ - join na měření: `enapo_gid_mapping.place_id` je kód EAN/EIC (`enapo_measurements.place_id` je naopak interní PPAS place id — viz [Sémantika `var`](#sémantika-var-v-enapo_measurements-ověřeno-proti-produkci-2026-08-13))
733
+ - unit testy
734
+ - [EnapoGidMappingSyncTask.test.ts](../test/integration-engine/enapo/task/EnapoGidMappingSyncTask.test.ts)
735
+ - [EnapoGidMappingNormalizer.test.ts](../test/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.test.ts)
736
+
703
737
  #### _Sémantika `var` v `enapo_measurements` (ověřeno proti produkci 2026-08-13)_
704
738
 
705
739
  Sloupec `value` míchá **kumulativní stavy měřidla** a **rozdíly za interval**, rozlišené pouze podle `(source, var)`. Agregace bez tohoto rozlišení dává nesmysly.
@@ -988,16 +1022,23 @@ Přehled endpointů a parametru `accessLimit`:
988
1022
  - `UNION ALL` větev pro OM známá pouze z Porsenny (e-manažer): hlavní měřidla (`level = main`) z `enapo_porsenna_devices`, jejichž `identifier` není namapován na daný GID v `enapo_gid_mapping`; `commodity` z typu měřidla (v reálných datech existují pouze `electricity_meter` / `gasometer` / `heat_meter` / `water_meter`), `id_type` odvozen přímo z komodity (elektřina → ean, plyn → eic, teplo a voda → `om` — standardní identifikátor nemají), `link_source = 'porsenna'`, `is_active` z `disabled_at`
989
1023
  - `v_enapo_building_porsenna_devices` — měřidla Porsenny s budovou (`enapo_porsenna_devices` × `enapo_porsenna_buildings` přes `(source, building_id)`); slouží pro obohacení OM o blok `porsenna` (měřidlo + podružná měřidla) a pro blok `energy_management` na úrovni budovy; spotřeby Porsenny blok nenese — jdou přes `mv_enapo_om_consumption` do `consumption_history` daného OM, kde mají navíc pokrytí a počty přispěvatelů
990
1024
  - `enapo_ppas_distribution_invoice_device` / `_price`, `enapo_ppas_commercial_invoice_device` / `_price` — dotahované podle id faktury a filtrované podle `place_id` instalace (jedna faktura může účtovat více OM, bez filtru by se řádky mísily)
1025
+ - `enapo_budova_spotrebic` — kotelny (zdroje vytápění) budovy; jednorázový snapshot, dotahovaný přes `GetByGid` podle normalizovaného GIDu
991
1026
  - mapovací tabulka `enapo_gid_mapping`
992
- - vlastní kontrakt modulu; aktuálně plněná mock daty (`link_source = 'mock'`)
993
- - v budoucnu ji bude plnit synchronizační task z dbt výstupu datového týmu (`tmp.ded_gid_mapping`, `link_source = 'energobroker_kod_eno'`)
1027
+ - vlastní kontrakt modulu; plněná denně synchronizačním taskem [EnapoGidMappingSyncTask](#task-enapogidmappingsynctask) z CSV exportu (synchronizované řádky mají `link_source = 'manual_entry'`)
1028
+ - PK je (`place_id`, `gid`); mock data (`link_source = 'mock'`) z ruční přípravy zůstávají, dokud je sync nepřepíše — synchronizovaný řádek pro stejné (`place_id`, `gid`) mock řádek přepíše
994
1029
  - sloupec `is_active` v pohledu je odvozený z `valid_to` (NULL nebo v budoucnu = aktivní); expirovaná mapování se vracejí s příznakem
1030
+ - tabulka kotelen `enapo_budova_spotrebic`
1031
+ - jednorázový snapshot od energetického specialisty (`Zdroje_vytápění.xlsx`, list `odbmisto_budova_spotrebic`) — **bez cronu, bez živé integrace**; obsah se mění jen zopakováním importu podle [kotelny_priprava_dat.md](./eno/kotelny_priprava_dat.md)
1032
+ - PK je (`id_bud_spotrebic`, `gid`)
1033
+ - vazba na `eno_budova` je soft (bez FK) — snapshot není vázaný na životní cyklus ENO ingestu a GID chybějící v ENO nesmí import zablokovat; takové kotelny se v API prostě neprojeví
995
1034
  - struktura odpovědi
996
1035
  - komoditně specifická data jsou vnořená pod klíči `electricity` / `gas` u každého OM; v odpovědi je pouze klíč odpovídající poli `commodity`, ostatní jsou zcela vynechány
997
1036
  - detail existuje, pokud pro GID máme jakákoli data — zná ho alespoň jeden zdroj (`eno_budova`, `eno_adresa`, `enapo_gid_mapping`, nebo Porsenna): pokud GID není v `eno_budova`, ale má adresy, namapovaná OM či měřidla, vrací se 200 s `building: null` a chybějící části jako `null` / prázdná pole (cca 29 % GIDů z mapování nemá záznam v ENO); 404 pouze pokud GID nezná žádný zdroj
998
1037
  - OM známé z obou zdrojů (mapování i Porsenna) je v odpovědi jednou — data Porsenny jsou vnořená jako blok `porsenna` v příslušném komoditním klíči; duplicitní záznamy nevznikají
999
1038
  - `monthly` řada zdroje, který reportuje jen roční agregáty (Porsenna), je prázdné pole, ne 36 `null` položek — spina samých `null` by tvrdila, že zdroj měsíce zná a nemá je, což pro zdroj bez měsíční granularity neplatí; roční data jsou v `yearly`
1000
1039
  - budoucí komodity (teplo, voda) se přidají jako nové klíče bez breaking change
1040
+ - `heat_sources` — kotelny budovy: `count`, `total_rated_output_kw` a pole `sources` řazené podle výkonu (nejsilnější první). API pole jsou anglicky (`appliance_name`, `note`, `rated_output_kw`, `fuel_code`, `is_monitored`, `appliance_type`, `operating_since`) a mapují se z českých sloupců snapshotu (`nazev_spotrebic`, `poznamka`, `vykon_kw`, `palivo`, `monitoring`, `nazev_typ_bud_spotrebic`, `provoz_od`) v `EnoBuildingDetailTransformation`. Budova bez kotelen vrací `count: 0` a prázdné `sources`, ne chybějící klíč
1041
+ - `total_rated_output_kw` sčítá jen kotelny s uvedeným výkonem
1001
1042
  - `name` / `address` na nejvyšší úrovni: `building` je pro cca 29 % GIDů `null`, ale kartu je pořád potřeba nadepsat — název se proto řeší stejným fallbackem jako ve vyhledávání (`eno_budova.nazev` → název budovy z Porsenny → `null`), adresa jako první popsaná `eno_adresa` (řazené hlavní adresou napřed) → adresa z Porsenny → `null`. Kdyby to zůstalo na klientech, každý si řetězec poskládá jinak.
1002
1043
  - provenience agregátů (aby klient nemusel sečtené číslo vydávat za přesné)
1003
1044
  - `points_total` / `points_with_data` u každého období: kolik OM do něj přispělo a kolik z nich mělo hodnotu. Rozdíl proti `points` celé řady je to, co odliší „budova spotřebovala míň“ od „chybí jedno OM“; u prázdného období spiny jsou obě nuly, nikdy `null`
@@ -151,40 +151,7 @@ paths:
151
151
  summary: ENO building detail with consumption points (OM) and technical parameters
152
152
  description: >-
153
153
  Returns the ENO building (eno_budova) identified by GID together with its addresses and all
154
- consumption points mapped to it. Commodity-specific data is nested under the
155
- `electricity`/`gas`/`heat`/`water` keys of each consumption point; only the key matching the
156
- `commodity` field is present, the others are omitted entirely.
157
-
158
- Consumption points come from two independent sources: the energobroker mapping (EAN/EIC,
159
- enriched with PRE metadata and PPAS invoices) and Porsenna e-manazer devices
160
- (`link_source: porsenna`) — heat and water meters, plus any EAN/EIC the mapping lacks.
161
- An OM known to both sources is returned once, with the Porsenna data nested as a `porsenna`
162
- sub-block (device, sub-meters, yearly consumption) inside its commodity block. Buildings
163
- tracked in Porsenna also carry an `energy_management` summary.
164
-
165
- The endpoint returns whatever data exists for the GID: if there is any building record,
166
- address, or consumption point, the response is 200 with the missing parts as `null` or
167
- empty arrays (e.g. `building: null` when only consumption points or addresses are known).
168
- 404 is returned only when no source holds any data for the GID.
169
-
170
- `consumption_history` carries monthly and yearly consumption per commodity, at building
171
- level and again per consumption point. Sources are returned **in parallel** rather than
172
- merged into one canonical series: metered readings and invoiced amounts legitimately
173
- disagree, and which one a client wants depends on what it shows. `is_metered`
174
- distinguishes them.
175
-
176
- Coverage differs sharply by commodity and is a property of the data, not of the endpoint.
177
- Gas has roughly three years of invoice history for about three quarters of its points.
178
- Electricity is metered-only and starts in 2025, covering under a tenth of its points, so
179
- most months come back `null`. Heat and water exist only as Porsenna yearly figures.
180
- `measurement_data_from` and the per-series `data_from` say when data actually begins, so a
181
- run of leading `null`s is explicable rather than looking like a fault.
182
-
183
- Every aggregate carries its own provenance, so a client never has to present a summed
184
- figure as if it were exact: `points_total`/`points_with_data` say how many consumption
185
- points stand behind a period, `invoice_ids` names the billing documents an allocated
186
- period came from, `coverage_count`/`expected_count` mark a partial period, and a point's
187
- `shared_with` names the other buildings its meters also serve.
154
+ consumption points mapped to it.
188
155
  parameters:
189
156
  - in: path
190
157
  name: gid
@@ -1001,6 +968,73 @@ components:
1001
968
  type: array
1002
969
  items:
1003
970
  $ref: "#/components/schemas/EnergeticsEnoConsumptionPoint"
971
+ heat_sources:
972
+ $ref: "#/components/schemas/EnergeticsEnoHeatSources"
973
+ EnergeticsEnoHeatSources:
974
+ type: object
975
+ description: >-
976
+ Heat sources (boiler rooms) recorded for the building.
977
+ properties:
978
+ count:
979
+ type: integer
980
+ description: Number of heat sources recorded for this building.
981
+ example: 3
982
+ total_rated_output_kw:
983
+ type: number
984
+ nullable: true
985
+ description: >-
986
+ Sum of `rated_output_kw` over the building's heat sources
987
+ example: 650.5
988
+ sources:
989
+ type: array
990
+ description: >-
991
+ The individual appliances, strongest rated output first. .
992
+ items:
993
+ type: object
994
+ properties:
995
+ appliance_name:
996
+ type: string
997
+ nullable: true
998
+ description: >-
999
+ Free-text appliance name from the snapshot.
1000
+ example: 2x gas boiler Viessmann Vitocrossal 200
1001
+ note:
1002
+ type: string
1003
+ nullable: true
1004
+ description: Note from the snapshot, e.g. where the figure came from.
1005
+ example: boiler nameplates
1006
+ rated_output_kw:
1007
+ type: number
1008
+ nullable: true
1009
+ description: >-
1010
+ Rated output in kW. `0` means the snapshot states no output
1011
+ example: 530
1012
+ fuel_code:
1013
+ type: integer
1014
+ nullable: true
1015
+ description: >-
1016
+ Fuel/energy-source code
1017
+ example: 2
1018
+ is_monitored:
1019
+ type: boolean
1020
+ nullable: true
1021
+ description: >-
1022
+ Monitoring flag from the source system. Its exact meaning in the source
1023
+ is not documented in the snapshot.
1024
+ example: false
1025
+ appliance_type:
1026
+ type: string
1027
+ nullable: true
1028
+ description: >-
1029
+ Appliance type from the source system. Every row of the current snapshot
1030
+ is `boiler`.
1031
+ example: boiler
1032
+ operating_since:
1033
+ type: string
1034
+ format: date
1035
+ nullable: true
1036
+ description: Date the appliance has been in operation since.
1037
+ example: 2025-01-01
1004
1038
  EnergeticsEnoConsumptionEntry:
1005
1039
  type: object
1006
1040
  description: >-
@@ -1019,9 +1053,7 @@ components:
1019
1053
  nullable: true
1020
1054
  description: >-
1021
1055
  Comparable energy. For gas this is derived (normometers_nm3 * combustion_heat) and is
1022
- null whenever the conversion inputs are missing; `value` + `unit` stay authoritative.
1023
- A yearly entry withholds it unless every contributing month has one, so it can never
1024
- imply a conversion rate that did not exist.
1056
+ null whenever the conversion inputs are missing;
1025
1057
  coverage_count:
1026
1058
  type: number
1027
1059
  description: Days of the period carrying data.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/energetics",
3
- "version": "1.14.0",
3
+ "version": "1.15.0-dev.2817183709",
4
4
  "description": "Golemio Energetics Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",