@golemio/energetics 1.17.0 → 1.17.1-rc.2897105503

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 (24) hide show
  1. package/db/example/06_eno.sql +12 -4
  2. package/db/migrations/postgresql/20260920100000-ded-detail-department.js +53 -0
  3. package/db/migrations/postgresql/sqls/20260920100000-ded-detail-department-down.sql +213 -0
  4. package/db/migrations/postgresql/sqls/20260920100000-ded-detail-department-up.sql +240 -0
  5. package/dist/output-gateway/models/DedBuildingSearchViewModel.d.ts +4 -0
  6. package/dist/output-gateway/models/DedBuildingSearchViewModel.js +4 -0
  7. package/dist/output-gateway/models/DedBuildingSearchViewModel.js.map +1 -1
  8. package/dist/output-gateway/models/EnoBuildingDetailViewModel.d.ts +4 -0
  9. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js +4 -0
  10. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js.map +1 -1
  11. package/dist/output-gateway/models/interfaces/IDedBuildingSearchView.d.ts +4 -0
  12. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.d.ts +4 -0
  13. package/dist/output-gateway/repositories/DedBuildingSearchRepository.js +12 -2
  14. package/dist/output-gateway/repositories/DedBuildingSearchRepository.js.map +1 -1
  15. package/dist/output-gateway/routers/interfaces/IDedBuildingSearchResponse.d.ts +1 -0
  16. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.d.ts +2 -1
  17. package/dist/output-gateway/transformations/DedBuildingSearchTransformation.js +3 -0
  18. package/dist/output-gateway/transformations/DedBuildingSearchTransformation.js.map +1 -1
  19. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.d.ts +1 -0
  20. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js +11 -1
  21. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js.map +1 -1
  22. package/docs/implementation_documentation.md +2 -1
  23. package/docs/openapi-output.yaml +15 -0
  24. package/package.json +3 -3
@@ -13,7 +13,11 @@ INSERT INTO eno_budova (gid, zdroj, nazev, oznaceni, druh_vytapeni, pripojka_ele
13
13
  ('GID200', 'mhmp', 'MŠ Vedlejší', 'MŠV', 'plynová kotelna', 'ano', 'ano', 'ne',
14
14
  'ne', 480.0, 220.0, 1600.0,
15
15
  0, 5, 2, 0, 1, false,
16
- 112, 100000002, 1002, '7', 'budova pro vzdělávání', NULL, NULL, '2021-06-15');
16
+ 112, 100000002, 1002, '7', 'budova pro vzdělávání', NULL, NULL, '2021-06-15'),
17
+ ('GIDDEPT1', 'mhmp', 'Budova s nedohledatelnou hlavní jednotkou', 'BND', 'ústřední dálkové', 'ano', 'ano', 'ano',
18
+ 'ne', 300.0, 150.0, 900.0,
19
+ 0, 3, 1, 0, 0, false,
20
+ 112, 100000003, 1003, '7', 'budova pro vzdělávání', NULL, NULL, '2021-01-01');
17
21
 
18
22
  INSERT INTO eno_adresa (gid, gid_typ, poradi, zdroj, id, popis, hlavni) VALUES
19
23
  ('GID100', 'budova', 1, 'mhmp', 501, 'Testovací 123/4, 100 00 Praha 10', true),
@@ -26,10 +30,14 @@ INSERT INTO eno_adresa (gid, gid_typ, poradi, zdroj, id, popis, hlavni) VALUES
26
30
 
27
31
  -- GID100 (mhmp) is owned property linked to an evidenční jednotka and two správci; GID200 has no majetek row.
28
32
  INSERT INTO eno_majetek (gid, gid_typ, zdroj, id_organizace, id_maj_evidencni_jednotka, id_maj_spravce_mandatni, id_maj_spravce_ucet_jednotka, v_majetku) VALUES
29
- ('GID100', 'budova', 'mhmp', 1, 7001, 8001, 8002, true);
33
+ ('GID100', 'budova', 'mhmp', 1, 7001, 8001, 8002, true),
34
+ ('GIDDEPT1', 'budova', 'mhmp', 1, 7002, NULL, NULL, true);
30
35
 
31
- INSERT INTO eno_ciselnik_evidencni_jednotka (guid, aktivni, id, kod, nazev, typ, platnost_od) VALUES
32
- ('11111111-1111-1111-1111-111111111111', true, 7001, 'EJ-7001', 'Evidenční jednotka Praha 10', 'škola', '2020-01-01');
36
+ -- EJ-7002's kod_maj_evidencni_jednotka_hl references a code absent from this table (dangling reference).
37
+ INSERT INTO eno_ciselnik_evidencni_jednotka (guid, aktivni, id, kod, kod_maj_evidencni_jednotka_hl, nazev, typ, platnost_od) VALUES
38
+ ('11111111-1111-1111-1111-111111111111', true, 7001, 'EJ-7001', 'OMA', 'Evidenční jednotka Praha 10', 'škola', '2020-01-01'),
39
+ ('44444444-4444-4444-4444-444444444444', true, 9001, 'OMA', NULL, 'OMA', 'odbor', '2020-01-01'),
40
+ ('55555555-5555-5555-5555-555555555555', true, 7002, 'EJ-7002', 'ODBOR-NEEXISTUJE', 'Evidenční jednotka bez nadřízené', 'škola', '2020-01-01');
33
41
 
34
42
  INSERT INTO eno_ciselnik_spravce (guid, aktivni, id_maj_spravce, id_organizace, kod, nazev, ic, dic, platnost_od) VALUES
35
43
  ('22222222-2222-2222-2222-222222222222', true, 8001, 501, 'SPR-8001', 'Správce mandátní', '11111111', 'CZ11111111', '2020-01-01'),
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20260920100000-ded-detail-department-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20260920100000-ded-detail-department-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1,213 @@
1
+ DROP MATERIALIZED VIEW IF EXISTS mv_ded_building_search;
2
+
3
+ DROP INDEX IF EXISTS eno_ciselnik_evidencni_jednotka_id_idx;
4
+ DROP INDEX IF EXISTS eno_ciselnik_evidencni_jednotka_kod_idx;
5
+
6
+ -- CREATE OR REPLACE VIEW cannot remove columns, so the view is dropped and recreated at the
7
+ -- pre-department definition (migration 20260807092000).
8
+ DROP VIEW IF EXISTS v_enapo_building_detail;
9
+
10
+ CREATE VIEW v_enapo_building_detail AS
11
+ SELECT DISTINCT ON (b.gid)
12
+ b.gid,
13
+ b.zdroj,
14
+ b.nazev,
15
+ b.oznaceni,
16
+ b.druh_vytapeni,
17
+ b.pripojka_elektro,
18
+ b.pripojka_voda,
19
+ b.pripojka_kanalizace,
20
+ b.budova_rozdelena_byt_nebyt,
21
+ b.celkova_plocha_budova,
22
+ b.celkova_plocha_byt_budova,
23
+ b.celkova_plocha_nebyt_budova,
24
+ b.zastavena_plocha,
25
+ b.obestaveny_prostor,
26
+ b.pocet_byt,
27
+ b.pocet_nebyt_budova,
28
+ b.pocet_nadzem_podlazi,
29
+ b.pocet_podzem_podlazi,
30
+ b.pocet_podkrovi,
31
+ b.vytah,
32
+ b.czcc,
33
+ b.id_cuzk,
34
+ b.id_objekt,
35
+ b.kod_vyuziti,
36
+ b.nazev_vyuziti,
37
+ b.kod_ochrana,
38
+ b.nazev_ochrana,
39
+ b.platnost_od,
40
+ ej.ej_id,
41
+ ej.ej_kod,
42
+ ej.ej_nazev,
43
+ ej.ej_typ,
44
+ spm.sp_id AS spm_id,
45
+ spm.sp_kod AS spm_kod,
46
+ spm.sp_nazev AS spm_nazev,
47
+ spm.sp_ic AS spm_ic,
48
+ spm.sp_dic AS spm_dic,
49
+ spu.sp_id AS spu_id,
50
+ spu.sp_kod AS spu_kod,
51
+ spu.sp_nazev AS spu_nazev,
52
+ spu.sp_ic AS spu_ic,
53
+ spu.sp_dic AS spu_dic
54
+ FROM eno_budova b
55
+ LEFT JOIN eno_majetek m
56
+ ON m.gid = b.gid
57
+ AND m.gid_typ = 'budova'
58
+ AND m.zdroj = b.zdroj
59
+ LEFT JOIN LATERAL (
60
+ SELECT
61
+ e.id AS ej_id,
62
+ e.kod AS ej_kod,
63
+ e.nazev AS ej_nazev,
64
+ e.typ AS ej_typ
65
+ FROM eno_ciselnik_evidencni_jednotka e
66
+ WHERE e.id = m.id_maj_evidencni_jednotka
67
+ ORDER BY e.platnost_od DESC NULLS LAST
68
+ LIMIT 1
69
+ ) ej ON true
70
+ LEFT JOIN LATERAL (
71
+ SELECT
72
+ s.id_maj_spravce AS sp_id,
73
+ s.kod AS sp_kod,
74
+ s.nazev AS sp_nazev,
75
+ s.ic AS sp_ic,
76
+ s.dic AS sp_dic
77
+ FROM eno_ciselnik_spravce s
78
+ WHERE s.id_maj_spravce = m.id_maj_spravce_mandatni
79
+ ORDER BY s.platnost_od DESC NULLS LAST
80
+ LIMIT 1
81
+ ) spm ON true
82
+ LEFT JOIN LATERAL (
83
+ SELECT
84
+ s.id_maj_spravce AS sp_id,
85
+ s.kod AS sp_kod,
86
+ s.nazev AS sp_nazev,
87
+ s.ic AS sp_ic,
88
+ s.dic AS sp_dic
89
+ FROM eno_ciselnik_spravce s
90
+ WHERE s.id_maj_spravce = m.id_maj_spravce_ucet_jednotka
91
+ ORDER BY s.platnost_od DESC NULLS LAST
92
+ LIMIT 1
93
+ ) spu ON true
94
+ ORDER BY b.gid, b.zdroj;
95
+
96
+ CREATE MATERIALIZED VIEW mv_ded_building_search AS
97
+ WITH searchable_gid AS (
98
+ SELECT gid FROM v_enapo_building_detail
99
+ UNION
100
+ SELECT gid FROM enapo_gid_mapping
101
+ UNION
102
+ SELECT gid FROM v_enapo_building_porsenna_devices
103
+ ),
104
+ active_gid AS (
105
+ SELECT g.gid
106
+ FROM searchable_gid g
107
+ WHERE NOT EXISTS (
108
+ SELECT 1
109
+ FROM eno_vyrazeno v
110
+ WHERE v.gid = g.gid AND v.gid_typ = 'budova'
111
+ )
112
+ ),
113
+ building_address AS (
114
+ SELECT
115
+ a.gid,
116
+ array_agg(a.popis::text ORDER BY a.hlavni DESC NULLS LAST, a.poradi ASC) AS addresses
117
+ FROM (
118
+ SELECT DISTINCT ON (gid, popis) gid, popis, hlavni, poradi
119
+ FROM eno_adresa
120
+ WHERE gid_typ = 'budova' AND popis IS NOT NULL
121
+ ORDER BY gid, popis, hlavni DESC NULLS LAST, poradi ASC
122
+ ) a
123
+ GROUP BY a.gid
124
+ ),
125
+ building_point AS (
126
+ SELECT
127
+ gid,
128
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'ean'), '{}'::text[]) AS ean,
129
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'eic'), '{}'::text[]) AS eic,
130
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'om'), '{}'::text[]) AS om,
131
+ count(*) FILTER (WHERE is_active) AS active_points_count
132
+ FROM v_enapo_building_consumption_points
133
+ GROUP BY gid
134
+ ),
135
+ building_geometry AS (
136
+ SELECT
137
+ gid,
138
+ public.ST_Multi(public.ST_Collect(f_ded_safe_geom(zakres, '5514'))) AS geom
139
+ FROM eno_geometrie
140
+ WHERE zakres IS NOT NULL
141
+ GROUP BY gid
142
+ )
143
+ SELECT
144
+ g.gid::text AS gid,
145
+ b.nazev::text AS nazev,
146
+ b.oznaceni::text AS oznaceni,
147
+ b.ej_id AS ej_id,
148
+ b.ej_kod::text AS ej_kod,
149
+ b.ej_nazev::text AS ej_nazev,
150
+ b.ej_typ::text AS ej_typ,
151
+ a.addresses[1] AS address_main,
152
+ COALESCE(a.addresses, '{}'::text[]) AS addresses,
153
+ COALESCE(p.ean, '{}'::text[]) AS ean,
154
+ COALESCE(p.eic, '{}'::text[]) AS eic,
155
+ COALESCE(p.om, '{}'::text[]) AS om,
156
+ COALESCE(p.active_points_count, 0) AS active_points_count,
157
+ (b.gid IS NOT NULL) AS has_building_record,
158
+ lower(public.unaccent(concat_ws(' ', b.nazev, b.oznaceni))) AS name_norm,
159
+ lower(public.unaccent(COALESCE(array_to_string(a.addresses, ' '), ''))) AS address_norm,
160
+ (
161
+ setweight(to_tsvector('simple', lower(public.unaccent(concat_ws(' ', b.nazev, b.oznaceni, b.ej_nazev)))), 'A') ||
162
+ setweight(to_tsvector('simple', lower(public.unaccent(COALESCE(a.addresses[1], '')))), 'B') ||
163
+ setweight(to_tsvector('simple', lower(public.unaccent(COALESCE(array_to_string(a.addresses[2:], ' '), '')))), 'C') ||
164
+ setweight(
165
+ to_tsvector(
166
+ 'simple',
167
+ lower(concat_ws(' ', array_to_string(COALESCE(p.ean, '{}') || COALESCE(p.eic, '{}') || COALESCE(p.om, '{}'), ' '), g.gid, b.ej_kod))
168
+ ),
169
+ 'D'
170
+ )
171
+ ) AS search_document,
172
+ geo.geom
173
+ FROM active_gid g
174
+ LEFT JOIN v_enapo_building_detail b ON b.gid = g.gid
175
+ LEFT JOIN building_address a ON a.gid = g.gid
176
+ LEFT JOIN building_point p ON p.gid = g.gid
177
+ LEFT JOIN building_geometry geo ON geo.gid = g.gid;
178
+
179
+ COMMENT ON MATERIALIZED VIEW mv_ded_building_search IS
180
+ 'Search index for the DeD building search endpoint - one row per building GID with the weighted tsvector, normalised name/address for trigram matching, EAN/EIC/OM identifiers for exact matching and the building geometry in EPSG:4326. Refreshed by the DedSearchIndexRefreshTask (integration engine).';
181
+
182
+ COMMENT ON COLUMN mv_ded_building_search.addresses IS
183
+ 'Distinct eno_adresa.popis of the building (gid_typ = ''budova''), ordered main address first, then by poradi.';
184
+ COMMENT ON COLUMN mv_ded_building_search.address_main IS 'First element of addresses, i.e. the main address.';
185
+ COMMENT ON COLUMN mv_ded_building_search.ean IS
186
+ 'Distinct EAN identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''ean'').';
187
+ COMMENT ON COLUMN mv_ded_building_search.eic IS
188
+ 'Distinct EIC identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''eic'').';
189
+ COMMENT ON COLUMN mv_ded_building_search.om IS
190
+ 'Distinct OM identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''om'').';
191
+ COMMENT ON COLUMN mv_ded_building_search.active_points_count IS
192
+ 'Number of consumption points of the building flagged is_active in v_enapo_building_consumption_points.';
193
+ COMMENT ON COLUMN mv_ded_building_search.has_building_record IS
194
+ 'False when the GID reached the index only through enapo_gid_mapping or Porsenna and has no eno_budova record.';
195
+ COMMENT ON COLUMN mv_ded_building_search.name_norm IS
196
+ 'lower(public.unaccent(nazev || '' '' || oznaceni)); the trigram column matched against the equally normalised query.';
197
+ COMMENT ON COLUMN mv_ded_building_search.address_norm IS
198
+ 'lower(public.unaccent(...)) over all addresses joined by a space; the trigram column for address matching.';
199
+ COMMENT ON COLUMN mv_ded_building_search.search_document IS
200
+ 'Weighted tsvector: A = nazev + oznaceni + evidenční jednotka name, B = main address, C = secondary addresses, D = EAN/EIC/OM + gid + evidenční jednotka code.';
201
+ COMMENT ON COLUMN mv_ded_building_search.geom IS
202
+ 'eno_geometrie.zakres polygons of the GID collected into one MultiPolygon and transformed to EPSG:4326 by f_ded_safe_geom; NULL when no polygon is parsable.';
203
+
204
+ CREATE UNIQUE INDEX mv_ded_building_search_gid_uidx ON mv_ded_building_search (gid);
205
+
206
+ CREATE INDEX mv_ded_building_search_document_gin ON mv_ded_building_search USING gin (search_document);
207
+
208
+ CREATE INDEX mv_ded_building_search_name_trgm ON mv_ded_building_search USING gist (name_norm public.gist_trgm_ops);
209
+ CREATE INDEX mv_ded_building_search_address_trgm ON mv_ded_building_search USING gist (address_norm public.gist_trgm_ops);
210
+
211
+ CREATE INDEX mv_ded_building_search_ean_gin ON mv_ded_building_search USING gin (ean);
212
+ CREATE INDEX mv_ded_building_search_eic_gin ON mv_ded_building_search USING gin (eic);
213
+ CREATE INDEX mv_ded_building_search_om_gin ON mv_ded_building_search USING gin (om);
@@ -0,0 +1,240 @@
1
+ CREATE INDEX IF NOT EXISTS eno_ciselnik_evidencni_jednotka_id_idx ON eno_ciselnik_evidencni_jednotka (id);
2
+ CREATE INDEX IF NOT EXISTS eno_ciselnik_evidencni_jednotka_kod_idx ON eno_ciselnik_evidencni_jednotka (kod);
3
+
4
+ CREATE OR REPLACE VIEW v_enapo_building_detail AS
5
+ SELECT DISTINCT ON (b.gid)
6
+ b.gid,
7
+ b.zdroj,
8
+ b.nazev,
9
+ b.oznaceni,
10
+ b.druh_vytapeni,
11
+ b.pripojka_elektro,
12
+ b.pripojka_voda,
13
+ b.pripojka_kanalizace,
14
+ b.budova_rozdelena_byt_nebyt,
15
+ b.celkova_plocha_budova,
16
+ b.celkova_plocha_byt_budova,
17
+ b.celkova_plocha_nebyt_budova,
18
+ b.zastavena_plocha,
19
+ b.obestaveny_prostor,
20
+ b.pocet_byt,
21
+ b.pocet_nebyt_budova,
22
+ b.pocet_nadzem_podlazi,
23
+ b.pocet_podzem_podlazi,
24
+ b.pocet_podkrovi,
25
+ b.vytah,
26
+ b.czcc,
27
+ b.id_cuzk,
28
+ b.id_objekt,
29
+ b.kod_vyuziti,
30
+ b.nazev_vyuziti,
31
+ b.kod_ochrana,
32
+ b.nazev_ochrana,
33
+ b.platnost_od,
34
+ ej.ej_id,
35
+ ej.ej_kod,
36
+ ej.ej_nazev,
37
+ ej.ej_typ,
38
+ spm.sp_id AS spm_id,
39
+ spm.sp_kod AS spm_kod,
40
+ spm.sp_nazev AS spm_nazev,
41
+ spm.sp_ic AS spm_ic,
42
+ spm.sp_dic AS spm_dic,
43
+ spu.sp_id AS spu_id,
44
+ spu.sp_kod AS spu_kod,
45
+ spu.sp_nazev AS spu_nazev,
46
+ spu.sp_ic AS spu_ic,
47
+ spu.sp_dic AS spu_dic,
48
+ COALESCE(ej_hl.ej_hl_id, ej.ej_id) AS odbor_id,
49
+ COALESCE(ej_hl.ej_hl_kod, ej.ej_kod) AS odbor_kod,
50
+ COALESCE(ej_hl.ej_hl_nazev, ej.ej_nazev) AS odbor_nazev,
51
+ COALESCE(ej_hl.ej_hl_typ, ej.ej_typ) AS odbor_typ
52
+ FROM eno_budova b
53
+ LEFT JOIN eno_majetek m
54
+ ON m.gid = b.gid
55
+ AND m.gid_typ = 'budova'
56
+ AND m.zdroj = b.zdroj
57
+ LEFT JOIN LATERAL (
58
+ SELECT
59
+ e.id AS ej_id,
60
+ e.kod AS ej_kod,
61
+ e.nazev AS ej_nazev,
62
+ e.typ AS ej_typ,
63
+ e.kod_maj_evidencni_jednotka_hl AS ej_kod_hl
64
+ FROM eno_ciselnik_evidencni_jednotka e
65
+ WHERE e.id = m.id_maj_evidencni_jednotka
66
+ ORDER BY e.platnost_od DESC NULLS LAST
67
+ LIMIT 1
68
+ ) ej ON true
69
+ LEFT JOIN LATERAL (
70
+ SELECT
71
+ e.id AS ej_hl_id,
72
+ e.kod AS ej_hl_kod,
73
+ e.nazev AS ej_hl_nazev,
74
+ e.typ AS ej_hl_typ
75
+ FROM eno_ciselnik_evidencni_jednotka e
76
+ WHERE e.kod = ej.ej_kod_hl
77
+ ORDER BY e.platnost_od DESC NULLS LAST
78
+ LIMIT 1
79
+ ) ej_hl ON true
80
+ LEFT JOIN LATERAL (
81
+ SELECT
82
+ s.id_maj_spravce AS sp_id,
83
+ s.kod AS sp_kod,
84
+ s.nazev AS sp_nazev,
85
+ s.ic AS sp_ic,
86
+ s.dic AS sp_dic
87
+ FROM eno_ciselnik_spravce s
88
+ WHERE s.id_maj_spravce = m.id_maj_spravce_mandatni
89
+ ORDER BY s.platnost_od DESC NULLS LAST
90
+ LIMIT 1
91
+ ) spm ON true
92
+ LEFT JOIN LATERAL (
93
+ SELECT
94
+ s.id_maj_spravce AS sp_id,
95
+ s.kod AS sp_kod,
96
+ s.nazev AS sp_nazev,
97
+ s.ic AS sp_ic,
98
+ s.dic AS sp_dic
99
+ FROM eno_ciselnik_spravce s
100
+ WHERE s.id_maj_spravce = m.id_maj_spravce_ucet_jednotka
101
+ ORDER BY s.platnost_od DESC NULLS LAST
102
+ LIMIT 1
103
+ ) spu ON true
104
+ ORDER BY b.gid, b.zdroj;
105
+
106
+ -- mv_ded_building_search must be dropped and recreated (not ALTERed) to pick up the new columns from
107
+ -- v_enapo_building_detail; a materialized view's column list is fixed at creation time.
108
+ DROP MATERIALIZED VIEW IF EXISTS mv_ded_building_search;
109
+
110
+ CREATE MATERIALIZED VIEW mv_ded_building_search AS
111
+ WITH searchable_gid AS (
112
+ SELECT gid FROM v_enapo_building_detail
113
+ UNION
114
+ SELECT gid FROM enapo_gid_mapping
115
+ UNION
116
+ SELECT gid FROM v_enapo_building_porsenna_devices
117
+ ),
118
+ active_gid AS (
119
+ SELECT g.gid
120
+ FROM searchable_gid g
121
+ WHERE NOT EXISTS (
122
+ SELECT 1
123
+ FROM eno_vyrazeno v
124
+ WHERE v.gid = g.gid AND v.gid_typ = 'budova'
125
+ )
126
+ ),
127
+ building_address AS (
128
+ SELECT
129
+ a.gid,
130
+ array_agg(a.popis::text ORDER BY a.hlavni DESC NULLS LAST, a.poradi ASC) AS addresses
131
+ FROM (
132
+ SELECT DISTINCT ON (gid, popis) gid, popis, hlavni, poradi
133
+ FROM eno_adresa
134
+ WHERE gid_typ = 'budova' AND popis IS NOT NULL
135
+ ORDER BY gid, popis, hlavni DESC NULLS LAST, poradi ASC
136
+ ) a
137
+ GROUP BY a.gid
138
+ ),
139
+ building_point AS (
140
+ SELECT
141
+ gid,
142
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'ean'), '{}'::text[]) AS ean,
143
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'eic'), '{}'::text[]) AS eic,
144
+ COALESCE(array_agg(DISTINCT place_id::text ORDER BY place_id::text) FILTER (WHERE id_type = 'om'), '{}'::text[]) AS om,
145
+ count(*) FILTER (WHERE is_active) AS active_points_count
146
+ FROM v_enapo_building_consumption_points
147
+ GROUP BY gid
148
+ ),
149
+ building_geometry AS (
150
+ SELECT
151
+ gid,
152
+ public.ST_Multi(public.ST_Collect(f_ded_safe_geom(zakres, '5514'))) AS geom
153
+ FROM eno_geometrie
154
+ WHERE zakres IS NOT NULL
155
+ GROUP BY gid
156
+ )
157
+ SELECT
158
+ g.gid::text AS gid,
159
+ b.nazev::text AS nazev,
160
+ b.oznaceni::text AS oznaceni,
161
+ -- The whole evidenční jednotka is carried so the search response can use the same shape as the
162
+ -- building detail endpoint (id / kod / nazev / typ) instead of a narrower look-alike.
163
+ b.ej_id AS ej_id,
164
+ b.ej_kod::text AS ej_kod,
165
+ b.ej_nazev::text AS ej_nazev,
166
+ b.ej_typ::text AS ej_typ,
167
+ -- Department (odbor): the evidenční jednotka's head unit, falling back to the evidenční jednotka
168
+ -- itself when it has none (see v_enapo_building_detail above).
169
+ b.odbor_id AS odbor_id,
170
+ b.odbor_kod::text AS odbor_kod,
171
+ b.odbor_nazev::text AS odbor_nazev,
172
+ b.odbor_typ::text AS odbor_typ,
173
+ a.addresses[1] AS address_main,
174
+ COALESCE(a.addresses, '{}'::text[]) AS addresses,
175
+ COALESCE(p.ean, '{}'::text[]) AS ean,
176
+ COALESCE(p.eic, '{}'::text[]) AS eic,
177
+ COALESCE(p.om, '{}'::text[]) AS om,
178
+ COALESCE(p.active_points_count, 0) AS active_points_count,
179
+ (b.gid IS NOT NULL) AS has_building_record,
180
+ lower(public.unaccent(concat_ws(' ', b.nazev, b.oznaceni))) AS name_norm,
181
+ lower(public.unaccent(COALESCE(array_to_string(a.addresses, ' '), ''))) AS address_norm,
182
+ (
183
+ setweight(to_tsvector('simple', lower(public.unaccent(concat_ws(' ', b.nazev, b.oznaceni, b.ej_nazev)))), 'A') ||
184
+ setweight(to_tsvector('simple', lower(public.unaccent(COALESCE(a.addresses[1], '')))), 'B') ||
185
+ setweight(to_tsvector('simple', lower(public.unaccent(COALESCE(array_to_string(a.addresses[2:], ' '), '')))), 'C') ||
186
+ setweight(
187
+ to_tsvector(
188
+ 'simple',
189
+ lower(concat_ws(' ', array_to_string(COALESCE(p.ean, '{}') || COALESCE(p.eic, '{}') || COALESCE(p.om, '{}'), ' '), g.gid, b.ej_kod))
190
+ ),
191
+ 'D'
192
+ )
193
+ ) AS search_document,
194
+ geo.geom
195
+ FROM active_gid g
196
+ LEFT JOIN v_enapo_building_detail b ON b.gid = g.gid
197
+ LEFT JOIN building_address a ON a.gid = g.gid
198
+ LEFT JOIN building_point p ON p.gid = g.gid
199
+ LEFT JOIN building_geometry geo ON geo.gid = g.gid;
200
+
201
+ COMMENT ON MATERIALIZED VIEW mv_ded_building_search IS
202
+ 'Search index for the DeD building search endpoint - one row per building GID with the weighted tsvector, normalised name/address for trigram matching, EAN/EIC/OM identifiers for exact matching and the building geometry in EPSG:4326. Refreshed by the DedSearchIndexRefreshTask (integration engine).';
203
+
204
+ COMMENT ON COLUMN mv_ded_building_search.addresses IS
205
+ 'Distinct eno_adresa.popis of the building (gid_typ = ''budova''), ordered main address first, then by poradi.';
206
+ COMMENT ON COLUMN mv_ded_building_search.address_main IS 'First element of addresses, i.e. the main address.';
207
+ COMMENT ON COLUMN mv_ded_building_search.ean IS
208
+ 'Distinct EAN identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''ean'').';
209
+ COMMENT ON COLUMN mv_ded_building_search.eic IS
210
+ 'Distinct EIC identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''eic'').';
211
+ COMMENT ON COLUMN mv_ded_building_search.om IS
212
+ 'Distinct OM identifiers of the building consumption points (v_enapo_building_consumption_points, id_type = ''om'').';
213
+ COMMENT ON COLUMN mv_ded_building_search.active_points_count IS
214
+ 'Number of consumption points of the building flagged is_active in v_enapo_building_consumption_points.';
215
+ COMMENT ON COLUMN mv_ded_building_search.has_building_record IS
216
+ 'False when the GID reached the index only through enapo_gid_mapping or Porsenna and has no eno_budova record.';
217
+ COMMENT ON COLUMN mv_ded_building_search.name_norm IS
218
+ 'lower(public.unaccent(nazev || '' '' || oznaceni)); the trigram column matched against the equally normalised query.';
219
+ COMMENT ON COLUMN mv_ded_building_search.address_norm IS
220
+ 'lower(public.unaccent(...)) over all addresses joined by a space; the trigram column for address matching.';
221
+ COMMENT ON COLUMN mv_ded_building_search.search_document IS
222
+ 'Weighted tsvector: A = nazev + oznaceni + evidenční jednotka name, B = main address, C = secondary addresses, D = EAN/EIC/OM + gid + evidenční jednotka code.';
223
+ COMMENT ON COLUMN mv_ded_building_search.geom IS
224
+ 'eno_geometrie.zakres polygons of the GID collected into one MultiPolygon and transformed to EPSG:4326 by f_ded_safe_geom; NULL when no polygon is parsable.';
225
+ COMMENT ON COLUMN mv_ded_building_search.odbor_id IS
226
+ 'Department managing the building: the evidenční jednotka''s head unit (kod_maj_evidencni_jednotka_hl), falling back to the evidenční jednotka itself when it has no head.';
227
+
228
+ CREATE UNIQUE INDEX mv_ded_building_search_gid_uidx ON mv_ded_building_search (gid);
229
+
230
+ CREATE INDEX mv_ded_building_search_document_gin ON mv_ded_building_search USING gin (search_document);
231
+
232
+ CREATE INDEX mv_ded_building_search_name_trgm ON mv_ded_building_search USING gist (name_norm public.gist_trgm_ops);
233
+ CREATE INDEX mv_ded_building_search_address_trgm ON mv_ded_building_search USING gist (address_norm public.gist_trgm_ops);
234
+
235
+ CREATE INDEX mv_ded_building_search_ean_gin ON mv_ded_building_search USING gin (ean);
236
+ CREATE INDEX mv_ded_building_search_eic_gin ON mv_ded_building_search USING gin (eic);
237
+ CREATE INDEX mv_ded_building_search_om_gin ON mv_ded_building_search USING gin (om);
238
+
239
+ -- Supports "distinct odbor for the filter" queries directly against the search index.
240
+ CREATE INDEX mv_ded_building_search_odbor_nazev_idx ON mv_ded_building_search (odbor_nazev);
@@ -17,6 +17,10 @@ export declare class DedBuildingSearchViewModel extends Model<IDedBuildingSearch
17
17
  ej_kod: string | null;
18
18
  ej_nazev: string | null;
19
19
  ej_typ: string | null;
20
+ odbor_id: number | null;
21
+ odbor_kod: string | null;
22
+ odbor_nazev: string | null;
23
+ odbor_typ: string | null;
20
24
  address_main: string | null;
21
25
  addresses: string[];
22
26
  ean: string[];
@@ -25,6 +25,10 @@ DedBuildingSearchViewModel.attributeModel = {
25
25
  ej_kod: sequelize_1.DataTypes.TEXT,
26
26
  ej_nazev: sequelize_1.DataTypes.TEXT,
27
27
  ej_typ: sequelize_1.DataTypes.TEXT,
28
+ odbor_id: sequelize_1.DataTypes.INTEGER,
29
+ odbor_kod: sequelize_1.DataTypes.TEXT,
30
+ odbor_nazev: sequelize_1.DataTypes.TEXT,
31
+ odbor_typ: sequelize_1.DataTypes.TEXT,
28
32
  address_main: sequelize_1.DataTypes.TEXT,
29
33
  addresses: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.TEXT),
30
34
  ean: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.TEXT),
@@ -1 +1 @@
1
- {"version":3,"file":"DedBuildingSearchViewModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/DedBuildingSearchViewModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAGxF;;;;;;GAMG;AACH,MAAa,0BAA2B,SAAQ,iBAA6B;;AAA7E,gEA0CC;AAzCiB,oCAAS,GAAG,wBAAwB,CAAC;AACrC,oCAAS,GAAG,gCAAgC,CAAC;AAmB7C,yCAAc,GAAwE;IAChG,GAAG,EAAE;QACD,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,YAAY,EAAE,qBAAS,CAAC,IAAI;IAC5B,SAAS,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACpC,GAAG,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACpC,EAAE,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACnC,mBAAmB,EAAE,qBAAS,CAAC,MAAM;IACrC,mBAAmB,EAAE,qBAAS,CAAC,OAAO;IACtC,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,YAAY,EAAE,qBAAS,CAAC,IAAI;CAC/B,CAAC"}
1
+ {"version":3,"file":"DedBuildingSearchViewModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/DedBuildingSearchViewModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAGxF;;;;;;GAMG;AACH,MAAa,0BAA2B,SAAQ,iBAA6B;;AAA7E,gEAkDC;AAjDiB,oCAAS,GAAG,wBAAwB,CAAC;AACrC,oCAAS,GAAG,gCAAgC,CAAC;AAuB7C,yCAAc,GAAwE;IAChG,GAAG,EAAE;QACD,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,QAAQ,EAAE,qBAAS,CAAC,OAAO;IAC3B,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,YAAY,EAAE,qBAAS,CAAC,IAAI;IAC5B,SAAS,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACpC,GAAG,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACpC,EAAE,EAAE,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,IAAI,CAAC;IACnC,mBAAmB,EAAE,qBAAS,CAAC,MAAM;IACrC,mBAAmB,EAAE,qBAAS,CAAC,OAAO;IACtC,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,YAAY,EAAE,qBAAS,CAAC,IAAI;CAC/B,CAAC"}
@@ -45,5 +45,9 @@ export declare class EnoBuildingDetailViewModel extends Model<IEnoBuildingDetail
45
45
  spu_nazev: string | null;
46
46
  spu_ic: string | null;
47
47
  spu_dic: string | null;
48
+ odbor_id: number | null;
49
+ odbor_kod: string | null;
50
+ odbor_nazev: string | null;
51
+ odbor_typ: string | null;
48
52
  static attributeModel: ModelAttributes<EnoBuildingDetailViewModel, IEnoBuildingDetailView>;
49
53
  }
@@ -53,5 +53,9 @@ EnoBuildingDetailViewModel.attributeModel = {
53
53
  spu_nazev: sequelize_1.DataTypes.TEXT,
54
54
  spu_ic: sequelize_1.DataTypes.TEXT,
55
55
  spu_dic: sequelize_1.DataTypes.TEXT,
56
+ odbor_id: sequelize_1.DataTypes.INTEGER,
57
+ odbor_kod: sequelize_1.DataTypes.TEXT,
58
+ odbor_nazev: sequelize_1.DataTypes.TEXT,
59
+ odbor_typ: sequelize_1.DataTypes.TEXT,
56
60
  };
57
61
  //# sourceMappingURL=EnoBuildingDetailViewModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnoBuildingDetailViewModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/EnoBuildingDetailViewModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAGxF,MAAa,0BAA2B,SAAQ,iBAA6B;;AAA7E,gEA8FC;AA7FiB,oCAAS,GAAG,yBAAyB,CAAC;AACtC,oCAAS,GAAG,gCAAgC,CAAC;AA6C7C,yCAAc,GAAwE;IAChG,GAAG,EAAE;QACD,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,gBAAgB,EAAE,qBAAS,CAAC,IAAI;IAChC,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,mBAAmB,EAAE,qBAAS,CAAC,IAAI;IACnC,0BAA0B,EAAE,qBAAS,CAAC,IAAI;IAC1C,qBAAqB,EAAE,qBAAS,CAAC,OAAO;IACxC,yBAAyB,EAAE,qBAAS,CAAC,OAAO;IAC5C,2BAA2B,EAAE,qBAAS,CAAC,OAAO;IAC9C,gBAAgB,EAAE,qBAAS,CAAC,OAAO;IACnC,kBAAkB,EAAE,qBAAS,CAAC,OAAO;IACrC,SAAS,EAAE,qBAAS,CAAC,OAAO;IAC5B,kBAAkB,EAAE,qBAAS,CAAC,OAAO;IACrC,oBAAoB,EAAE,qBAAS,CAAC,OAAO;IACvC,oBAAoB,EAAE,qBAAS,CAAC,OAAO;IACvC,cAAc,EAAE,qBAAS,CAAC,OAAO;IACjC,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,IAAI,EAAE,qBAAS,CAAC,OAAO;IACvB,OAAO,EAAE,qBAAS,CAAC,MAAM;IACzB,SAAS,EAAE,qBAAS,CAAC,OAAO;IAC5B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,MAAM,EAAE,qBAAS,CAAC,OAAO;IACzB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,MAAM,EAAE,qBAAS,CAAC,OAAO;IACzB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,OAAO,EAAE,qBAAS,CAAC,IAAI;CAC1B,CAAC"}
1
+ {"version":3,"file":"EnoBuildingDetailViewModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/EnoBuildingDetailViewModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAGxF,MAAa,0BAA2B,SAAQ,iBAA6B;;AAA7E,gEAsGC;AArGiB,oCAAS,GAAG,yBAAyB,CAAC;AACtC,oCAAS,GAAG,gCAAgC,CAAC;AAiD7C,yCAAc,GAAwE;IAChG,GAAG,EAAE;QACD,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,KAAK,EAAE,qBAAS,CAAC,IAAI;IACrB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,gBAAgB,EAAE,qBAAS,CAAC,IAAI;IAChC,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,mBAAmB,EAAE,qBAAS,CAAC,IAAI;IACnC,0BAA0B,EAAE,qBAAS,CAAC,IAAI;IAC1C,qBAAqB,EAAE,qBAAS,CAAC,OAAO;IACxC,yBAAyB,EAAE,qBAAS,CAAC,OAAO;IAC5C,2BAA2B,EAAE,qBAAS,CAAC,OAAO;IAC9C,gBAAgB,EAAE,qBAAS,CAAC,OAAO;IACnC,kBAAkB,EAAE,qBAAS,CAAC,OAAO;IACrC,SAAS,EAAE,qBAAS,CAAC,OAAO;IAC5B,kBAAkB,EAAE,qBAAS,CAAC,OAAO;IACrC,oBAAoB,EAAE,qBAAS,CAAC,OAAO;IACvC,oBAAoB,EAAE,qBAAS,CAAC,OAAO;IACvC,cAAc,EAAE,qBAAS,CAAC,OAAO;IACjC,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,IAAI,EAAE,qBAAS,CAAC,OAAO;IACvB,OAAO,EAAE,qBAAS,CAAC,MAAM;IACzB,SAAS,EAAE,qBAAS,CAAC,OAAO;IAC5B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,KAAK,EAAE,qBAAS,CAAC,OAAO;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,QAAQ,EAAE,qBAAS,CAAC,IAAI;IACxB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,MAAM,EAAE,qBAAS,CAAC,OAAO;IACzB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,MAAM,EAAE,qBAAS,CAAC,OAAO;IACzB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,MAAM,EAAE,qBAAS,CAAC,IAAI;IACtB,OAAO,EAAE,qBAAS,CAAC,IAAI;IACvB,QAAQ,EAAE,qBAAS,CAAC,OAAO;IAC3B,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,WAAW,EAAE,qBAAS,CAAC,IAAI;IAC3B,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC5B,CAAC"}
@@ -12,6 +12,10 @@ export interface IDedBuildingSearchView {
12
12
  ej_kod: string | null;
13
13
  ej_nazev: string | null;
14
14
  ej_typ: string | null;
15
+ odbor_id: number | null;
16
+ odbor_kod: string | null;
17
+ odbor_nazev: string | null;
18
+ odbor_typ: string | null;
15
19
  address_main: string | null;
16
20
  addresses: string[];
17
21
  ean: string[];
@@ -41,4 +41,8 @@ export interface IEnoBuildingDetailView {
41
41
  spu_nazev: string | null;
42
42
  spu_ic: string | null;
43
43
  spu_dic: string | null;
44
+ odbor_id: number | null;
45
+ odbor_kod: string | null;
46
+ odbor_nazev: string | null;
47
+ odbor_typ: string | null;
44
48
  }
@@ -84,6 +84,10 @@ relevance AS (
84
84
  s.ej_kod,
85
85
  s.ej_nazev,
86
86
  s.ej_typ,
87
+ s.odbor_id,
88
+ s.odbor_kod,
89
+ s.odbor_nazev,
90
+ s.odbor_typ,
87
91
  s.address_main,
88
92
  s.addresses,
89
93
  s.ean,
@@ -126,6 +130,10 @@ scored AS (
126
130
  r.ej_kod,
127
131
  r.ej_nazev,
128
132
  r.ej_typ,
133
+ r.odbor_id,
134
+ r.odbor_kod,
135
+ r.odbor_nazev,
136
+ r.odbor_typ,
129
137
  r.address_main,
130
138
  r.addresses,
131
139
  r.ean,
@@ -155,7 +163,8 @@ scored AS (
155
163
  ),
156
164
  page AS (
157
165
  SELECT
158
- gid, nazev, oznaceni, ej_id, ej_kod, ej_nazev, ej_typ, address_main, addresses, ean, eic, om,
166
+ gid, nazev, oznaceni, ej_id, ej_kod, ej_nazev, ej_typ, odbor_id, odbor_kod, odbor_nazev, odbor_typ,
167
+ address_main, addresses, ean, eic, om,
159
168
  active_points_count, has_building_record, name_norm, address_norm,
160
169
  is_exact, matched_by, matched_value, score, geom
161
170
  FROM scored
@@ -167,7 +176,8 @@ page AS (
167
176
  LIMIT $limit
168
177
  )
169
178
  SELECT
170
- gid, nazev, oznaceni, ej_id, ej_kod, ej_nazev, ej_typ, address_main, addresses, ean, eic, om,
179
+ gid, nazev, oznaceni, ej_id, ej_kod, ej_nazev, ej_typ, odbor_id, odbor_kod, odbor_nazev, odbor_typ,
180
+ address_main, addresses, ean, eic, om,
171
181
  active_points_count, has_building_record, name_norm, address_norm,
172
182
  is_exact, matched_by, matched_value, score,
173
183
  public.ST_AsGeoJSON(geom)::json AS geometry,
@@ -1 +1 @@
1
- {"version":3,"file":"DedBuildingSearchRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/DedBuildingSearchRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DedBuildingSearchRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/DedBuildingSearchRepository.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export interface IDedBuildingSearchResult {
20
20
  * as on the building detail endpoint so a client can reuse one type across both.
21
21
  */
22
22
  registration_unit: IEnoRegistrationUnit | null;
23
+ department: IEnoRegistrationUnit | null;
23
24
  /** Main address of the building (eno_adresa.hlavni), null when the building has no address. */
24
25
  address: string | null;
25
26
  /** Every distinct address of the building, main one first. */
@@ -127,7 +127,7 @@ export interface IEnoBuildingAddressResponse {
127
127
  hlavni: boolean | null;
128
128
  poradi: number;
129
129
  }
130
- export type TEnoBuildingPhysical = Omit<IEnoBuildingDetailView, "gid" | "ej_id" | "ej_kod" | "ej_nazev" | "ej_typ" | "spm_id" | "spm_kod" | "spm_nazev" | "spm_ic" | "spm_dic" | "spu_id" | "spu_kod" | "spu_nazev" | "spu_ic" | "spu_dic">;
130
+ export type TEnoBuildingPhysical = Omit<IEnoBuildingDetailView, "gid" | "ej_id" | "ej_kod" | "ej_nazev" | "ej_typ" | "spm_id" | "spm_kod" | "spm_nazev" | "spm_ic" | "spm_dic" | "spu_id" | "spu_kod" | "spu_nazev" | "spu_ic" | "spu_dic" | "odbor_id" | "odbor_kod" | "odbor_nazev" | "odbor_typ">;
131
131
  export interface IEnoManager {
132
132
  id: number | null;
133
133
  kod: string | null;
@@ -137,6 +137,7 @@ export interface IEnoManager {
137
137
  }
138
138
  export interface IEnoBuildingProperty {
139
139
  registration_unit: IEnoRegistrationUnit | null;
140
+ department: IEnoRegistrationUnit | null;
140
141
  managers: {
141
142
  mandate: IEnoManager | null;
142
143
  accounting_unit: IEnoManager | null;
@@ -30,6 +30,9 @@ let DedBuildingSearchTransformation = class DedBuildingSearchTransformation exte
30
30
  registration_unit: element.ej_id === null
31
31
  ? null
32
32
  : { id: element.ej_id, kod: element.ej_kod, nazev: element.ej_nazev, typ: element.ej_typ },
33
+ department: element.odbor_id === null
34
+ ? null
35
+ : { id: element.odbor_id, kod: element.odbor_kod, nazev: element.odbor_nazev, typ: element.odbor_typ },
33
36
  address: element.address_main,
34
37
  addresses: element.addresses,
35
38
  matched_by: element.matched_by,
@@ -1 +1 @@
1
- {"version":3,"file":"DedBuildingSearchTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/DedBuildingSearchTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAEA,6GAA0G;AAC1G,iEAAgE;AAEhE,2FAA2F;AAC3F,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC;;;GAGG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,+CAAuE;IAArH;;QACI,SAAI,GAAW,iCAAiC,CAAC;QAE9C,sBAAiB,GAAG,CAAC,OAA8B,EAA4B,EAAE;YACvF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;YAEnF,OAAO;gBACH,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,wFAAwF;gBACxF,wDAAwD;gBACxD,iBAAiB,EACb,OAAO,CAAC,KAAK,KAAK,IAAI;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE;gBAClG,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE;oBACT,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,EAAE,EAAE,OAAO,CAAC,EAAE;iBACjB;gBACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,YAAsB,EAAE,GAAG,EAAE,OAAO,CAAC,YAAsB,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC3G,eAAe,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;gBACnE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;aACnD,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;AAlCY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAkC3C"}
1
+ {"version":3,"file":"DedBuildingSearchTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/DedBuildingSearchTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAEA,6GAA0G;AAC1G,iEAAgE;AAEhE,2FAA2F;AAC3F,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC;;;GAGG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,+CAAuE;IAArH;;QACI,SAAI,GAAW,iCAAiC,CAAC;QAE9C,sBAAiB,GAAG,CAAC,OAA8B,EAA4B,EAAE;YACvF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;YAEnF,OAAO;gBACH,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,wFAAwF;gBACxF,wDAAwD;gBACxD,iBAAiB,EACb,OAAO,CAAC,KAAK,KAAK,IAAI;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE;gBAClG,UAAU,EACN,OAAO,CAAC,QAAQ,KAAK,IAAI;oBACrB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE;gBAC9G,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE;oBACT,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,EAAE,EAAE,OAAO,CAAC,EAAE;iBACjB;gBACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,YAAsB,EAAE,GAAG,EAAE,OAAO,CAAC,YAAsB,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC3G,eAAe,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;gBACnE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;aACnD,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;AAtCY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAsC3C"}
@@ -13,6 +13,7 @@ export declare class EnoBuildingDetailTransformation extends AbstractTransformat
13
13
  private extractBuilding;
14
14
  private transformProperty;
15
15
  private buildRegistrationUnit;
16
+ private buildDepartment;
16
17
  private buildManager;
17
18
  private transformPoint;
18
19
  private buildSharedWith;
@@ -101,17 +101,23 @@ let EnoBuildingDetailTransformation = class EnoBuildingDetailTransformation exte
101
101
  "spu_nazev",
102
102
  "spu_ic",
103
103
  "spu_dic",
104
+ "odbor_id",
105
+ "odbor_kod",
106
+ "odbor_nazev",
107
+ "odbor_typ",
104
108
  ]);
105
109
  };
106
110
  this.transformProperty = (building) => {
107
111
  const registrationUnit = this.buildRegistrationUnit(building);
112
+ const department = this.buildDepartment(building);
108
113
  const mandate = this.buildManager(building, "spm_");
109
114
  const accountingUnit = this.buildManager(building, "spu_");
110
- if (registrationUnit === null && mandate === null && accountingUnit === null) {
115
+ if (registrationUnit === null && department === null && mandate === null && accountingUnit === null) {
111
116
  return null;
112
117
  }
113
118
  return {
114
119
  registration_unit: registrationUnit,
120
+ department,
115
121
  managers: {
116
122
  mandate,
117
123
  accounting_unit: accountingUnit,
@@ -122,6 +128,10 @@ let EnoBuildingDetailTransformation = class EnoBuildingDetailTransformation exte
122
128
  const unit = (0, objectMappers_1.stripPrefix)(building, "ej_");
123
129
  return unit.id === null ? null : unit;
124
130
  };
131
+ this.buildDepartment = (building) => {
132
+ const unit = (0, objectMappers_1.stripPrefix)(building, "odbor_");
133
+ return unit.id === null ? null : unit;
134
+ };
125
135
  this.buildManager = (building, prefix) => {
126
136
  const manager = (0, objectMappers_1.stripPrefix)(building, prefix);
127
137
  return manager.id === null ? null : manager;
@@ -1 +1 @@
1
- {"version":3,"file":"EnoBuildingDetailTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/EnoBuildingDetailTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4DAAkE;AAoBlE,mFAAkG;AAClG,iEAAgF;AAGhF,6GAA0G;AAC1G,iEAAgE;AAGzD,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,+CAGpD;IAHM;;QAII,SAAI,GAAW,iCAAiC,CAAC;QAE9C,sBAAiB,GAAG,CAAC,OAAoC,EAA8B,EAAE;YAC/F,OAAO;gBACH,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC/B,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;gBAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACnF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrF,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC3C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB,CAAC,CAAC;gBACH,iBAAiB,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;gBAC1D,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;gBAC9D,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtF,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;aACnD,CAAC;QACN,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,SAAsC,EAAmB,EAAE;YACvF,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAExH,OAAO;gBACH,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM;gBACnC,qBAAqB,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;gBAC/F,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5C,cAAc,EAAE,MAAM,CAAC,eAAe;oBACtC,IAAI,EAAE,MAAM,CAAC,QAAQ;oBACrB,eAAe,EAAE,MAAM,CAAC,QAAQ;oBAChC,SAAS,EAAE,MAAM,CAAC,MAAM;oBACxB,YAAY,EAAE,MAAM,CAAC,UAAU;oBAC/B,cAAc,EAAE,MAAM,CAAC,uBAAuB;oBAC9C,eAAe,EAAE,MAAM,CAAC,SAAS;iBACpC,CAAC,CAAC;aACN,CAAC;QACN,CAAC,CAAC;QAEM,gBAAW,GAAG,CAAC,SAAsC,EAAiB,EAAE,CAC5E,SAAS,CAAC,QAAQ,EAAE,KAAK;YACzB,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,aAAa;YACxF,IAAI,CAAC;QAED,2BAAsB,GAAG,CAAC,SAAsC,EAAiB,EAAE;YACvF,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAChF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC,KAAK,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,IAAI,CAAC,cAAc,CACtB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,sBAAsB,EAC7B,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,iBAAiB,CAC3B,CAAC;QACN,CAAC,CAAC;QAEM,gCAA2B,GAAG,CAAC,SAAsC,EAA0B,EAAE;YACrG,MAAM,WAAW,GAAG,CAAC,SAAyB,EAA2B,EAAE,CACvE,qDAAyB,CAAC,KAAK,CAC3B,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,EACzE,SAAS,CAAC,aAAa,CAC1B,CAAC;YAEN,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAEnC,OAAO;gBACH,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,UAAU;gBAC/C,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,QAAQ;gBAC3C,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM;gBACtC,qBAAqB,EAAE,qDAAyB,CAAC,mBAAmB,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;gBACjH,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBAClD,WAAW;gBACX,GAAG;gBACH,IAAI;gBACJ,KAAK;aACR,CAAC;QACN,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,SAAsC,EAAW,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzG,sBAAiB,GAAG,CACxB,KAA+B,EAC/B,SAAsC,EACf,EAAE,CACzB,qDAAyB,CAAC,KAAK,CAC3B,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,EAClH,SAAS,CAAC,aAAa,CAC1B,CAAC;QAEE,oBAAe,GAAG,CAAC,QAAgC,EAAwB,EAAE;YACjF,OAAO,IAAA,wBAAQ,EAAC,QAAQ,EAAE;gBACtB,KAAK;gBACL,OAAO;gBACP,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,WAAW;gBACX,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,WAAW;gBACX,QAAQ;gBACR,SAAS;aACZ,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,QAAgC,EAA+B,EAAE;YAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE3D,IAAI,gBAAgB,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO;gBACH,iBAAiB,EAAE,gBAAgB;gBACnC,QAAQ,EAAE;oBACN,OAAO;oBACP,eAAe,EAAE,cAAc;iBAClC;aACJ,CAAC;QACN,CAAC,CAAC;QAEM,0BAAqB,GAAG,CAAC,QAAgC,EAA+B,EAAE;YAC9F,MAAM,IAAI,GAAG,IAAA,2BAAW,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,QAAgC,EAAE,MAAuB,EAAsB,EAAE;YACrG,MAAM,OAAO,GAAG,IAAA,2BAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,CAAC,CAAC;QAEM,mBAAc,GAAG,CACrB,KAA+B,EAC/B,SAAsC,EACV,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAEzD,OAAO;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;gBACnD,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACnC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClH,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChG,CAAC;QACN,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,KAA+B,EAAE,SAAsC,EAAwB,EAAE,CACxH,SAAS,CAAC,YAAY;aACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;aACtD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3D,yBAAoB,GAAG,CAC3B,KAA+B,EAC/B,QAAkC,EAClC,OAAgC,EACZ,EAAE;YACtB,OAAO;gBACH,QAAQ,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,2BAAW,EAAC,KAAK,EAAE,KAAK,CAAC;gBACnE,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAC1C,mBAAmB,EAAE,OAAO;aAC/B,CAAC;QACN,CAAC,CAAC;QAEM,iBAAY,GAAG,CACnB,KAA+B,EAC/B,SAAsC,EACtC,QAAkC,EAClC,OAAgC,EACpB,EAAE;YACd,OAAO;gBACH,mBAAmB,EAAE,OAAO;gBAC5B,YAAY,EACR,KAAK,CAAC,KAAK,KAAK,IAAI;oBAChB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC;wBACI,OAAO,EAAE,IAAA,2BAAW,EAAC,KAAK,EAAE,KAAK,CAAC;wBAClC,YAAY,EAAE,IAAA,wBAAQ,EAAC,IAAA,2BAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBAClE,OAAO,EAAE,SAAS,CAAC,mBAAmB;6BACjC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC;6BACjG,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wBAAQ,EAAC,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;wBAClE,MAAM,EAAE,SAAS,CAAC,kBAAkB;6BAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC;6BAC9F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,wBAAQ,EAAC,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;qBAClF;gBACX,UAAU,EACN,KAAK,CAAC,KAAK,KAAK,IAAI;oBAChB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC;wBACI,OAAO,EAAE,IAAA,2BAAW,EAAC,KAAK,EAAE,KAAK,CAAC;wBAClC,YAAY,EAAE,IAAA,wBAAQ,EAAC,IAAA,2BAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBAClE,OAAO,EAAE,SAAS,CAAC,iBAAiB;6BAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC;6BACjG,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wBAAQ,EAAC,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;wBAClE,MAAM,EAAE,SAAS,CAAC,gBAAgB;6BAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC;6BAC9F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,wBAAQ,EAAC,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;qBAClF;gBACX,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;aAC7C,CAAC;QACN,CAAC,CAAC;QAEM,uBAAkB,GAAG,CACzB,KAA+B,EAC/B,SAAsC,EACd,EAAE;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CACzC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,CACrH,CAAC;YACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO;gBACH,MAAM,EAAE;oBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;oBAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACxB;gBACD,WAAW,EAAE,SAAS,CAAC,eAAe;qBACjC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC;qBACtE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,WAAW,EAAE,SAAS,CAAC,WAAW;iBACrC,CAAC,CAAC;aACV,CAAC;QACN,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAAC,SAAsC,EAA+B,EAAE;YACxG,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,OAAO,GAA2B,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO;gBACH,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,OAAO,EAAE,IAAI,CAAC,cAAc,CACxB,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,qBAAqB,EAC7B,OAAO,CAAC,sBAAsB,EAC9B,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,iBAAiB,CAC5B;gBACD,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,MAAM;gBAC9E,OAAO,EAAE,mCAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;aAClE,CAAC;QACN,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA+B,EAAiB,EAAE;YACxE,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,UAAU,CAAC;YAC5B,CAAC;YAED,OAAO,CACH,IAAI,CAAC,cAAc,CACf,KAAK,CAAC,oBAAoB,EAC1B,KAAK,CAAC,0BAA0B,EAChC,KAAK,CAAC,8BAA8B,EACpC,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,uBAAuB,CAChC;gBACD,IAAI,CAAC,cAAc,CACf,KAAK,CAAC,oBAAoB,EAC1B,KAAK,CAAC,0BAA0B,EAChC,KAAK,CAAC,8BAA8B,EACpC,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,uBAAuB,CAChC,CACJ,CAAC;QACN,CAAC,CAAC;QAEM,mBAAc,GAAG,CACrB,MAAqB,EACrB,WAA0B,EAC1B,cAA6B,EAC7B,IAAmB,EACnB,QAAuB,EACV,EAAE;YACf,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1G,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjG,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YAE1F,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;AApUY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAoU3C"}
1
+ {"version":3,"file":"EnoBuildingDetailTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/EnoBuildingDetailTransformation.ts"],"names":[],"mappings":"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"}
@@ -1027,6 +1027,7 @@ Přehled endpointů a parametru `accessLimit`:
1027
1027
  - **Vážené řazení**: kombinace fulltextu (`tsvector` s vahami A/B/C/D — A název a označení, B hlavní adresa, C ostatní adresy, D identifikátory) a trigramové podobnosti; váhy jsou v [DedSearchWeights.ts](../src/output-gateway/constants/DedSearchWeights.ts) včetně zdůvodnění
1028
1028
  - **Deterministická množina kandidátů**: fulltextová i trigramová větev si své kandidáty nejdřív seřadí (`ts_rank_cd`, resp. `<->`) a teprve pak ořízne na `DED_SEARCH_FTS_CANDIDATES` / `DED_SEARCH_FUZZY_CANDIDATES`; bez toho by `LIMIT` vzal libovolné řádky v pořadí, v jakém je vrátil index, a stejný dotaz by po autovacuum mohl odpovědět jinak
1029
1029
  - **Evidenční jednotka**: `registration_unit` má záměrně stejný tvar (`id` / `kod` / `nazev` / `typ`) jako na detailu budovy, takže klient může pro obě odpovědi použít jeden typ
1030
+ - **Odbor**: `department` je hlavní evidenční jednotka (`kod_maj_evidencni_jednotka_hl`) registrační jednotky, nebo registrační jednotka samotná, pokud žádnou hlavní jednotku nemá; bez tohoto rozlišení by filtr "Organizační struktura - Odbor" postavený jen na `ej_nazev` nikdy nezobrazil odbor, který spravuje majetek jen přes podřízenou evidenční jednotku (p0261#57)
1030
1031
  - **Projekce PostGIS až na výsledné stránce**: `ST_AsGeoJSON`, bbox a centroid se počítají až po filtru a `LIMIT`; trigramová větev se navíc při přesné shodě vůbec nespustí, protože její řádky by finální `WHERE` stejně zahodil
1031
1032
  - **Diakritika**: dotaz i indexované sloupce se normalizují přes `lower(public.unaccent(...))`, takže hledání bez diakritiky funguje běžně; stejný výraz musí zůstat v migraci i v [DedBuildingSearchRepository](../src/output-gateway/repositories/DedBuildingSearchRepository.ts), jinak by normalizované sloupce přestaly odpovídat hledanému textu
1032
1033
  - **Geometrie**: `geometry` (GeoJSON), `bbox` a `centroid` se počítají z PostGIS geometrie uložené v pohledu už v EPSG:4326 (zdroj `eno_geometrie` je v S-JTSK 5514); u budov bez použitelné geometrie jsou všechny tři `null` a `geometry_source` je `null`
@@ -1041,7 +1042,7 @@ Přehled endpointů a parametru `accessLimit`:
1041
1042
  - detail budovy (ENO) s odběrnými místy (OM) a technickými parametry pro DeD
1042
1043
  - přístup: bez `accessLimit` — endpoint čte výhradně tabulky ENAPO (`enapo_*`, `eno_*`), které nejsou vázané na organizace z domény OICT Energetika, takže se nefiltruje přes tabulku `access_limit`; parametr `accessLimit` (ani žádný jiný query parametr) endpoint nepřijímá a vrací pro něj 400
1043
1044
  - zdrojové tabulky a pohledy
1044
- - `v_enapo_building_detail` — pohled nad `eno_budova` (dedup přes `zdroj` pomocí `DISTINCT ON (gid)`)
1045
+ - `v_enapo_building_detail` — pohled nad `eno_budova` (dedup přes `zdroj` pomocí `DISTINCT ON (gid)`); kromě přímé evidenční jednotky (`ej_*`) resolvuje i její hlavní jednotku (`odbor_*`, `kod_maj_evidencni_jednotka_hl`), s fallbackem na evidenční jednotku samotnou, pokud žádnou hlavní nemá — viz `property.department` níže
1045
1046
  - `eno_adresa` — všechny adresy budovy (deduplikované podle `popis`)
1046
1047
  - `v_enapo_building_consumption_points` — pohled nad `enapo_gid_mapping` obohacený o:
1047
1048
  - `enapo_pre_metadata_history` — poslední měsíc metadat PRE (jen EAN / elektřina)
@@ -605,6 +605,13 @@ components:
605
605
  description: >-
606
606
  Evidenční jednotka (eno_ciselnik_evidencni_jednotka) resolved through eno_majetek;
607
607
  null when the building has no majetek record. Its name is part of the search vector.
608
+ department:
609
+ allOf:
610
+ - $ref: "#/components/schemas/EnergeticsEnoRegistrationUnit"
611
+ description: >-
612
+ Odbor spravující budovu: hlavní evidenční jednotka registrační jednotky
613
+ (kod_maj_evidencni_jednotka_hl), nebo registrační jednotka samotná, pokud žádnou
614
+ hlavní jednotku nemá.
608
615
  address:
609
616
  type: string
610
617
  nullable: true
@@ -697,6 +704,7 @@ components:
697
704
  - name
698
705
  - designation
699
706
  - registration_unit
707
+ - department
700
708
  - address
701
709
  - addresses
702
710
  - matched_by
@@ -876,6 +884,13 @@ components:
876
884
  allOf:
877
885
  - $ref: "#/components/schemas/EnergeticsEnoRegistrationUnit"
878
886
  description: Evidenční jednotka (eno_ciselnik_evidencni_jednotka).
887
+ department:
888
+ allOf:
889
+ - $ref: "#/components/schemas/EnergeticsEnoRegistrationUnit"
890
+ description: >-
891
+ Odbor spravující budovu: hlavní evidenční jednotka registrační jednotky
892
+ (kod_maj_evidencni_jednotka_hl), nebo registrační jednotka samotná, pokud
893
+ žádnou hlavní jednotku nemá (tedy pokud je sama odborem).
879
894
  managers:
880
895
  type: object
881
896
  description: Správci (eno_ciselnik_spravce) from the mandate and accounting-unit references.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/energetics",
3
- "version": "1.17.0",
3
+ "version": "1.17.1-rc.2897105503",
4
4
  "description": "Golemio Energetics Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -39,8 +39,8 @@
39
39
  "@apideck/portman": "1.33.0",
40
40
  "@commitlint/cli": "^11.0.0",
41
41
  "@commitlint/config-conventional": "^11.0.0",
42
- "@golemio/cli": "2.0.0",
43
- "@golemio/core": "4.0.1",
42
+ "@golemio/cli": "2.1.0",
43
+ "@golemio/core": "4.1.0",
44
44
  "@golemio/db-common": "1.2.3",
45
45
  "@golemio/eslint-config": "1.2.0",
46
46
  "@swc-node/register": "^1.11.1",