@golemio/parkings 1.5.4-dev.906790844 → 1.5.4-rc.925985656
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/01_sql_dump.sql +16 -16
- package/db/example/02_ztp_updated_recently.sql +1 -1
- package/db/example/03_tsk_measurements_for_legacy_endpoints.sql +25 -25
- package/db/migrations/postgresql/20230616140547-date-modified.js +53 -0
- package/db/migrations/postgresql/sqls/20230616140547-date-modified-down.sql +108 -0
- package/db/migrations/postgresql/sqls/20230616140547-date-modified-up.sql +144 -0
- package/dist/integration-engine/ParkingInterface.d.ts +2 -2
- package/dist/integration-engine/ParkingsWorker.js +2 -2
- package/dist/integration-engine/ParkingsWorker.js.map +1 -1
- package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.d.ts +1 -1
- package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js +2 -2
- package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/KoridParkingConfigTransformation.js +3 -4
- package/dist/integration-engine/transformations/KoridParkingConfigTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/KoridParkingDataTransformation.js +3 -4
- package/dist/integration-engine/transformations/KoridParkingDataTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/ParkingLotsTransformation.js +3 -3
- package/dist/integration-engine/transformations/ParkingLotsTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/TSKParkingTransformation.d.ts +2 -2
- package/dist/integration-engine/transformations/TSKParkingTransformation.js +1 -1
- package/dist/integration-engine/transformations/TSKParkingTransformation.js.map +1 -1
- package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js +1 -1
- package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js.map +1 -1
- package/dist/output-gateway/ParkingsRouter.js +2 -5
- package/dist/output-gateway/ParkingsRouter.js.map +1 -1
- package/dist/output-gateway/data-access/helpers/TskFeatureMapper.js +1 -1
- package/dist/output-gateway/data-access/helpers/TskFeatureMapper.js.map +1 -1
- package/dist/output-gateway/models/ParkingsMeasurementsModels.d.ts +2 -2
- package/dist/output-gateway/models/ParkingsMeasurementsModels.js +1 -1
- package/dist/output-gateway/models/ParkingsMeasurementsModels.js.map +1 -1
- package/dist/output-gateway/models/ParkingsModel.js +2 -2
- package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
- package/dist/output-gateway/models/interfaces/TskMeasurementsInterfaces.d.ts +2 -2
- package/dist/output-gateway/routers/TskParkingLotsLegacyRouter.js +2 -2
- package/dist/output-gateway/routers/TskParkingLotsLegacyRouter.js.map +1 -1
- package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js +1 -1
- package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js.map +1 -1
- package/dist/schema-definitions/datasources/ParkingsDtoSchema.js +1 -1
- package/dist/schema-definitions/datasources/ParkingsDtoSchema.js.map +1 -1
- package/dist/schema-definitions/datasources/interfaces/IParkingsMeasurementDto.d.ts +1 -1
- package/docs/postmanCollectionGenerated.json +1177 -0
- package/package.json +3 -4
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
INSERT INTO parkings (id, source, source_id, data_provider, name, category, date_modified, address, location, area_served, web_app_payment_url, total_spot_number, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, valid_from, valid_to, tariff_id, parking_type, zone_type, centroid) VALUES
|
|
2
|
-
('korid-10', 'korid', '10', 'www.korid.cz', 'Na Perštýně', 'park_and_ride',
|
|
3
|
-
('korid-20', 'korid', '20', 'www.korid.cz', 'Husova (u nemocnice)', 'park_and_ride',
|
|
4
|
-
('korid-21', 'korid', '21', 'www.korid.cz', 'Purkyňova ulice', 'park_and_ride',
|
|
5
|
-
('korid-22', 'korid', '22', 'www.korid.cz', '1. máje', 'park_and_ride',
|
|
6
|
-
('korid-54', 'korid', '54', 'www.korid.cz', 'Masarykova ulice', 'park_paid_private',
|
|
7
|
-
('korid-66', 'korid', '66', 'www.korid.cz', 'Bedřichov Maliník', 'park_paid_private',
|
|
2
|
+
('korid-10', 'korid', '10', 'www.korid.cz', 'Na Perštýně', 'park_and_ride', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.058477079866359 50.764621453945274, 15.058514693959768 50.76462152563487, 15.058554180179613 50.764621900783574, 15.058626283309321 50.7646226347964, 15.058701346853194 50.76462159520064, 15.058776737298384 50.764618026799006, 15.058812775811438 50.76461469133624, 15.058822912718657 50.76465695203623, 15.058783838664894 50.76466082677318, 15.058743117269795 50.76466323629539, 15.058704375227238 50.76466458542137, 15.05866541610514 50.76466515003736, 15.058626559240858 50.76466567766573, 15.058587617997263 50.76466539596825, 15.058513079923348 50.764664631419066, 15.05847584612631 50.76466436351429, 15.058477079866359 50.764621453945274, 15.058477079866359 50.764621453945274))'::geometry, NULL, NULL, 9, NULL, '2020-09-07 14:51:40.307', NULL, NULL, '2021-02-24 17:37:14.371', NULL, NULL, NULL, 'b184865e-5a5e-5465-abc1-4fab6bc56a77', 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
3
|
+
('korid-20', 'korid', '20', 'www.korid.cz', 'Husova (u nemocnice)', 'park_and_ride', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.062502659291217 50.770489928646725, 15.062502659291217 50.770489928646725, 15.062514877513413 50.770475464787815, 15.062581794635213 50.77049826073106, 15.062649860572028 50.77051945225214, 15.062721314704385 50.77053616989129, 15.062866130284114 50.77056691550288, 15.062858059655783 50.77058240811945, 15.062712703761884 50.77055201164475, 15.062639428783918 50.77053457887742, 15.062570095936087 50.770512962386164, 15.062502659291217 50.770489928646725), (15.063333627169191 50.77068339655547, 15.06334151399964 50.77066874944876, 15.063552868836394 50.77071451523553, 15.063544982051344 50.77072916234581, 15.063333627169191 50.77068339655547), (15.06402203793059 50.77082695501542, 15.064028816089055 50.77081205354126, 15.064389053210448 50.77087794685548, 15.064382275155646 50.770892848349554, 15.06402203793059 50.77082695501542))'::geometry, NULL, NULL, 13, NULL, '2020-09-07 14:51:40.308', NULL, NULL, '2021-02-24 17:37:14.372', NULL, NULL, NULL, 'b184865e-5a5e-5465-abc1-4fab6bc56a77', 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
4
|
+
('korid-21', 'korid', '21', 'www.korid.cz', 'Purkyňova ulice', 'park_and_ride', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.073535465794144 50.777867143328834, 15.074364650303988 50.77813579123175, 15.074351908646097 50.77815160179682, 15.073522723931404 50.77788295380698, 15.073535465794144 50.777867143328834), (15.074416914065177 50.77817503753822, 15.074429497702463 50.77815935612828, 15.074877094523854 50.77830375040025, 15.07486451099657 50.77831943185654, 15.074416914065177 50.77817503753822), (15.075650733190733 50.77868651870031, 15.075650733190733 50.77868651870031, 15.075564634987378 50.77861045467845, 15.07554201324507 50.77862087663137, 15.075499118355399 50.77858247914091, 15.075484187776214 50.77858944482163, 15.075439271486093 50.778550497382035, 15.075419840628033 50.77855937822567, 15.07537695602758 50.77852084116626, 15.075367120753475 50.778525311406675, 15.075303564462287 50.778468503035036, 15.075300595898385 50.77846615599911, 15.075300381548084 50.77846626713369, 15.075300234820142 50.77846634207723, 15.075281186802224 50.778474938792975, 15.075239435968914 50.77843771729444, 15.075290246614136 50.77841473660306, 15.075335124012991 50.778454153668214, 15.075354558422568 50.7784452488684, 15.075419494920078 50.77850296000166, 15.075429096512892 50.77849851290845, 15.075472261228347 50.778537033865646, 15.075491718741654 50.77852840732294, 15.075535754974565 50.77856669175267, 15.075550961185778 50.77856003875174, 15.075592711076746 50.778597264182665, 15.075594228650798 50.77859843531407, 15.075616936041953 50.77858819748631, 15.075701590126364 50.778663498184564, 15.075650733190733 50.77868651870031), (15.07560156777543 50.778786780162434, 15.075555472608372 50.77876012088723, 15.075653399037733 50.778692051930335, 15.075699494193103 50.77871871116814, 15.07560156777543 50.778786780162434))'::geometry, NULL, NULL, 36, NULL, '2020-09-07 14:51:40.308', NULL, NULL, '2021-02-24 17:37:14.372', NULL, NULL, NULL, NULL, 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
5
|
+
('korid-22', 'korid', '22', 'www.korid.cz', '1. máje', 'park_and_ride', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.048722595067447 50.7628457146645, 15.048722595067447 50.7628457146645, 15.048716367962248 50.762775507841255, 15.048714333981806 50.76275172992911, 15.048708229671679 50.7627273495386, 15.048702773889246 50.76270523464775, 15.04868944177133 50.762682678960275, 15.04867244079242 50.76266133636074, 15.04865023927992 50.76264190854471, 15.048649402627722 50.76264118626388, 15.048623574726843 50.762625199920016, 15.048596683892479 50.76261077980552, 15.04859384730661 50.76260985825769, 15.048561836071121 50.76259896923075, 15.0485601909124 50.76259868552474, 15.048489675092718 50.76258643560388, 15.048453440099811 50.76258008299823, 15.048471025844593 50.76253882873844, 15.048578026434075 50.76255720127448, 15.048594207710732 50.76256107058631, 15.048625684902126 50.76257199494989, 15.04866886409942 50.76259326854139, 15.048696211394889 50.76260996068015, 15.048704793973265 50.76261659348581, 15.048726266686511 50.76263471221044, 15.048732389247313 50.76264098464028, 15.048748953217547 50.762661821774046, 15.048752747631736 50.762666098660354, 15.048767166826684 50.76268976425888, 15.048768226638888 50.762692496329485, 15.048782164668745 50.76274633176619, 15.048789999980308 50.76284334276083, 15.048722595067447 50.7628457146645), (15.049380440528726 50.76344758984489, 15.048898232808483 50.763099770866226, 15.048918567269727 50.763088430051425, 15.04940077503638 50.76343624894975, 15.049380440528726 50.76344758984489), (15.050030797711324 50.76391444180497, 15.049437157489526 50.76348812537081, 15.049457464142574 50.76347675036433, 15.050051104402723 50.76390306669833, 15.050030797711324 50.76391444180497), (15.049543289349549 50.76375586697499, 15.04895132968074 50.76333211903317, 15.048971598131555 50.76332072886077, 15.049563557837509 50.76374447670289, 15.049543289349549 50.76375586697499), (15.049969473187774 50.764062225545175, 15.049647751202544 50.76383206153527, 15.049668054031324 50.76382064542361, 15.049989776036675 50.76405080937923, 15.049969473187774 50.764062225545175), (15.051079857038813 50.76466958394885, 15.050704013715515 50.76440055939813, 15.050724440719415 50.76438907978244, 15.05110028407871 50.76465810427945, 15.051079857038813 50.76466958394885))'::geometry, NULL, NULL, 59, NULL, '2020-09-07 14:51:40.308', NULL, NULL, '2021-02-24 17:37:14.373', NULL, NULL, NULL, 'f4de50d9-1f5f-5d76-81a6-e5e8a2aa6d44', 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
6
|
+
('korid-54', 'korid', '54', 'www.korid.cz', 'Masarykova ulice', 'park_paid_private', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.074568223409903 50.77590827454969, 15.074585370561389 50.77586811775529, 15.074947701396539 50.775930320848644, 15.07493055452721 50.7759704777025, 15.074568223409903 50.77590827454969))'::geometry, NULL, NULL, 10, NULL, '2020-09-07 14:51:40.308', NULL, NULL, '2021-02-24 17:37:14.383', NULL, NULL, NULL, NULL, 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
7
|
+
('korid-66', 'korid', '66', 'www.korid.cz', 'Bedřichov Maliník', 'park_paid_private', '2021-02-24T16:30:06.236Z', NULL, 'SRID=4326;POLYGON ((15.12984438981548 50.79081757392241, 15.12984438981548 50.79081757392241, 15.13037179413462 50.790730250342165, 15.130753864365996 50.79092958629554, 15.130713357525435 50.791100395437105, 15.130553614214087 50.79105491924561, 15.13047129608269 50.791119029561514, 15.12984438981548 50.79081757392241))'::geometry, NULL, NULL, 150, NULL, '2020-09-07 14:51:40.309', NULL, NULL, '2021-02-24 17:37:14.383', NULL, NULL, NULL, NULL, 'other', NULL, 'SRID=4326;POINT (15.05929990174349 50.77035456801465)'::geometry),
|
|
8
8
|
('tsk-p10-0101', 'tsk', 'P10-0101', 'www.tsk-praha.cz/opendata.iprpraha.cz', 'Vršovická', 'zone_mixed', NULL, NULL, 'SRID=4326;MULTIPOLYGON(((14.442026998000074 50.06601274800005,14.442419875000041 50.06614420200003,14.442591187000062 50.06619752600005,14.442808352000043 50.066260947000046,14.442850540000052 50.06627157200006,14.442861204000053 50.06627366200007,14.442861340000036 50.06627368800008,14.442865644000051 50.06626524500007,14.442870553000034 50.06625561700008,14.442858070000057 50.066253062000044,14.442822584000055 50.06624306500004,14.442603739000049 50.06618012200005,14.442432840000038 50.06612731600006,14.442041462000077 50.06599543900006,14.442026998000074 50.06601274800005)),((14.442957874000058 50.066294001000074,14.443108320000022 50.066323381000075,14.443235403000074 50.06634590400006,14.44334182800003 50.06635943900005,14.44340083000003 50.066364219000036,14.443499923000047 50.06637041700003,14.44373672000006 50.06637909300008,14.443896228000028 50.06638351700008,14.443977411000049 50.066381679000074,14.444057027000042 50.066378514000064,14.444135120000055 50.06637377200008,14.444216630000028 50.066366954000046,14.444371433000072 50.06635020500005,14.444604102000028 50.066319399000065,14.444930623000062 50.06627467900006,14.445063594000032 50.066256371000065,14.445058759000062 50.06623613200003,14.444923410000058 50.06625482000004,14.444599407000055 50.06629989900006,14.44436481100007 50.06633101400007,14.444210644000066 50.06634829200004,14.44413343900004 50.06635573600005,14.444053998000072 50.06635986900005,14.44397478600007 50.066362842000046,14.443897136000032 50.06636379400004,14.443819198000028 50.06636258700007,14.443739550000032 50.06636073800007,14.443582152000033 50.06635507800007,14.44350187300006 50.06635103200006,14.443404135000037 50.066345424000076,14.443346720000022 50.06634007700006,14.443241561000036 50.06632760700006,14.443117486000062 50.06630487900003,14.442966530000035 50.066276162000065,14.442870437000067 50.06625616000008,14.442865644000051 50.06626524500007,14.442861204000053 50.06627366200007,14.442861064000056 50.066273928000044,14.442957874000058 50.066294001000074)),((14.442023651000056 50.06601310500008,14.442038317000026 50.06599511500008,14.441514275000031 50.06581806600008,14.441501448000054 50.06583139900005,14.442023651000056 50.06601310500008)))'::geometry, NULL, 'https://ke-utc.appspot.com/static/onstreet.html?shortname=P10-0101', 49, NULL, '2022-05-26 22:32:48.384+00', NULL, NULL, '2022-05-26 22:32:48.384+00', NULL, '2020-06-26 20:47:07.213+00', '2999-12-31 22:59:59.999+00', 'bfcfc515-369f-5093-b779-7091c520edd3', 'on_street', 'zone_mixed', 'SRID=4326;POINT(14.443355698017905 50.066266757446506)'::geometry),
|
|
9
9
|
('tsk-p7-9080', 'tsk', 'P7-9080', 'www.tsk-praha.cz', NULL, 'zone_other', NULL, NULL, 'SRID=4326;POLYGON((14.4331297 50.0968683,14.4336875 50.0975736,14.4348569 50.0972503,14.4331297 50.0968683))'::geometry, NULL, 'https://ke-utc.appspot.com/static/onstreet.html?shortname=P7-9080', 0, NULL, '2022-05-06 04:01:03.981+02', NULL, NULL, '2022-05-26 04:01:22.951+02', NULL, '2018-08-01 02:00:00+02', '2999-12-31 01:00:00+01', '87ca4ca0-efbf-55d7-9091-7e5e4c99ff8b', 'on_street', 'zone_other', 'SRID=4326;POINT(14.433891366666666 50.09723073333333)'::geometry);
|
|
10
10
|
|
|
@@ -15,18 +15,18 @@ INSERT INTO parkings_location (id, source, source_id, data_provider, location, c
|
|
|
15
15
|
('c770a9e3-d49e-597e-90db-cb3d23d06b3d', 'tsk', 'P7-9080', 'www.tsk-praha.cz', 'SRID=4326;POLYGON((14.4331297 50.0968683,14.4336875 50.0975736,14.4348569 50.0972503,14.4331297 50.0968683))'::geometry, 'SRID=4326;POINT(14.433891366666666 50.09723073333333)'::geometry, '{"address_country":"Česko","address_formatted":"nábřeží Kapitána Jaroše, 17000 Hlavní město Praha Holešovice, Česko","address_locality":"Hlavní město Praha","address_region":"Holešovice","postal_code":"17000","street_address":"nábřeží Kapitána Jaroše"}', 0, NULL, '2022-05-26 22:33:14.925+00', NULL, NULL, '2022-05-26 22:33:14.925+00', NULL);
|
|
16
16
|
|
|
17
17
|
INSERT INTO parkings_measurements_part (source, source_id, available_spot_number, closed_spot_number, occupied_spot_number, total_spot_number, date_modified, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, parking_id) VALUES
|
|
18
|
-
('korid', '20', 5, 0, 8, 13,
|
|
19
|
-
('korid', '20', 5, 0, 8, 13,
|
|
20
|
-
('korid', '20', 5, 0, 8, 13,
|
|
21
|
-
('korid', '20', 4, 0, 9, 13,
|
|
22
|
-
('korid', '20', 5, 0, 8, 13,
|
|
23
|
-
('korid', '22', 5, 0, 8, 13,
|
|
24
|
-
('korid', '38', 14, 0, 18, 32,
|
|
18
|
+
('korid', '20', 5, 0, 8, 13, '2021-02-26T12:04:46.191Z', NULL, '2021-02-26 13:05:31.484', NULL, NULL, '2021-02-26 13:05:31.484', NULL, 'korid-20'),
|
|
19
|
+
('korid', '20', 5, 0, 8, 13, '2021-02-26T12:03:46.189Z', NULL, '2021-02-26 13:03:51.495', NULL, NULL, '2021-02-26 13:03:51.495', NULL, 'korid-20'),
|
|
20
|
+
('korid', '20', 5, 0, 8, 13, '2021-02-26T12:02:46.188Z', NULL, '2021-02-26 13:02:51.533', NULL, NULL, '2021-02-26 13:02:51.533', NULL, 'korid-20'),
|
|
21
|
+
('korid', '20', 4, 0, 9, 13, '2021-02-26T12:01:46.188Z', NULL, '2021-02-26 13:02:29.160', NULL, NULL, '2021-02-26 13:02:29.160', NULL, 'korid-20'),
|
|
22
|
+
('korid', '20', 5, 0, 8, 13, '2021-02-26T12:00:46.187Z', NULL, '2021-02-26 13:00:48.690', NULL, NULL, '2021-02-26 13:00:48.690', NULL, 'korid-20'),
|
|
23
|
+
('korid', '22', 5, 0, 8, 13, '2021-02-26T11:58:42.311Z', NULL, '2021-02-26 13:00:48.690', NULL, NULL, '2021-02-26 12:00:00.000', NULL, 'korid-20'),
|
|
24
|
+
('korid', '38', 14, 0, 18, 32, '2022-07-01T09:38:17.911Z', NULL, '2022-07-01 11:38:18.154+02', NULL, NULL, NOW() - INTERVAL '10 minutes', NULL, 'korid-38');
|
|
25
25
|
|
|
26
26
|
INSERT INTO parkings_measurements_actual ("source", source_id, available_spot_number, closed_spot_number, occupied_spot_number, total_spot_number, date_modified, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, parking_id) VALUES
|
|
27
|
-
('korid', '54', 4, 0, 9, 13,
|
|
28
|
-
('korid', '21', 6, 0, 12, 18,
|
|
29
|
-
('korid', '52', 20, 0, 82, 102,
|
|
27
|
+
('korid', '54', 4, 0, 9, 13, '2021-02-28T23:19:47.384Z', NULL, '2022-04-21 08:56:23.362', NULL, NULL, '2022-04-21 10:23:53.817', NULL, 'korid-54'),
|
|
28
|
+
('korid', '21', 6, 0, 12, 18, '2021-02-26T11:58:42.311Z', NULL, '2022-04-21 08:56:23.362', NULL, NULL, '2022-04-21 10:23:53.817', NULL, 'korid-21'),
|
|
29
|
+
('korid', '52', 20, 0, 82, 102, '2022-07-27T10:37:06.563Z', NULL, '2022-07-01 11:38:18.205+02', NULL, NULL, NOW() - INTERVAL '10 minutes', NULL, 'korid-52');
|
|
30
30
|
|
|
31
31
|
INSERT INTO parkings_tariffs (tariff_id, source, last_updated, payment_mode, payment_additional_description, free_of_charge, url_link_address, charge_band_name, accepts_payment_card, accepts_cash, accepts_mobile_payment, charge_currency, charge, charge_type, charge_order_index, charge_interval, max_iterations_of_charge, min_iterations_of_charge, start_time_of_period, end_time_of_period, allowed_vehicle_type, allowed_fuel_type, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by) VALUES
|
|
32
32
|
('b184865e-5a5e-5465-abc1-4fab6bc56a77', 'korid', '2020-10-12 15:19:21.000', '', 'Parkování Liberec', false, 'https://parking.liberec.cz/', 'A', true, true, NULL, 'CZK', 20, 'minimum', 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-03-08 18:31:37.355', NULL, NULL, '2021-03-08 18:31:37.355', NULL),
|
|
@@ -32,7 +32,7 @@ INSERT INTO parkings.parkings (
|
|
|
32
32
|
'opendata.iprpraha.cz',
|
|
33
33
|
'Parkoviště ZTP Na Chvalské tvrzi, Horní Počernice',
|
|
34
34
|
NULL,
|
|
35
|
-
|
|
35
|
+
'2022-07-25T03:00:00.124Z',
|
|
36
36
|
'{"address_country":"Česko","address_formatted":"Na Chvalské tvrzi, 19300 Hlavní město Praha Horní Počernice, Česko","address_locality":"Hlavní město Praha","address_region":"Horní Počernice","postal_code":"19300","street_address":"Na Chvalské tvrzi"}',
|
|
37
37
|
'0101000020E6100000001CC55DB0312D4060BA49795E0E4940',
|
|
38
38
|
NULL,
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
INSERT INTO parkings (id,"source",source_id,data_provider,name,category,date_modified,address,"location",area_served,web_app_payment_url,total_spot_number,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,tariff_id,valid_from,valid_to,parking_type,zone_type,centroid,android_app_payment_url,ios_app_payment_url) VALUES
|
|
2
|
-
('tsk-534015','tsk','534015','www.tsk-praha.cz','Depo Hostivař','park_and_ride',
|
|
2
|
+
('tsk-534015','tsk','534015','www.tsk-praha.cz','Depo Hostivař','park_and_ride','2023-01-29T04:55:44.000Z','{"address_country":"Česko","address_formatted":"Černokostelecká, 10000 Hlavní město Praha Strašnice, Česko","address_locality":"Hlavní město Praha","address_region":"Strašnice","postal_code":"10000","street_address":"Černokostelecká"}','SRID=4326;POINT (14.517897 50.07622)',NULL,'https://ke-utc.appspot.com/static/select_offstreet.html?shortname=122',104,NULL,'2022-07-20 12:00:03.379+01:00',NULL,NULL,'2023-01-29 06:00:03.097+01:00',NULL,NULL,NULL,NULL,'park_and_ride',NULL,'SRID=4326;POINT (14.517897 50.07622)',NULL,NULL);
|
|
3
3
|
|
|
4
4
|
INSERT INTO parkings_measurements_actual ("source",source_id,available_spot_number,closed_spot_number,occupied_spot_number,total_spot_number,date_modified,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,parking_id) VALUES
|
|
5
|
-
('tsk','534015',98,NULL,6,104,
|
|
5
|
+
('tsk','534015',98,NULL,6,104,'2023-01-29T09:45:04.000Z',NULL,'2022-07-20 11:25:00.411Z',NULL,NULL,'2023-01-29 10:50:01.539Z',NULL,'tsk-534015');
|
|
6
6
|
|
|
7
7
|
WITH init_values AS (
|
|
8
8
|
SELECT CAST(current_date - INTERVAL '14 days' + INTERVAL '8 hour' AS TIMESTAMPTZ) AT TIME ZONE 'Europe/Prague' AS start_datetime
|
|
9
9
|
)
|
|
10
10
|
INSERT INTO parkings_measurements_part ("source",source_id,available_spot_number,closed_spot_number,occupied_spot_number,total_spot_number,date_modified,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,parking_id) VALUES
|
|
11
|
-
('tsk','534015',99,NULL,5,104,(SELECT
|
|
12
|
-
('tsk','534015',99,NULL,5,104,(SELECT
|
|
13
|
-
('tsk','534015',99,NULL,5,104,(SELECT
|
|
14
|
-
('tsk','534015',92,NULL,12,104,(SELECT
|
|
15
|
-
('tsk','534015',92,NULL,12,104,(SELECT
|
|
16
|
-
('tsk','534015',92,NULL,12,104,(SELECT
|
|
17
|
-
('tsk','534015',36,NULL,68,104,(SELECT
|
|
18
|
-
('tsk','534015',36,NULL,68,104,(SELECT
|
|
19
|
-
('tsk','534015',29,NULL,75,104,(SELECT
|
|
20
|
-
('tsk','534015',29,NULL,75,104,(SELECT
|
|
21
|
-
('tsk','534015',29,NULL,75,104,(SELECT
|
|
22
|
-
('tsk','534015',33,NULL,71,104,(SELECT
|
|
23
|
-
('tsk','534015',33,NULL,71,104,(SELECT
|
|
24
|
-
('tsk','534015',32,NULL,72,104,(SELECT
|
|
25
|
-
('tsk','534015',26,NULL,78,104,(SELECT
|
|
26
|
-
('tsk','534015',27,NULL,77,104,(SELECT
|
|
27
|
-
('tsk','534015',28,NULL,76,104,(SELECT
|
|
28
|
-
('tsk','534015',38,NULL,66,104,(SELECT
|
|
29
|
-
('tsk','534015',39,NULL,65,104,(SELECT
|
|
30
|
-
('tsk','534015',40,NULL,64,104,(SELECT
|
|
31
|
-
('tsk','534015',94,NULL,10,104,(SELECT
|
|
32
|
-
('tsk','534015',94,NULL,10,104,(SELECT
|
|
33
|
-
('tsk','534015',95,NULL,9,104,(SELECT
|
|
11
|
+
('tsk','534015',99,NULL,5,104,(SELECT start_datetime + interval '2 minutes' FROM init_values),NULL,'2023-01-29 10:00:10.243+01:00',NULL,NULL,'2023-01-29 10:00:10.243+01:00',NULL,'tsk-534015'),
|
|
12
|
+
('tsk','534015',99,NULL,5,104,(SELECT start_datetime + interval '3 minutes' FROM init_values),NULL,'2023-01-29 09:55:00.780+01:00',NULL,NULL,'2023-01-29 09:55:00.780+01:00',NULL,'tsk-534015'),
|
|
13
|
+
('tsk','534015',99,NULL,5,104,(SELECT start_datetime + interval '4 minutes' FROM init_values),NULL,'2023-01-29 09:45:00.977+01:00',NULL,NULL,'2023-01-29 09:50:01.119+01:00',NULL,'tsk-534015'),
|
|
14
|
+
('tsk','534015',92,NULL,12,104,(SELECT start_datetime + interval '2 minutes' - interval '1 day' FROM init_values),NULL,'2023-01-28 10:00:04.518+01:00',NULL,NULL,'2023-01-28 10:00:04.518+01:00',NULL,'tsk-534015'),
|
|
15
|
+
('tsk','534015',92,NULL,12,104,(SELECT start_datetime + interval '3 minutes' - interval '1 day' FROM init_values),NULL,'2023-01-28 09:50:02.634+01:00',NULL,NULL,'2023-01-28 09:55:00.766+01:00',NULL,'tsk-534015'),
|
|
16
|
+
('tsk','534015',92,NULL,12,104,(SELECT start_datetime + interval '4 minutes' - interval '1 day' FROM init_values),NULL,'2023-01-28 09:45:01.050+01:00',NULL,NULL,'2023-01-28 09:45:01.050+01:00',NULL,'tsk-534015'),
|
|
17
|
+
('tsk','534015',36,NULL,68,104,(SELECT start_datetime + interval '2 minutes' - interval '2 day' FROM init_values),NULL,'2023-01-27 10:00:09.469+01:00',NULL,NULL,'2023-01-27 10:00:09.469+01:00',NULL,'tsk-534015'),
|
|
18
|
+
('tsk','534015',36,NULL,68,104,(SELECT start_datetime + interval '3 minutes' - interval '2 day' FROM init_values),NULL,'2023-01-27 09:45:01.020+01:00',NULL,NULL,'2023-01-27 09:45:01.020+01:00',NULL,'tsk-534015'),
|
|
19
|
+
('tsk','534015',29,NULL,75,104,(SELECT start_datetime + interval '2 minutes' - interval '3 day' FROM init_values),NULL,'2023-01-26 09:55:00.501+01:00',NULL,NULL,'2023-01-26 10:00:02.735+01:00',NULL,'tsk-534015'),
|
|
20
|
+
('tsk','534015',29,NULL,75,104,(SELECT start_datetime + interval '3 minutes' - interval '3 day' FROM init_values),NULL,'2023-01-26 09:50:02.400+01:00',NULL,NULL,'2023-01-26 09:50:02.400+01:00',NULL,'tsk-534015'),
|
|
21
|
+
('tsk','534015',29,NULL,75,104,(SELECT start_datetime + interval '4 minutes' - interval '3 day' FROM init_values),NULL,'2023-01-26 09:45:00.983+01:00',NULL,NULL,'2023-01-26 09:45:00.983+01:00',NULL,'tsk-534015'),
|
|
22
|
+
('tsk','534015',33,NULL,71,104,(SELECT start_datetime + interval '2 minutes' - interval '4 day' FROM init_values),NULL,'2023-01-25 10:00:03.830+01:00',NULL,NULL,'2023-01-25 10:05:00.756+01:00',NULL,'tsk-534015'),
|
|
23
|
+
('tsk','534015',33,NULL,71,104,(SELECT start_datetime + interval '3 minutes' - interval '4 day' FROM init_values),NULL,'2023-01-25 09:55:00.671+01:00',NULL,NULL,'2023-01-25 09:55:00.671+01:00',NULL,'tsk-534015'),
|
|
24
|
+
('tsk','534015',32,NULL,72,104,(SELECT start_datetime + interval '4 minutes' - interval '4 day' FROM init_values),NULL,'2023-01-25 09:50:01.571+01:00',NULL,NULL,'2023-01-25 09:50:01.571+01:00',NULL,'tsk-534015'),
|
|
25
|
+
('tsk','534015',26,NULL,78,104,(SELECT start_datetime + interval '2 minutes' - interval '5 day' FROM init_values),NULL,'2023-01-24 10:00:02.474+01:00',NULL,NULL,'2023-01-24 10:00:02.474+01:00',NULL,'tsk-534015'),
|
|
26
|
+
('tsk','534015',27,NULL,77,104,(SELECT start_datetime + interval '3 minutes' - interval '5 day' FROM init_values),NULL,'2023-01-24 09:55:00.766+01:00',NULL,NULL,'2023-01-24 09:55:00.766+01:00',NULL,'tsk-534015'),
|
|
27
|
+
('tsk','534015',28,NULL,76,104,(SELECT start_datetime + interval '4 minutes' - interval '5 day' FROM init_values),NULL,'2023-01-24 09:50:02.162+01:00',NULL,NULL,'2023-01-24 09:50:02.162+01:00',NULL,'tsk-534015'),
|
|
28
|
+
('tsk','534015',38,NULL,66,104,(SELECT start_datetime + interval '2 minutes' - interval '6 day' FROM init_values),NULL,'2023-01-23 10:00:01.951+01:00',NULL,NULL,'2023-01-23 10:00:01.951+01:00',NULL,'tsk-534015'),
|
|
29
|
+
('tsk','534015',39,NULL,65,104,(SELECT start_datetime + interval '3 minutes' - interval '6 day' FROM init_values),NULL,'2023-01-23 09:55:00.760+01:00',NULL,NULL,'2023-01-23 09:55:00.760+01:00',NULL,'tsk-534015'),
|
|
30
|
+
('tsk','534015',40,NULL,64,104,(SELECT start_datetime + interval '4 minutes' - interval '6 day' FROM init_values),NULL,'2023-01-23 09:50:07.824+01:00',NULL,NULL,'2023-01-23 09:50:07.824+01:00',NULL,'tsk-534015'),
|
|
31
|
+
('tsk','534015',94,NULL,10,104,(SELECT start_datetime + interval '2 minutes' - interval '7 day' FROM init_values),NULL,'2023-01-22 10:00:02.626+01:00',NULL,NULL,'2023-01-22 10:00:02.626+01:00',NULL,'tsk-534015'),
|
|
32
|
+
('tsk','534015',94,NULL,10,104,(SELECT start_datetime + interval '3 minutes' - interval '7 day' FROM init_values),NULL,'2023-01-22 09:55:00.691+01:00',NULL,NULL,'2023-01-22 09:55:00.691+01:00',NULL,'tsk-534015'),
|
|
33
|
+
('tsk','534015',95,NULL,9,104,(SELECT start_datetime + interval '4 minutes' - interval '7 day' FROM init_values),NULL,'2023-01-22 09:45:02.134+01:00',NULL,NULL,'2023-01-22 09:50:01.124+01:00',NULL,'tsk-534015');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
INSERT INTO common.citydistricts (geom,objectid,create_date,change_date,area,id,zip,district_name,kod_mo,kod_so,tid_tmmestckecasti_p,provider,id_provider,change_status,district_short_name,shape_length,shape_area,district_name_slug) VALUES
|
|
@@ -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', '20230616140547-date-modified-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', '20230616140547-date-modified-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,108 @@
|
|
|
1
|
+
-- date_modified timestamptz -> bigint
|
|
2
|
+
ALTER TABLE parkings ALTER COLUMN date_modified TYPE bigint USING extract(epoch FROM date_modified) * 1000;
|
|
3
|
+
ALTER TABLE parkings_measurements_actual ALTER COLUMN date_modified TYPE bigint USING extract(epoch FROM date_modified) * 1000;
|
|
4
|
+
|
|
5
|
+
-- remove new table and dependant views
|
|
6
|
+
DROP VIEW IF EXISTS v_park_and_ride_capacities;
|
|
7
|
+
DROP VIEW IF EXISTS v_park_and_ride;
|
|
8
|
+
DROP MATERIALIZED VIEW IF EXISTS v_tsk_average_occupancy;
|
|
9
|
+
DROP INDEX IF EXISTS v_tsk_average_occupancy_idx;
|
|
10
|
+
|
|
11
|
+
DROP TABLE IF EXISTS parkings_measurements_part;
|
|
12
|
+
DROP INDEX IF EXISTS parkings_measurements_part_pk;
|
|
13
|
+
DROP INDEX IF EXISTS parkings_measurements_part_idx;
|
|
14
|
+
|
|
15
|
+
-- rename old table
|
|
16
|
+
ALTER TABLE parkings_measurements_part_old RENAME TO parkings_measurements_part;
|
|
17
|
+
ALTER TABLE parkings_measurements_part_min_old RENAME TO parkings_measurements_part_min;
|
|
18
|
+
ALTER TABLE parkings_measurements_part_2021_old RENAME TO parkings_measurements_part_2021;
|
|
19
|
+
ALTER TABLE parkings_measurements_part_2022_old RENAME TO parkings_measurements_part_2022;
|
|
20
|
+
ALTER TABLE parkings_measurements_part_2023_old RENAME TO parkings_measurements_part_2023;
|
|
21
|
+
ALTER TABLE parkings_measurements_part_2024_old RENAME TO parkings_measurements_part_2024;
|
|
22
|
+
ALTER TABLE parkings_measurements_part_2025_old RENAME TO parkings_measurements_part_2025;
|
|
23
|
+
ALTER TABLE parkings_measurements_part_max_old RENAME TO parkings_measurements_part_max;
|
|
24
|
+
|
|
25
|
+
ALTER INDEX parkings_measurements_part_pk_old RENAME TO parkings_measurements_part_pk;
|
|
26
|
+
ALTER INDEX parkings_measurements_part_idx_old RENAME TO parkings_measurements_part_idx;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
-- LINK VIEWS
|
|
30
|
+
|
|
31
|
+
-- parkings.v_park_and_ride_capacities source
|
|
32
|
+
CREATE OR REPLACE VIEW v_park_and_ride_capacities AS
|
|
33
|
+
SELECT
|
|
34
|
+
DISTINCT ON (p.source_id) p.source_id,
|
|
35
|
+
p.name,
|
|
36
|
+
m.total_spot_number AS total_spot_number_measurements,
|
|
37
|
+
to_timestamp((m.date_modified / 1000)::double precision) AS last_date
|
|
38
|
+
FROM parkings p
|
|
39
|
+
LEFT JOIN parkings_measurements_part m ON p.source_id::text = m.source_id::text
|
|
40
|
+
WHERE p.category::text = 'park_and_ride'::text
|
|
41
|
+
ORDER BY p.source_id, p.name, m.date_modified DESC;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
-- parkings.v_park_and_ride source
|
|
45
|
+
CREATE OR REPLACE VIEW v_park_and_ride AS
|
|
46
|
+
SELECT
|
|
47
|
+
DISTINCT ON (pr.name, pr.updated_at_15_min) pr.name,
|
|
48
|
+
pr.x,
|
|
49
|
+
pr.y,
|
|
50
|
+
pr.updated_at_15_min,
|
|
51
|
+
pr.total_spot_number_measurements,
|
|
52
|
+
pr.occupied_spot_number,
|
|
53
|
+
pr.occupied_spot_number::double precision / NULLIF(pr.total_spot_number_measurements, 0)::double precision AS ocuupied_proportion,
|
|
54
|
+
date_part('year'::text, pr.updated_at_15_min) AS year,
|
|
55
|
+
date_part('month'::text, pr.updated_at_15_min) AS month,
|
|
56
|
+
date_part('day'::text, pr.updated_at_15_min) AS day,
|
|
57
|
+
date_part('dow'::text, pr.updated_at_15_min) AS dow,
|
|
58
|
+
date_part('hour'::text, pr.updated_at_15_min) AS hour,
|
|
59
|
+
date_part('minute'::text, pr.updated_at_15_min) AS minute,
|
|
60
|
+
date_part('hour'::text, pr.updated_at_15_min) + date_part('minute'::text, pr.updated_at_15_min) / 60::double precision AS hour_quarter
|
|
61
|
+
FROM (
|
|
62
|
+
SELECT
|
|
63
|
+
p.source_id,
|
|
64
|
+
p.name,
|
|
65
|
+
st_x(p.location) AS x,
|
|
66
|
+
st_y(p.location) AS y,
|
|
67
|
+
p.total_spot_number AS total_spot_number_parking,
|
|
68
|
+
m.available_spot_number,
|
|
69
|
+
m.occupied_spot_number,
|
|
70
|
+
m.total_spot_number AS total_spot_number_measurements,
|
|
71
|
+
to_timestamp((m.date_modified / 1000)::double precision) AS updated_at_measurements,
|
|
72
|
+
date_trunc('hour'::text, to_timestamp((m.date_modified / 1000)::double precision)) + ((date_part('minute'::text, to_timestamp((m.date_modified / 1000)::double precision)) + 7.5::double precision)::integer / 15)::double precision * '00:15:00'::interval AS updated_at_15_min
|
|
73
|
+
FROM parkings p
|
|
74
|
+
LEFT JOIN parkings_measurements_part m ON p.source_id::text = m.source_id::text
|
|
75
|
+
WHERE p.category::text = 'park_and_ride'::text
|
|
76
|
+
) pr
|
|
77
|
+
WHERE pr.updated_at_15_min < date_trunc('month'::text, CURRENT_DATE::timestamp with time zone)
|
|
78
|
+
ORDER BY pr.name, pr.updated_at_15_min;
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
-- parkings.v_tsk_average_occupancy source
|
|
82
|
+
CREATE MATERIALIZED VIEW IF NOT EXISTS v_tsk_average_occupancy AS
|
|
83
|
+
WITH average_occupancy_agg AS (
|
|
84
|
+
SELECT
|
|
85
|
+
"source_id",
|
|
86
|
+
extract(dow FROM to_timestamp("date_modified" / 1000) AT TIME ZONE 'Europe/Prague')::text AS "day_of_week",
|
|
87
|
+
extract(hour FROM to_timestamp("date_modified" / 1000) AT TIME ZONE 'Europe/Prague') AS "hour",
|
|
88
|
+
round(avg("occupied_spot_number"))::int AS "average_occupancy"
|
|
89
|
+
FROM parkings_measurements_part
|
|
90
|
+
WHERE "source" IN ('tsk', 'TSK') AND to_timestamp("date_modified" / 1000) > NOW() - INTERVAL '1 month'
|
|
91
|
+
GROUP BY 1, 2, 3
|
|
92
|
+
ORDER BY 1, 2, 3
|
|
93
|
+
),
|
|
94
|
+
average_occupancy_hour_json_agg AS (
|
|
95
|
+
SELECT
|
|
96
|
+
"source_id",
|
|
97
|
+
"day_of_week",
|
|
98
|
+
json_object_agg(lpad("hour"::text, 2, '0'), "average_occupancy" ORDER BY 1) AS "hour_agg"
|
|
99
|
+
FROM average_occupancy_agg
|
|
100
|
+
GROUP BY 1, 2
|
|
101
|
+
)
|
|
102
|
+
SELECT
|
|
103
|
+
"source_id",
|
|
104
|
+
json_object_agg(lpad("day_of_week", 2, '0'), "hour_agg") AS "average_occupancy"
|
|
105
|
+
FROM average_occupancy_hour_json_agg
|
|
106
|
+
GROUP BY 1;
|
|
107
|
+
|
|
108
|
+
CREATE UNIQUE INDEX v_tsk_average_occupancy_idx ON v_tsk_average_occupancy USING btree (source_id);
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
-- date_modified bigint -> timestamptz
|
|
2
|
+
ALTER TABLE parkings ALTER COLUMN date_modified TYPE timestamptz USING to_timestamp(date_modified / 1000);
|
|
3
|
+
ALTER TABLE parkings_measurements_actual ALTER COLUMN date_modified TYPE timestamptz USING to_timestamp(date_modified / 1000);
|
|
4
|
+
|
|
5
|
+
-- rename old table
|
|
6
|
+
ALTER TABLE parkings_measurements_part RENAME TO parkings_measurements_part_old;
|
|
7
|
+
ALTER TABLE parkings_measurements_part_min RENAME TO parkings_measurements_part_min_old;
|
|
8
|
+
ALTER TABLE parkings_measurements_part_2021 RENAME TO parkings_measurements_part_2021_old;
|
|
9
|
+
ALTER TABLE parkings_measurements_part_2022 RENAME TO parkings_measurements_part_2022_old;
|
|
10
|
+
ALTER TABLE parkings_measurements_part_2023 RENAME TO parkings_measurements_part_2023_old;
|
|
11
|
+
ALTER TABLE parkings_measurements_part_2024 RENAME TO parkings_measurements_part_2024_old;
|
|
12
|
+
ALTER TABLE parkings_measurements_part_2025 RENAME TO parkings_measurements_part_2025_old;
|
|
13
|
+
ALTER TABLE parkings_measurements_part_max RENAME TO parkings_measurements_part_max_old;
|
|
14
|
+
|
|
15
|
+
ALTER INDEX parkings_measurements_part_pk RENAME TO parkings_measurements_part_pk_old;
|
|
16
|
+
ALTER INDEX parkings_measurements_part_idx RENAME TO parkings_measurements_part_idx_old;
|
|
17
|
+
|
|
18
|
+
-- create new table with date_modified timestamptz
|
|
19
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part (
|
|
20
|
+
"source" varchar(255) NOT NULL,
|
|
21
|
+
source_id varchar(255) NOT NULL,
|
|
22
|
+
parking_id character varying(50),
|
|
23
|
+
available_spot_number int4 NULL,
|
|
24
|
+
closed_spot_number int4 NULL,
|
|
25
|
+
occupied_spot_number int4 NULL,
|
|
26
|
+
total_spot_number int4 NULL,
|
|
27
|
+
date_modified timestamptz NULL,
|
|
28
|
+
create_batch_id int8 NULL,
|
|
29
|
+
created_at timestamptz NULL,
|
|
30
|
+
created_by varchar(150) NULL,
|
|
31
|
+
update_batch_id int8 NULL,
|
|
32
|
+
updated_at timestamptz NULL,
|
|
33
|
+
updated_by varchar(150) NULL,
|
|
34
|
+
|
|
35
|
+
CONSTRAINT parkings_measurements_part_pk PRIMARY KEY (source, source_id, date_modified)
|
|
36
|
+
) PARTITION BY RANGE(date_modified);
|
|
37
|
+
|
|
38
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_min PARTITION OF parkings_measurements_part
|
|
39
|
+
FOR VALUES FROM (minvalue) TO ('2020-12-31T23:00:00.000Z');
|
|
40
|
+
|
|
41
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_2021 PARTITION OF parkings_measurements_part
|
|
42
|
+
FOR VALUES FROM ('2020-12-31T23:00:00.000Z') TO ('2021-12-31T23:00:00.000Z');
|
|
43
|
+
|
|
44
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_2022 PARTITION OF parkings_measurements_part
|
|
45
|
+
FOR VALUES FROM ('2021-12-31T23:00:00.000Z') TO ('2022-12-31T23:00:00.000Z');
|
|
46
|
+
|
|
47
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_2023 PARTITION OF parkings_measurements_part
|
|
48
|
+
FOR VALUES FROM ('2022-12-31T23:00:00.000Z') TO ('2023-12-31T23:00:00.000Z');
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_2024 PARTITION OF parkings_measurements_part
|
|
51
|
+
FOR VALUES FROM ('2023-12-31T23:00:00.000Z') TO ('2024-12-31T23:00:00.000Z');
|
|
52
|
+
|
|
53
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_2025 PARTITION OF parkings_measurements_part
|
|
54
|
+
FOR VALUES FROM ('2024-12-31T23:00:00.000Z') TO ('2025-12-31T23:00:00.000Z');
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS parkings_measurements_part_max PARTITION OF parkings_measurements_part
|
|
57
|
+
FOR VALUES FROM ('2025-12-31T23:00:00.000Z') TO (maxvalue);
|
|
58
|
+
|
|
59
|
+
CREATE INDEX IF NOT EXISTS parkings_measurements_part_idx ON parkings_measurements_part USING btree (date_modified desc);
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
-- LINK VIEWS
|
|
63
|
+
|
|
64
|
+
-- parkings.v_park_and_ride_capacities source
|
|
65
|
+
CREATE OR REPLACE VIEW v_park_and_ride_capacities AS
|
|
66
|
+
SELECT
|
|
67
|
+
DISTINCT ON (p.source_id) p.source_id,
|
|
68
|
+
p.name,
|
|
69
|
+
m.total_spot_number AS total_spot_number_measurements,
|
|
70
|
+
m.date_modified AS last_date
|
|
71
|
+
FROM parkings p
|
|
72
|
+
LEFT JOIN parkings_measurements_part m ON p.source_id::text = m.source_id::text
|
|
73
|
+
WHERE p.category::text = 'park_and_ride'::text
|
|
74
|
+
ORDER BY p.source_id, p.name, m.date_modified DESC;
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
-- parkings.v_park_and_ride source
|
|
78
|
+
CREATE OR REPLACE VIEW v_park_and_ride AS
|
|
79
|
+
SELECT
|
|
80
|
+
DISTINCT ON (pr.name, pr.updated_at_15_min) pr.name,
|
|
81
|
+
pr.x,
|
|
82
|
+
pr.y,
|
|
83
|
+
pr.updated_at_15_min,
|
|
84
|
+
pr.total_spot_number_measurements,
|
|
85
|
+
pr.occupied_spot_number,
|
|
86
|
+
pr.occupied_spot_number::double precision / NULLIF(pr.total_spot_number_measurements, 0)::double precision AS ocuupied_proportion,
|
|
87
|
+
date_part('year'::text, pr.updated_at_15_min) AS year,
|
|
88
|
+
date_part('month'::text, pr.updated_at_15_min) AS month,
|
|
89
|
+
date_part('day'::text, pr.updated_at_15_min) AS day,
|
|
90
|
+
date_part('dow'::text, pr.updated_at_15_min) AS dow,
|
|
91
|
+
date_part('hour'::text, pr.updated_at_15_min) AS hour,
|
|
92
|
+
date_part('minute'::text, pr.updated_at_15_min) AS minute,
|
|
93
|
+
date_part('hour'::text, pr.updated_at_15_min) + date_part('minute'::text, pr.updated_at_15_min) / 60::double precision AS hour_quarter
|
|
94
|
+
FROM (
|
|
95
|
+
SELECT
|
|
96
|
+
p.source_id,
|
|
97
|
+
p.name,
|
|
98
|
+
st_x(p.location) AS x,
|
|
99
|
+
st_y(p.location) AS y,
|
|
100
|
+
p.total_spot_number AS total_spot_number_parking,
|
|
101
|
+
m.available_spot_number,
|
|
102
|
+
m.occupied_spot_number,
|
|
103
|
+
m.total_spot_number AS total_spot_number_measurements,
|
|
104
|
+
m.date_modified AS updated_at_measurements,
|
|
105
|
+
date_trunc('hour'::text, m.date_modified) + ((date_part('minute'::text, m.date_modified) + 7.5::double precision)::integer / 15)::double precision * '00:15:00'::interval AS updated_at_15_min
|
|
106
|
+
FROM parkings p
|
|
107
|
+
LEFT JOIN parkings_measurements_part m ON p.source_id::text = m.source_id::text
|
|
108
|
+
WHERE p.category::text = 'park_and_ride'::text
|
|
109
|
+
) pr
|
|
110
|
+
WHERE pr.updated_at_15_min < date_trunc('month'::text, CURRENT_DATE::TIMESTAMP WITH TIME ZONE)
|
|
111
|
+
ORDER BY pr.name, pr.updated_at_15_min;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
-- parkings.v_tsk_average_occupancy source
|
|
115
|
+
DROP MATERIALIZED VIEW IF EXISTS v_tsk_average_occupancy;
|
|
116
|
+
DROP INDEX IF EXISTS v_tsk_average_occupancy_idx;
|
|
117
|
+
|
|
118
|
+
CREATE MATERIALIZED VIEW IF NOT EXISTS v_tsk_average_occupancy AS
|
|
119
|
+
WITH average_occupancy_agg AS (
|
|
120
|
+
SELECT
|
|
121
|
+
"source_id",
|
|
122
|
+
extract(dow FROM "date_modified" AT TIME ZONE 'Europe/Prague')::text AS "day_of_week",
|
|
123
|
+
extract(hour FROM "date_modified" AT TIME ZONE 'Europe/Prague') AS "hour",
|
|
124
|
+
round(avg("occupied_spot_number"))::int AS "average_occupancy"
|
|
125
|
+
FROM parkings_measurements_part
|
|
126
|
+
WHERE "source" IN ('tsk', 'TSK') AND "date_modified" > NOW() - interval '1 month'
|
|
127
|
+
GROUP BY 1, 2, 3
|
|
128
|
+
ORDER BY 1, 2, 3
|
|
129
|
+
),
|
|
130
|
+
average_occupancy_hour_json_agg AS (
|
|
131
|
+
SELECT
|
|
132
|
+
"source_id",
|
|
133
|
+
"day_of_week",
|
|
134
|
+
json_object_agg(lpad("hour"::text, 2, '0'), "average_occupancy" ORDER BY 1) AS "hour_agg"
|
|
135
|
+
FROM average_occupancy_agg
|
|
136
|
+
GROUP BY 1, 2
|
|
137
|
+
)
|
|
138
|
+
SELECT
|
|
139
|
+
"source_id",
|
|
140
|
+
json_object_agg(lpad("day_of_week", 2, '0'), "hour_agg") AS "average_occupancy"
|
|
141
|
+
FROM average_occupancy_hour_json_agg
|
|
142
|
+
GROUP BY 1;
|
|
143
|
+
|
|
144
|
+
CREATE UNIQUE INDEX v_tsk_average_occupancy_idx ON v_tsk_average_occupancy USING btree (source_id);
|
|
@@ -5,7 +5,7 @@ export interface IParking {
|
|
|
5
5
|
source: string;
|
|
6
6
|
source_id: string;
|
|
7
7
|
data_provider: string;
|
|
8
|
-
date_modified:
|
|
8
|
+
date_modified: string;
|
|
9
9
|
location: TGeoCoordinates;
|
|
10
10
|
address?: IPostalAddress;
|
|
11
11
|
name: string;
|
|
@@ -39,7 +39,7 @@ export interface IParkingMeasurements {
|
|
|
39
39
|
closed_spot_number?: number;
|
|
40
40
|
occupied_spot_number: number;
|
|
41
41
|
total_spot_number: number;
|
|
42
|
-
date_modified:
|
|
42
|
+
date_modified: string;
|
|
43
43
|
}
|
|
44
44
|
export interface IParkingTariffDescription {
|
|
45
45
|
tariff_id: string;
|
|
@@ -39,8 +39,8 @@ class ParkingsWorker extends workers_1.BaseWorker {
|
|
|
39
39
|
const data = yield this.dataSource.getAll();
|
|
40
40
|
let staticGeoData;
|
|
41
41
|
try {
|
|
42
|
-
// "optional" datasource enhancing
|
|
43
|
-
// objectively the datasource is static data
|
|
42
|
+
// "optional" datasource enhancing geolocations
|
|
43
|
+
// objectively the datasource is static data maintained by IPT
|
|
44
44
|
staticGeoData = (yield StaticParkingLotsGeoDataSourceFactory_1.StaticParkingLotsGeoDataSourceFactory.getDataSource(this.config.datasources.StaticParkingLotsGeoSourceUrl).getAll()).features;
|
|
45
45
|
}
|
|
46
46
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingsWorker.js","sourceRoot":"","sources":["../../src/integration-engine/ParkingsWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2FAA0F;AAC1F,uEAAsE;AACtE,qGAAiF;AACjF,iHAA6F;AAE7F,uDAAsC;AAEtC,8EAAqE;AAErE,mFAA2H;AAC3H,6FAA0F;AAC1F,yEAAyF;AACzF,2EAA2E;AAC3E,6EAAwE;AACxE,mFAAkF;AAClF,+GAA4G;AAC5G,iCAA6C;AAC7C,qEAAkE;AAClE,gGAA6F;AAC7F,yGAAsG;AACtG,qGAAkG;AAElG,MAAa,cAAe,SAAQ,oBAAU;IAc1C;QACI,KAAK,EAAE,CAAC;QAoDZ;;;WAGG;QACI,0BAAqB,GAAG,GAAwB,EAAE;YACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,aAAyD,CAAC;YAC9D,IAAI;gBACA
|
|
1
|
+
{"version":3,"file":"ParkingsWorker.js","sourceRoot":"","sources":["../../src/integration-engine/ParkingsWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { IZtpParkingJsonFeature } from "../../schema-definitions/datasources/int
|
|
|
3
3
|
import { IParking } from "../ParkingInterface";
|
|
4
4
|
export declare class ZtpParkingZonesTransformation extends BaseTransformation implements ITransformation {
|
|
5
5
|
name: string;
|
|
6
|
-
transformationDate:
|
|
6
|
+
transformationDate: string;
|
|
7
7
|
constructor(transformationDate: Date);
|
|
8
8
|
transform: (data: IZtpParkingJsonFeature[]) => Promise<IParking[]>;
|
|
9
9
|
transformElement: (element: IZtpParkingJsonFeature) => Promise<IParking>;
|
|
@@ -29,7 +29,7 @@ class ZtpParkingZonesTransformation extends transformations_1.BaseTransformation
|
|
|
29
29
|
source: "ipr",
|
|
30
30
|
source_id: `ztp-${element.properties.OBJECTID.toString()}`,
|
|
31
31
|
data_provider: "opendata.iprpraha.cz",
|
|
32
|
-
date_modified: this.transformationDate
|
|
32
|
+
date_modified: this.transformationDate,
|
|
33
33
|
location: element.geometry,
|
|
34
34
|
name: parkingName,
|
|
35
35
|
total_spot_number: element.properties.POCET_PS,
|
|
@@ -38,7 +38,7 @@ class ZtpParkingZonesTransformation extends transformations_1.BaseTransformation
|
|
|
38
38
|
};
|
|
39
39
|
});
|
|
40
40
|
this.name = "ZtpParkings";
|
|
41
|
-
this.transformationDate = transformationDate;
|
|
41
|
+
this.transformationDate = transformationDate.toISOString();
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
exports.ZtpParkingZonesTransformation = ZtpParkingZonesTransformation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZtpParkingZonesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2FAA4G;AAI5G,MAAa,6BAA8B,SAAQ,oCAAkB;IAIjE,YAAY,kBAAwB;QAChC,KAAK,EAAE,CAAC;QAKZ,cAAS,GAAG,CAAO,IAA8B,EAAuB,EAAE;YACtE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,qBAAgB,GAAG,CAAO,OAA+B,EAAqB,EAAE;YAC5E,IAAI,WAAW,GAAG,gBAAgB,CAAC;YAEnC,OAAO;gBACH,EAAE,EAAE,eAAe,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3D,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC1D,aAAa,EAAE,sBAAsB;gBACrC,aAAa,EAAE,IAAI,CAAC,kBAAkB
|
|
1
|
+
{"version":3,"file":"ZtpParkingZonesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2FAA4G;AAI5G,MAAa,6BAA8B,SAAQ,oCAAkB;IAIjE,YAAY,kBAAwB;QAChC,KAAK,EAAE,CAAC;QAKZ,cAAS,GAAG,CAAO,IAA8B,EAAuB,EAAE;YACtE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,qBAAgB,GAAG,CAAO,OAA+B,EAAqB,EAAE;YAC5E,IAAI,WAAW,GAAG,gBAAgB,CAAC;YAEnC,OAAO;gBACH,EAAE,EAAE,eAAe,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3D,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC1D,aAAa,EAAE,sBAAsB;gBACrC,aAAa,EAAE,IAAI,CAAC,kBAAkB;gBACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,WAAW;gBACjB,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;gBAC9C,YAAY,EAAE,kBAAkB;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC;QACN,CAAC,CAAA,CAAC;QA5BE,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;CA2BJ;AAnCD,sEAmCC"}
|
|
@@ -46,19 +46,18 @@ class KoridParkingConfigTransformation extends integration_engine_1.BaseTransfor
|
|
|
46
46
|
this.transform = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
47
47
|
const geoResults = [];
|
|
48
48
|
const tariffResults = [];
|
|
49
|
+
const dateModified = new Date(data.time).toISOString();
|
|
49
50
|
for (const element of data.geojson.features) {
|
|
50
|
-
geoResults.push(yield this.transformElement(Object.assign(Object.assign({}, element), { time:
|
|
51
|
+
geoResults.push(yield this.transformElement(Object.assign(Object.assign({}, element), { time: dateModified })));
|
|
51
52
|
}
|
|
52
53
|
tariffResults.push(...this.transformTariffElement(data.tarif));
|
|
53
54
|
return { geo: geoResults, tariff: tariffResults };
|
|
54
55
|
});
|
|
55
56
|
this.transformElement = (element) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const dateModified = element.time;
|
|
57
|
-
delete element.time;
|
|
58
57
|
return {
|
|
59
58
|
id: `${this.dataSource}-${element.properties.groupid}`.toLowerCase(),
|
|
60
59
|
data_provider: "www.korid.cz",
|
|
61
|
-
date_modified:
|
|
60
|
+
date_modified: element.time,
|
|
62
61
|
location: element.geometry,
|
|
63
62
|
name: element.properties.title,
|
|
64
63
|
source: this.dataSource,
|