@golemio/parkings 1.7.3 → 1.7.4-dev.1107156277

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.
@@ -80,4 +80,14 @@ export interface IParkingTariff extends IParkingTariffDescription, IParkingTarif
80
80
  maximum_duration_seconds?: number;
81
81
  periods_of_time?: IParkingTariffPeriod[];
82
82
  }
83
+ export interface ITariffPeriodElement {
84
+ charge: number;
85
+ charge_type?: string;
86
+ charge_order_index: number;
87
+ charge_interval?: number;
88
+ max_iterations_of_charge?: number;
89
+ min_iterations_of_charge?: number;
90
+ periods_of_time?: IParkingTariffPeriod[];
91
+ }
92
+ export type TTariffData = IParkingTariff & ITariffPeriodElement;
83
93
  export {};
@@ -1,9 +1,9 @@
1
- import { IMrParkitGarage } from "../../schema-definitions/datasources/interfaces/IMrParkitGarage";
1
+ import { IMrParkitGarageWithTariff } from "../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
2
  import { ParkingProvider } from "./helpers/ParkingProviderEnum";
3
3
  import { IDataSourceProvider } from "./interfaces/IDataSourceProvider";
4
4
  import { DataSourceProviderDict, DataSourceReturnType, IParkingProviderDataSourceFactory } from "./interfaces/IParkingProviderDataSourceFactory";
5
5
  export declare class ParkingProviderDataSourceFactory implements IParkingProviderDataSourceFactory {
6
6
  private readonly dataSourceProviderDict;
7
- constructor(mrParkitDataSourceProvider: IDataSourceProvider<IMrParkitGarage[]>);
7
+ constructor(mrParkitDataSourceProvider: IDataSourceProvider<IMrParkitGarageWithTariff[]>);
8
8
  getDataSource<T extends ParkingProvider>(presetLogsProvider: T, ...params: Parameters<DataSourceProviderDict[T]["getDataSource"]>): DataSourceReturnType<T>;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/ParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sEAAoE;AAEpE,iEAAwE;AACxE,uEAAgE;AASzD,IAAM,gCAAgC,8CAAtC,MAAM,gCAAgC;IAGzC,YAEI,0BAAkE;QAElE,IAAI,CAAC,sBAAsB,GAAG;YAC1B,CAAC,qCAAe,CAAC,QAAQ,CAAC,EAAE,0BAA0B;SACzD,CAAC;IACN,CAAC;IAEM,aAAa,CAChB,kBAAqB,EACrB,GAAG,MAA8D;QAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAA4B,CAAC;IAC/G,CAAC;CACJ,CAAA;2CAlBY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;;GAJnD,gCAAgC,CAkB5C"}
1
+ {"version":3,"file":"ParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/ParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sEAAoE;AAEpE,iEAAwE;AACxE,uEAAgE;AASzD,IAAM,gCAAgC,8CAAtC,MAAM,gCAAgC;IAGzC,YAEI,0BAA4E;QAE5E,IAAI,CAAC,sBAAsB,GAAG;YAC1B,CAAC,qCAAe,CAAC,QAAQ,CAAC,EAAE,0BAA0B;SACzD,CAAC;IACN,CAAC;IAEM,aAAa,CAChB,kBAAqB,EACrB,GAAG,MAA8D;QAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAA4B,CAAC;IAC/G,CAAC;CACJ,CAAA;2CAlBY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;;GAJnD,gCAAgC,CAkB5C"}
@@ -1,8 +1,8 @@
1
- import { IMrParkitGarage } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
1
+ import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
2
  import { ParkingProvider } from "../helpers/ParkingProviderEnum";
3
3
  import { IDataSourceProvider } from "./IDataSourceProvider";
4
4
  export type DataSourceProviderDict = {
5
- [ParkingProvider.MrParkit]: IDataSourceProvider<IMrParkitGarage[]>;
5
+ [ParkingProvider.MrParkit]: IDataSourceProvider<IMrParkitGarageWithTariff[]>;
6
6
  };
7
7
  export type DataSourceReturnType<T extends ParkingProvider> = ReturnType<DataSourceProviderDict[T]["getDataSource"]>;
8
8
  export interface IParkingProviderDataSourceFactory {
@@ -1,8 +1,8 @@
1
- import { IMrParkitGarage } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
1
+ import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
2
  import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
3
  import { IDataSource } from "@golemio/core/dist/integration-engine";
4
4
  import { IDataSourceProvider } from "../interfaces/IDataSourceProvider";
5
- type MrParkitDto = IMrParkitGarage[];
5
+ type MrParkitDto = IMrParkitGarageWithTariff[];
6
6
  export declare class MrParkitDataSourceProvider implements IDataSourceProvider<MrParkitDto> {
7
7
  private config;
8
8
  private static DATASOURCE_NAME;
@@ -1,7 +1,7 @@
1
- import { IMrParkitGarage } from "../../schema-definitions/datasources/interfaces/IMrParkitGarage";
1
+ import { IMrParkitGarageWithTariff } from "../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
2
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
3
3
  import { IMrParkingTransformationDto, IMrParkitGarageTransformation } from "./interfaces/IMrParkitGarageTransformation";
4
- type TransformIn = IMrParkitGarage;
4
+ type TransformIn = IMrParkitGarageWithTariff;
5
5
  type TransformOut = IMrParkingTransformationDto;
6
6
  export declare class MrParkitGarageTransformation extends AbstractTransformation<TransformIn, TransformOut> implements IMrParkitGarageTransformation {
7
7
  private transformationDate;
@@ -10,5 +10,11 @@ export declare class MrParkitGarageTransformation extends AbstractTransformation
10
10
  protected transformInternal: (data: TransformIn) => TransformOut;
11
11
  private transformLocation;
12
12
  private transformMeasurement;
13
+ private transformTariffElement;
14
+ private getHourlyTariffs;
15
+ private getWorkDayTariffs;
16
+ private getWeekendTariffs;
17
+ private getWorkDayPeriodsOfTime;
18
+ private getWeekendPeriodsOfTime;
13
19
  }
14
20
  export {};
@@ -3,6 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MrParkitGarageTransformation = void 0;
4
4
  const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
5
  const output_gateway_1 = require("@golemio/core/dist/output-gateway");
6
+ var DaysInWeekEnum;
7
+ (function (DaysInWeekEnum) {
8
+ DaysInWeekEnum["monday"] = "Mo";
9
+ DaysInWeekEnum["tuesday"] = "Tu";
10
+ DaysInWeekEnum["wednesday"] = "We";
11
+ DaysInWeekEnum["thursday"] = "Th";
12
+ DaysInWeekEnum["friday"] = "Fr";
13
+ DaysInWeekEnum["saturday"] = "Sa";
14
+ DaysInWeekEnum["sunday"] = "Su";
15
+ })(DaysInWeekEnum || (DaysInWeekEnum = {}));
16
+ var OffWeekDays;
17
+ (function (OffWeekDays) {
18
+ OffWeekDays["saturday"] = "Sa";
19
+ OffWeekDays["sunday"] = "Su";
20
+ })(OffWeekDays || (OffWeekDays = {}));
21
+ var PhTypes;
22
+ (function (PhTypes) {
23
+ PhTypes["off"] = "ph_off";
24
+ PhTypes["only"] = "ph_only";
25
+ })(PhTypes || (PhTypes = {}));
6
26
  class MrParkitGarageTransformation extends AbstractTransformation_1.AbstractTransformation {
7
27
  constructor(transformationDate) {
8
28
  super();
@@ -30,7 +50,7 @@ class MrParkitGarageTransformation extends AbstractTransformation_1.AbstractTran
30
50
  address_formatted: data.address,
31
51
  },
32
52
  };
33
- return Object.assign(Object.assign({}, parking), { parkingLocation: this.transformLocation(parking), parkingMeasurement: this.transformMeasurement(parking, data) });
53
+ return Object.assign(Object.assign({}, parking), { parkingLocation: this.transformLocation(parking), parkingMeasurement: this.transformMeasurement(parking, data), tariffs: this.transformTariffElement(data) });
34
54
  };
35
55
  this.transformLocation = (parking) => {
36
56
  return {
@@ -56,6 +76,83 @@ class MrParkitGarageTransformation extends AbstractTransformation_1.AbstractTran
56
76
  total_spot_number: parking.total_spot_number,
57
77
  };
58
78
  };
79
+ this.transformTariffElement = (element) => {
80
+ const tariffCommonInfo = {
81
+ charge_band_name: element.name,
82
+ source: "mr_parkit",
83
+ tariff_id: element.id,
84
+ last_updated: this.transformationDate.toISOString(),
85
+ free_of_charge: false,
86
+ payment_mode: "pre_paid",
87
+ charge_currency: "czk",
88
+ };
89
+ const result = [
90
+ Object.assign(Object.assign({}, tariffCommonInfo), this.getHourlyTariffs(element)),
91
+ Object.assign(Object.assign({}, tariffCommonInfo), this.getWorkDayTariffs(element)),
92
+ Object.assign(Object.assign({}, tariffCommonInfo), this.getWeekendTariffs(element)),
93
+ ];
94
+ return result;
95
+ };
96
+ this.getHourlyTariffs = (element) => {
97
+ return {
98
+ charge: element.pricePerHour,
99
+ charge_type: "other",
100
+ charge_order_index: 0,
101
+ charge_interval: 3600,
102
+ max_iterations_of_charge: 24,
103
+ min_iterations_of_charge: element.minReservationDuration,
104
+ };
105
+ };
106
+ this.getWorkDayTariffs = (element) => {
107
+ return {
108
+ charge: element.pricePerDay,
109
+ charge_type: "other",
110
+ charge_order_index: 1,
111
+ charge_interval: 86400,
112
+ max_iterations_of_charge: element.maxReservationDuration / 24,
113
+ min_iterations_of_charge: 0,
114
+ periods_of_time: this.getWorkDayPeriodsOfTime(),
115
+ };
116
+ };
117
+ this.getWeekendTariffs = (element) => {
118
+ return {
119
+ charge: element.pricePerWeekend,
120
+ charge_type: "other",
121
+ charge_order_index: 2,
122
+ charge_interval: 172800,
123
+ max_iterations_of_charge: 1,
124
+ min_iterations_of_charge: 0,
125
+ periods_of_time: this.getWeekendPeriodsOfTime(),
126
+ };
127
+ };
128
+ this.getWorkDayPeriodsOfTime = () => {
129
+ const result = [];
130
+ for (const day of Object.keys(DaysInWeekEnum)) {
131
+ for (const ph of Object.keys(PhTypes)) {
132
+ result.push({
133
+ day_in_week: DaysInWeekEnum[day],
134
+ start: "00:00",
135
+ end: "23:59",
136
+ ph: PhTypes[ph],
137
+ });
138
+ }
139
+ }
140
+ return result;
141
+ };
142
+ this.getWeekendPeriodsOfTime = () => {
143
+ const result = [];
144
+ for (const day of Object.keys(OffWeekDays)) {
145
+ for (const ph of Object.keys(PhTypes)) {
146
+ result.push({
147
+ day_in_week: OffWeekDays[day],
148
+ start: "00:00",
149
+ end: "23:59",
150
+ ph: PhTypes[ph],
151
+ });
152
+ }
153
+ }
154
+ return result;
155
+ };
59
156
  }
60
157
  }
61
158
  exports.MrParkitGarageTransformation = MrParkitGarageTransformation;
@@ -1 +1 @@
1
- {"version":3,"file":"MrParkitGarageTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/MrParkitGarageTransformation.ts"],"names":[],"mappings":";;;AAGA,6GAA0G;AAC1G,sEAA6F;AAM7F,MAAa,4BACT,SAAQ,+CAAiD;IAKzD,YAAoB,kBAAwB;QACxC,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAM;QAFrC,SAAI,GAAG,8BAA8B,CAAC;QAMnC,sBAAiB,GAAG,CAAC,IAAiB,EAAgB,EAAE;YAC9D,MAAM,QAAQ,GAAyB;gBACnC,IAAI,EAAE,mCAAkB,CAAC,KAAK;gBAC9B,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC/C,CAAC;YAEF,MAAM,OAAO,GAAa;gBACtB,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE;gBAC1B,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,aAAa,EAAE,kBAAkB;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ;gBACR,QAAQ,EAAE,QAAQ;gBAClB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACpD,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACjD,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE;oBACL,eAAe,EAAE,OAAO;oBACxB,iBAAiB,EAAE,IAAI,CAAC,OAAO;iBAClC;aACJ,CAAC;YAEF,uCACO,OAAO,KACV,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAChD,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,IAC9D;QACN,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,OAAiB,EAAoB,EAAE;YAChE,OAAO;gBACH,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,IAAI;aACvB,CAAC;QACN,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,OAAiB,EAAE,IAAiB,EAAwB,EAAE;YAC1F,OAAO;gBACH,UAAU,EAAE,OAAO,CAAC,EAAE;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACpD,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC/C,CAAC;QACN,CAAC,CAAC;IAzDF,CAAC;CA0DJ;AAlED,oEAkEC"}
1
+ {"version":3,"file":"MrParkitGarageTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/MrParkitGarageTransformation.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { IParking, IParkingMeasurements } from "../../ParkingInterface";
2
- import { IMrParkitGarage } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
1
+ import { IParking, IParkingMeasurements, TTariffData } from "../../ParkingInterface";
2
+ import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
3
3
  import { IParkingLocation } from "../../../schema-definitions/models/interfaces/IParkingLocation";
4
4
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
5
  export interface IMrParkingTransformationDto extends IParking {
6
6
  parkingLocation: IParkingLocation;
7
7
  parkingMeasurement: IParkingMeasurements;
8
+ tariffs: TTariffData[];
8
9
  }
9
- export interface IMrParkitGarageTransformation extends AbstractTransformation<IMrParkitGarage, IMrParkingTransformationDto> {
10
+ export interface IMrParkitGarageTransformation extends AbstractTransformation<IMrParkitGarageWithTariff, IMrParkingTransformationDto> {
10
11
  }
@@ -2,14 +2,16 @@ import { IParkingProviderDataSourceFactory } from "../../datasources/interfaces/
2
2
  import { ParkingsLocationRepository } from "../../repositories/ParkingsLocationRepository";
3
3
  import { ParkingsRepository } from "../../repositories/ParkingsRepository";
4
4
  import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
5
+ import { ParkingTariffsRepository } from "../../repositories/ParkingTariffsRepository";
5
6
  export declare class SaveMrParkitDataTask extends AbstractEmptyTask {
6
7
  private dataSourceFactory;
7
8
  private parkingRepository;
8
9
  private parkingLocationRepository;
10
+ private parkingsTariffsRepository;
9
11
  readonly queueName = "saveMrParkitData";
10
12
  readonly queueTtl: number;
11
13
  private measurementsRepository;
12
- constructor(dataSourceFactory: IParkingProviderDataSourceFactory, parkingRepository: ParkingsRepository, parkingLocationRepository: ParkingsLocationRepository);
14
+ constructor(dataSourceFactory: IParkingProviderDataSourceFactory, parkingRepository: ParkingsRepository, parkingLocationRepository: ParkingsLocationRepository, parkingsTariffsRepository: ParkingTariffsRepository);
13
15
  protected execute(): Promise<void>;
14
16
  private getParkingAtributesToUpdate;
15
17
  }
@@ -46,12 +46,14 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
46
46
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
47
47
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
48
48
  const constants_1 = require("../constants");
49
+ const ParkingTariffsRepository_1 = require("../../repositories/ParkingTariffsRepository");
49
50
  let SaveMrParkitDataTask = exports.SaveMrParkitDataTask = class SaveMrParkitDataTask extends AbstractEmptyTask_1.AbstractEmptyTask {
50
- constructor(dataSourceFactory, parkingRepository, parkingLocationRepository) {
51
+ constructor(dataSourceFactory, parkingRepository, parkingLocationRepository, parkingsTariffsRepository) {
51
52
  super(constants_1.NEW_PARKINGS_WORKER_NAME);
52
53
  this.dataSourceFactory = dataSourceFactory;
53
54
  this.parkingRepository = parkingRepository;
54
55
  this.parkingLocationRepository = parkingLocationRepository;
56
+ this.parkingsTariffsRepository = parkingsTariffsRepository;
55
57
  this.queueName = "saveMrParkitData";
56
58
  this.queueTtl = 15 * 60 * 1000; // 15min
57
59
  this.measurementsRepository = new integration_engine_1.PostgresModel(_sch_1.Parkings.measurements.name + "Model", {
@@ -79,12 +81,14 @@ let SaveMrParkitDataTask = exports.SaveMrParkitDataTask = class SaveMrParkitData
79
81
  let transformedGarages = [];
80
82
  let transformedLocations = [];
81
83
  let transformedMeasurements = [];
84
+ let transformedTariffs = [];
82
85
  try {
83
86
  for (const garage of garageResult) {
84
- const _a = garageTransformation.transformElement(garage), { parkingLocation, parkingMeasurement } = _a, parking = __rest(_a, ["parkingLocation", "parkingMeasurement"]);
87
+ const _a = garageTransformation.transformElement(garage), { parkingLocation, parkingMeasurement, tariffs } = _a, parking = __rest(_a, ["parkingLocation", "parkingMeasurement", "tariffs"]);
85
88
  transformedGarages.push(parking);
86
89
  transformedLocations.push(parkingLocation);
87
90
  transformedMeasurements.push(parkingMeasurement);
91
+ transformedTariffs.push(...tariffs);
88
92
  }
89
93
  }
90
94
  catch (err) {
@@ -97,6 +101,7 @@ let SaveMrParkitDataTask = exports.SaveMrParkitDataTask = class SaveMrParkitData
97
101
  yield this.measurementsRepository.bulkSave(transformedMeasurements);
98
102
  yield this.parkingLocationRepository.bulkSave(transformedLocations);
99
103
  yield this.parkingRepository.bulkSave(transformedGarages, this.getParkingAtributesToUpdate(transformedGarages[0]));
104
+ yield this.parkingsTariffsRepository.bulkSave(transformedTariffs);
100
105
  }
101
106
  catch (err) {
102
107
  throw new golemio_errors_1.GeneralError("Error while saving MR.PARKIT data", this.constructor.name, err);
@@ -114,7 +119,9 @@ exports.SaveMrParkitDataTask = SaveMrParkitDataTask = __decorate([
114
119
  __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingProviderDataSourceFactory)),
115
120
  __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository)),
116
121
  __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository)),
122
+ __param(3, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffsRepository)),
117
123
  __metadata("design:paramtypes", [Object, ParkingsRepository_1.ParkingsRepository,
118
- ParkingsLocationRepository_1.ParkingsLocationRepository])
124
+ ParkingsLocationRepository_1.ParkingsLocationRepository,
125
+ ParkingTariffsRepository_1.ParkingTariffsRepository])
119
126
  ], SaveMrParkitDataTask);
120
127
  //# sourceMappingURL=SaveMrParkitDataTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveMrParkitDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveMrParkitDataTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SaveMrParkitDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveMrParkitDataTask.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
- import { IMrParkitGarage } from "./interfaces/IMrParkitGarage";
3
- export declare const mrParkitJsonSchema: JSONSchemaType<IMrParkitGarage[]>;
2
+ import { IMrParkitGarageWithTariff } from "./interfaces/IMrParkitGarage";
3
+ export declare const mrParkitJsonSchema: JSONSchemaType<IMrParkitGarageWithTariff[]>;
@@ -24,8 +24,35 @@ exports.mrParkitJsonSchema = {
24
24
  longitude: {
25
25
  type: "number",
26
26
  },
27
+ minReservationDuration: {
28
+ type: "number",
29
+ },
30
+ maxReservationDuration: {
31
+ type: "number",
32
+ },
33
+ pricePerHour: {
34
+ type: "number",
35
+ },
36
+ pricePerDay: {
37
+ type: "number",
38
+ },
39
+ pricePerWeekend: {
40
+ type: "number",
41
+ },
27
42
  },
28
- required: ["id", "name", "free", "address", "latitude", "longitude"],
43
+ required: [
44
+ "id",
45
+ "name",
46
+ "free",
47
+ "address",
48
+ "latitude",
49
+ "longitude",
50
+ "minReservationDuration",
51
+ "maxReservationDuration",
52
+ "pricePerHour",
53
+ "pricePerDay",
54
+ "pricePerWeekend",
55
+ ],
29
56
  },
30
57
  };
31
58
  //# sourceMappingURL=MrParkitJsonSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MrParkitJsonSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/MrParkitJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,kBAAkB,GAAsC;IACjE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE;gBACA,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,SAAS;aAClB;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;KACvE;CACJ,CAAC"}
1
+ {"version":3,"file":"MrParkitJsonSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/MrParkitJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,kBAAkB,GAAgD;IAC3E,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE;gBACA,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,SAAS;aAClB;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,QAAQ;aACjB;YACD,sBAAsB,EAAE;gBACpB,IAAI,EAAE,QAAQ;aACjB;YACD,sBAAsB,EAAE;gBACpB,IAAI,EAAE,QAAQ;aACjB;YACD,YAAY,EAAE;gBACV,IAAI,EAAE,QAAQ;aACjB;YACD,WAAW,EAAE;gBACT,IAAI,EAAE,QAAQ;aACjB;YACD,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,QAAQ,EAAE;YACN,IAAI;YACJ,MAAM;YACN,MAAM;YACN,SAAS;YACT,UAAU;YACV,WAAW;YACX,wBAAwB;YACxB,wBAAwB;YACxB,cAAc;YACd,aAAa;YACb,iBAAiB;SACpB;KACJ;CACJ,CAAC"}
@@ -6,3 +6,10 @@ export interface IMrParkitGarage {
6
6
  latitude: number;
7
7
  longitude: number;
8
8
  }
9
+ export interface IMrParkitGarageWithTariff extends IMrParkitGarage {
10
+ minReservationDuration: number;
11
+ maxReservationDuration: number;
12
+ pricePerHour: number;
13
+ pricePerDay: number;
14
+ pricePerWeekend: number;
15
+ }
@@ -6,26 +6,26 @@ Modul slouží k ukládání a poskytování informací o parkování.
6
6
 
7
7
  **Dostupní poskytovatelé**:
8
8
 
9
- - Korid (Liberec)
10
- - TSK (Praha)
11
- - IPR (Praha)
12
- - IPT/OICT
13
- - TSK (Praha) API v2
9
+ - Korid (Liberec)
10
+ - TSK (Praha)
11
+ - IPR (Praha)
12
+ - IPT/OICT
13
+ - TSK (Praha) API v2
14
14
 
15
15
  ## Vstupní data
16
16
 
17
17
  ### Data nám jsou posílána
18
18
 
19
- - Přes Permission Proxy na Input Gateway, dodavatel Korid
19
+ - Přes Permission Proxy na Input Gateway, dodavatel Korid
20
20
 
21
- - POST (/koridparkings/config) => RabbitMQ send Message `saveKoridConfToDB` ([Data example](../test/input-gateway/korid-parkings/data/korid-config.json))
22
- - POST (/koridparkings/data) => RabbitMQ send Message `saveKoridDataToDB` ([Data example](../test/input-gateway/korid-parkings/data/korid-data.json))
21
+ - POST (/koridparkings/config) => RabbitMQ send Message `saveKoridConfToDB` ([Data example](../test/input-gateway/korid-parkings/data/korid-config.json))
22
+ - POST (/koridparkings/data) => RabbitMQ send Message `saveKoridDataToDB` ([Data example](../test/input-gateway/korid-parkings/data/korid-data.json))
23
23
 
24
- - na FTP, dodavatel TSK (parkovací zóny)
24
+ - na FTP, dodavatel TSK (parkovací zóny)
25
25
 
26
- - Data poskytovatelů přes /source
27
- - slouží pro administraci a update statických hodnot k poskytovatelům parkovišť
28
- - POST (/source) => RabbitMq send Message `saveParkingSourceToDB` ([Data example](../test/input-gateway/data/parkingSourceInput.json))
26
+ - Data poskytovatelů přes /source
27
+ - slouží pro administraci a update statických hodnot k poskytovatelům parkovišť
28
+ - POST (/source) => RabbitMq send Message `saveParkingSourceToDB` ([Data example](../test/input-gateway/data/parkingSourceInput.json))
29
29
 
30
30
  ### Data aktivně stahujeme
31
31
 
@@ -43,141 +43,142 @@ Pro statické (ručně vytvořené) polygony placených parkovišť se stahuje G
43
43
  Zóny placeného stání používají 2 datové zdroje - TSK a Opendata IPR, které mají přesnější geometrii.
44
44
  Další datový zdroj zón je API TSK (CIS VHD CD API) značené jako v2
45
45
 
46
- - zdroj dat (**TSK**):
46
+ - zdroj dat (**TSK**):
47
47
 
48
- config FTPProtocolStrategy:
48
+ config FTPProtocolStrategy:
49
49
 
50
- ```
51
- filename: "Area_YYYY-MM-DD.json", // "Tarif_YYYY-MM-DD.tsv" pro tarify
52
- path: config.datasources.TSKFTPParkingZonesPath,
53
- url: {
54
- host: config.datasources.TSKFTP.host,
55
- port: config.datasources.TSKFTP.port,
56
- user: config.datasources.TSKFTP.user,
57
- password: config.datasources.TSKFTP.password,
58
- },
59
- encoding: "utf8",
50
+ ```
51
+ filename: "Area_YYYY-MM-DD.json", // "Tarif_YYYY-MM-DD.tsv" pro tarify
52
+ path: config.datasources.TSKFTPParkingZonesPath,
53
+ url: {
54
+ host: config.datasources.TSKFTP.host,
55
+ port: config.datasources.TSKFTP.port,
56
+ user: config.datasources.TSKFTP.user,
57
+ password: config.datasources.TSKFTP.password,
58
+ },
59
+ encoding: "utf8",
60
60
  ```
61
61
 
62
- - formát dat (**TSK**)
62
+ - formát dat (**TSK**)
63
63
 
64
- - protokol: ftp
65
- - datový typ:
66
- - lokace: json
67
- - tarify: tsv
68
- - validační schéma:
69
- - lokace: json
70
- - tarify: tsv
71
- - validační schéma:
72
- - lokace [datasourceGeoJsonSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
73
- - tarify [datasourceTariffJsonSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
74
- - příklad vstupních dat:
75
- - [lokace](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/ipr-parking-data-input.json)
76
- - [tarify (tsv->json)](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/tsk-parking-tariff-data-input.json)
64
+ - protokol: ftp
65
+ - datový typ:
66
+ - lokace: json
67
+ - tarify: tsv
68
+ - validační schéma:
69
+ - lokace: json
70
+ - tarify: tsv
71
+ - validační schéma:
72
+ - lokace [datasourceGeoJsonSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
73
+ - tarify [datasourceTariffJsonSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
74
+ - příklad vstupních dat:
75
+ - [lokace](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/ipr-parking-data-input.json)
76
+ - [tarify (tsv->json)](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/tsk-parking-tariff-data-input.json)
77
77
 
78
- - zdroj dat (**IPR**):
78
+ - zdroj dat (**IPR**):
79
79
 
80
- config HTTPProtocolStrategy:
80
+ config HTTPProtocolStrategy:
81
81
 
82
- ```
83
- headers: {},
84
- method: "GET",
85
- url: config.datasources.ParkingZones,
86
- ```
82
+ ```
83
+ headers: {},
84
+ method: "GET",
85
+ url: config.datasources.ParkingZones,
86
+ ```
87
87
 
88
- - formát dat (**IPR**)
88
+ - formát dat (**IPR**)
89
89
 
90
- - protokol: http
91
- - datový typ: json
92
- - validační schéma: [datasourceIPRJSONSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
93
- - příklad vstupních dat
90
+ - protokol: http
91
+ - datový typ: json
92
+ - validační schéma: [datasourceIPRJSONSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/index.ts)
93
+ - příklad vstupních dat
94
94
 
95
- - frekvence stahování
95
+ - frekvence stahování
96
96
 
97
- - cron definice:
98
- - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
97
+ - cron definice:
98
+ - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
99
99
 
100
- - název rabbitmq fronty
101
- - dataplatform.parkings.saveParkingZonesPrague
100
+ - název rabbitmq fronty
102
101
 
103
- - zdroj dat (**TSK v2**):
102
+ - dataplatform.parkings.saveParkingZonesPrague
104
103
 
105
- config HTTPProtocolStrategy:
104
+ - zdroj dat (**TSK v2**):
106
105
 
107
- ```
108
- headers: {
109
- Authorization: `Basic jmeno:heslo`,
110
- },
111
- method: "GET",
112
- url: this.config.datasources.parking.TskApiBaseUrl + this.config.datasources.parking.TskApiEndpoints[endpoint],
113
- ```
106
+ config HTTPProtocolStrategy:
114
107
 
115
- - formát dat (**TSK v2**)
108
+ ```
109
+ headers: {
110
+ Authorization: `Basic jmeno:heslo`,
111
+ },
112
+ method: "GET",
113
+ url: this.config.datasources.parking.TskApiBaseUrl + this.config.datasources.parking.TskApiEndpoints[endpoint],
114
+ ```
116
115
 
117
- - zdroj používá 4 datové zdroje: sections, sectionList level 251 (zóny plac. stání) a level 253 (ZTP), tariffs
118
- - protokol: http
119
- - datový typ: json
120
- - validační schéma sections: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingSectionSchema.ts
121
- - validační schéma sections level (251 i 253): https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingSectionLevelSchema.ts
122
- - validační schéma tarify: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingZoneTariffSchema.ts
116
+ - formát dat (**TSK v2**)
123
117
 
124
- - transformace a ukládání:
125
- - sections => parkings
126
- - section levels => parkings_location
127
- - tariffs => parkings_tariffs
118
+ - zdroj používá 4 datové zdroje: sections, sectionList level 251 (zóny plac. stání) a level 253 (ZTP), tariffs
119
+ - protokol: http
120
+ - datový typ: json
121
+ - validační schéma sections: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingSectionSchema.ts
122
+ - validační schéma sections level (251 i 253): https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingSectionLevelSchema.ts
123
+ - validační schéma tarify: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingZoneTariffSchema.ts
128
124
 
129
- - frekvence stahování
125
+ - transformace a ukládání:
126
+ - sections => parkings
127
+ - section levels => parkings_location
128
+ - tariffs => parkings_tariffs
130
129
 
131
- - cron definice:
132
- - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
130
+ - frekvence stahování
131
+
132
+ - cron definice:
133
+ - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
133
134
 
134
135
  #### Parkovací automaty TSK
135
136
 
136
- - zdroj dat (**TSK v2**) je stejný, jako pro zóny, liší se jen konec URL: "ParkMachine/list"
137
+ - zdroj dat (**TSK v2**) je stejný, jako pro zóny, liší se jen konec URL: "ParkMachine/list"
137
138
 
138
- - formát dat (**TSK v2**)
139
+ - formát dat (**TSK v2**)
139
140
 
140
- - protokol: http
141
- - datový typ: json
142
- - validační schéma: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingMachinesSchema.ts
141
+ - protokol: http
142
+ - datový typ: json
143
+ - validační schéma: https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/TskParkingMachinesSchema.ts
143
144
 
144
- - frekvence stahování
145
+ - frekvence stahování
145
146
 
146
- - cron definice:
147
- - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
147
+ - cron definice:
148
+ - cron.dataplatform.parkings.saveParkingZonesPrague (`0 0 4 * * *`)
148
149
 
149
- - cílová tabulka: `parking_machines`
150
+ - cílová tabulka: `parking_machines`
150
151
 
151
152
  #### Placené parkoviště
152
153
 
153
- - zdroj dat (**TSK**):
154
+ - zdroj dat (**TSK**):
154
155
 
155
- config HTTPProtocolStrategy:
156
+ config HTTPProtocolStrategy:
156
157
 
157
- ```
158
- headers: {},
159
- method: "GET",
160
- url: config.datasources.TSKParkings,
158
+ ```
159
+ headers: {},
160
+ method: "GET",
161
+ url: config.datasources.TSKParkings,
161
162
  ```
162
163
 
163
- + filter `lastUpdated` ne starší než 48h
164
+ - filter `lastUpdated` ne starší než 48h
164
165
 
165
- - formát dat
166
- - protokol: http
167
- - datový typ: json
168
- - [validační schéma: InputParkingLotsSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/InputParkingLotsSchema.ts)
169
- - [příklad vstupních dat](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/parking-lots-data-input.json)
166
+ - formát dat
170
167
 
168
+ - protokol: http
169
+ - datový typ: json
170
+ - [validační schéma: InputParkingLotsSchema](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/schema-definitions/datasources/InputParkingLotsSchema.ts)
171
+ - [příklad vstupních dat](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/test/integration-engine/data/parking-lots-data-input.json)
171
172
 
172
- - frekvence stahování
173
+ - frekvence stahování
173
174
 
174
- - cron definice:
175
- - cron.dataplatform.parkings.saveParkingLotsPrague (`0 0 */6 * * *`)
176
- - cron.dataplatform.parkings.saveParkingLotsMeasurementsPrague (`0 */5 * * * *`)
175
+ - cron definice:
176
+ - cron.dataplatform.parkings.saveParkingLotsPrague (`0 0 */6 * * *`)
177
+ - cron.dataplatform.parkings.saveParkingLotsMeasurementsPrague (`0 */5 * * * *`)
177
178
 
178
- - název rabbitmq fronty
179
- - dataplatform.parkings.saveParkingLotsPrague
180
- - dataplatform.parkings.saveParkingLotsMeasurementsPrague
179
+ - název rabbitmq fronty
180
+ - dataplatform.parkings.saveParkingLotsPrague
181
+ - dataplatform.parkings.saveParkingLotsMeasurementsPrague
181
182
 
182
183
  Parkoviště, která nemají tarif (je null), mohou dostat tarif ze statického zdroje IPT.
183
184
 
@@ -195,6 +196,7 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
195
196
  - datový typ: json
196
197
  - validační schéma: [mrParkitJsonSchema](../src/schema-definitions/datasources/MrParkitJsonSchema.ts)
197
198
  - příklad vstupnich dat: [InputDataFixture](../test/integration-engine/data/MrParkitInputDataFixture.ts)
199
+ - tarify z datového zdroje jsou namapované na tabulku parkings_tariffs, data ["mrParkitTransformation"](../test/integration-engine/data/MrParkitGarageTransformation.ts)
198
200
  - frekvence stahování
199
201
  - cron definice:
200
202
  - cron.dataplatform.parkings.saveMrParkitData
@@ -209,32 +211,34 @@ Při transformaci dat lokací data obohacujeme o adresu parkoviště, která vyc
209
211
  Parkoviště, která nemají tarif (je null), mohou dostat tarif ze statického zdroje IPT.
210
212
  Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje IPT (výměna bodu za multipolygon). Původní bod je uložen do centroidu.
211
213
 
212
- ### Worker *NewParkingsWorker*
214
+ ### Worker _NewParkingsWorker_
213
215
 
214
- #### Task *SaveParkingZonesPrague*
216
+ #### Task _SaveParkingZonesPrague_
215
217
 
216
- - vstupní rabbitmq fronta
217
- - název: `dataplatform.parkings.saveParkingZonesPrague`
218
- - bez parametrů
219
- - datové zdroje
220
- - dataSourceTSK (ftp),
221
- - dataSourceTariffTSK (ftp),
222
- - dataSourceIPR
223
- - transformace
218
+ - vstupní rabbitmq fronta
219
+ - název: `dataplatform.parkings.saveParkingZonesPrague`
220
+ - bez parametrů
221
+ - datové zdroje
222
+ - dataSourceTSK (ftp),
223
+ - dataSourceTariffTSK (ftp),
224
+ - dataSourceIPR
225
+ - transformace
224
226
 
225
227
  Data pro `parkings` - TSK zdroj rozšiřujeme o geodata z Opendat IPR (geometrie stejné zóny mergujeme v jednu), které mají přesnější polohu parkovišť. Kde jsou k dispozici, nahrazujeme geometrii TSK.
226
228
  Data pro `parkings_location` - IPR zdroj (původní detailní geometrie) rozšiřujeme o geodata z TSK, pouze kdyžkteré mají přesnější polohu parkovišť. Kde jsou k dispozici, nahrazujeme geometrii TSK.
227
- - [TSKParkingTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/TSKParkingTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
228
- - [TSKParkingTariffTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/TSKParkingTariffTransformation.ts) - mapování pro `parkingsTariffsModel`
229
- - [IPRParkingTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/IPRParkingTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
230
- - data modely
231
- - parkingsModel -> (schéma public) `parkings`
232
- - parkingsLocationModel -> (schéma public) `parkings_location` (detailnější geometrie, která vychází z položek IPRu)
233
- - parkingsTariffsModel -> (schéma public) `parkings_tariffs`
234
- - Důležité informace pro zpracování dat ze zdroje TariffTSK
235
- - U parkovišť ZPS pod správou TSK nastaveno ve payment_method hodnotu `litacka`
236
- - Další zpracování TariffTSK
237
- - před uložením jsou ceníky zkontrolovány podle pravidel: `ZeroMaxParkingTime`, `MaxChargeIterationsRule`, `MaxPriceRule`. Pokud jedno z pravidel není splněno tak se všechny položky se stejným cTariff přeskočí a tudíž neuloží do databáze. Záznam o tom, které položky neprošly kontrolou se uloží do tabulky `parkings_business_errors`
229
+
230
+ - [TSKParkingTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/TSKParkingTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
231
+ - [TSKParkingTariffTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/TSKParkingTariffTransformation.ts) - mapování pro `parkingsTariffsModel`
232
+ - [IPRParkingTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/IPRParkingTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
233
+
234
+ - data modely
235
+ - parkingsModel -> (schéma public) `parkings`
236
+ - parkingsLocationModel -> (schéma public) `parkings_location` (detailnější geometrie, která vychází z položek IPRu)
237
+ - parkingsTariffsModel -> (schéma public) `parkings_tariffs`
238
+ - Důležité informace pro zpracování dat ze zdroje TariffTSK
239
+ - U parkovišť ZPS pod správou TSK nastaveno ve payment_method hodnotu `litacka`
240
+ - Další zpracování TariffTSK
241
+ - před uložením jsou ceníky zkontrolovány podle pravidel: `ZeroMaxParkingTime`, `MaxChargeIterationsRule`, `MaxPriceRule`. Pokud jedno z pravidel není splněno tak se všechny položky se stejným cTariff přeskočí a tudíž neuloží do databáze. Záznam o tom, které položky neprošly kontrolou se uloží do tabulky `parkings_business_errors`
238
242
 
239
243
  #### Task _SaveMrParkitData_
240
244
 
@@ -250,114 +254,113 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
250
254
  - parkingsLocationModel -> (schéma parkings) `parkings_location`
251
255
  - parkingsMeasurementsModel -> (schéma parkings) `parkings_measurements`
252
256
 
253
- ### Worker *ParkingsWorker*
254
-
255
- #### *saveParkingLotsPrague*
256
-
257
- - vstupní rabbitmq fronta
258
- - název: `dataplatform.parkings.saveParkingLotsPrague`
259
- - bez parametrů
260
- - datové zdroje
261
- - dataSource (http),
262
- - statický IPT zdroj (http),
263
- - transformace
264
- - [ParkingLotsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/ParkingLotsTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
265
- - data modely
266
- - parkingsModel -> (schéma public) `parkings`
267
- - důležité informace pro zpracování dat ze zdroje TSKParkings
268
- - V budoucnu přibydou další hodnoty parking_type: `park_sharing` pro službu Mr. Parkit atp.
269
- - Parametr `zone_type` je povinný pokud je `parking_type == on_street`. Jinak má být `NULL`
270
- - `zone_free` - placeholder pro Zóny neplaceného stání (zone_type), které se budou integrovat v budoucnu
271
-
272
-
273
- #### *saveParkingLotsMeasurementsPrague*
274
-
275
- - vstupní rabbitmq fronta
276
- - název: `dataplatform.parkings.saveParkingLotsMeasurementsPrague`
277
- - bez parametrů
278
- - datové zdroje
279
- - dataSource (http),
280
- - transformace
281
- - [ParkingLotsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/ParkingLotsTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
282
- - data modely
283
- - parkingsMeasurementsModel -> (schéma public) `parkings_measurements_part`
284
- - parkingsMeasurementsActualModel -> (schéma public) `parkings_measurements_actual`
285
-
286
- Všechny historické údaje jsou uloženy v tabulce `parkings_measurements_part`. Aktualizujeme pouze aktuální údaje v tabulce `parkings_measurements_actual`.
287
-
288
-
289
- #### *saveKoridConfToDB*
290
-
291
- - vstupní rabbitmq fronta
292
- - název: `dataplatform.parkings.saveKoridConfToDB`
293
- - bez parametrů
294
- - datové zdroje
295
- - IG
296
- - transformace
297
- - [KoridParkingConfigTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/KoridParkingConfigTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
298
- - data modely
299
- - parkingsModel -> `parkings`
300
- - ParkingsLocationRepository -> `parkings_location`
301
-
302
- #### *saveKoridDataToDB*
303
-
304
- - vstupní rabbitmq fronta
305
- - název: `dataplatform.parkings.saveKoridDataToDB`
306
- - bez parametrů
307
- - datové zdroje
308
- - IG
309
- - transformace
310
- - [KoridParkingDataTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/KoridParkingDataTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
311
- - data modely
312
- - parkingsMeasurementsModel -> `parkings_measurements_part`
313
- - parkingsMeasurementsActualModel -> `parkings_measurements_actual`
257
+ ### Worker _ParkingsWorker_
258
+
259
+ #### _saveParkingLotsPrague_
260
+
261
+ - vstupní rabbitmq fronta
262
+ - název: `dataplatform.parkings.saveParkingLotsPrague`
263
+ - bez parametrů
264
+ - datové zdroje
265
+ - dataSource (http),
266
+ - statický IPT zdroj (http),
267
+ - transformace
268
+ - [ParkingLotsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/ParkingLotsTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
269
+ - data modely
270
+ - parkingsModel -> (schéma public) `parkings`
271
+ - důležité informace pro zpracování dat ze zdroje TSKParkings
272
+ - V budoucnu přibydou další hodnoty parking_type: `park_sharing` pro službu Mr. Parkit atp.
273
+ - Parametr `zone_type` je povinný pokud je `parking_type == on_street`. Jinak má být `NULL`
274
+ - `zone_free` - placeholder pro Zóny neplaceného stání (zone_type), které se budou integrovat v budoucnu
275
+
276
+ #### _saveParkingLotsMeasurementsPrague_
277
+
278
+ - vstupní rabbitmq fronta
279
+ - název: `dataplatform.parkings.saveParkingLotsMeasurementsPrague`
280
+ - bez parametrů
281
+ - datové zdroje
282
+ - dataSource (http),
283
+ - transformace
284
+ - [ParkingLotsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/ParkingLotsTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
285
+ - data modely
286
+
287
+ - parkingsMeasurementsModel -> (schéma public) `parkings_measurements_part`
288
+ - parkingsMeasurementsActualModel -> (schéma public) `parkings_measurements_actual`
289
+
290
+ Všechny historické údaje jsou uloženy v tabulce `parkings_measurements_part`. Aktualizujeme pouze aktuální údaje v tabulce `parkings_measurements_actual`.
291
+
292
+ #### _saveKoridConfToDB_
293
+
294
+ - vstupní rabbitmq fronta
295
+ - název: `dataplatform.parkings.saveKoridConfToDB`
296
+ - bez parametrů
297
+ - datové zdroje
298
+ - IG
299
+ - transformace
300
+ - [KoridParkingConfigTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/KoridParkingConfigTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
301
+ - data modely
302
+ - parkingsModel -> `parkings`
303
+ - ParkingsLocationRepository -> `parkings_location`
304
+
305
+ #### _saveKoridDataToDB_
306
+
307
+ - vstupní rabbitmq fronta
308
+ - název: `dataplatform.parkings.saveKoridDataToDB`
309
+ - bez parametrů
310
+ - datové zdroje
311
+ - IG
312
+ - transformace
313
+ - [KoridParkingDataTransformation](https://gitlab.com/operator-ict/golemio/code/modules/parkings/-/blob/development/src/integration-engine/KoridParkingDataTransformation.ts) - mapování pro `parkingsModel` a `parkingsLocationModel`
314
+ - data modely
315
+ - parkingsMeasurementsModel -> `parkings_measurements_part`
316
+ - parkingsMeasurementsActualModel -> `parkings_measurements_actual`
314
317
 
315
318
  ### ZtpParkingZonesWorker
316
319
 
317
- #### *updateZtpParkings*
318
-
319
- - vstupní rabbitmq fronta
320
- - název: `dataplatform.parkings.updateZtpParkings`
321
- - bez parametrů
322
- - datové zdroje
323
- - JSON stahovaný z IPR
324
- - frekvence stahování: denně v 5 ráno (`0 5 */1 * *`)
325
- - transformace
326
- Mapování `IZtpParkingJsonFeature` na `IParking` + doplnění o adresu.
327
- Získává se z Photon API metodou `GeocodeApi.getAddressByLatLngFromPhoton` v modulu Core.
328
- - data modely
329
- - parkingsModel -> (schéma public) `parkings`
330
-
331
- ### Worker *StaticTariffsWorker* a *UpdateStaticTariffsTask*
332
-
333
- - vstupní rabbitmq fronta:
334
- - název: `updateStaticTariffs`
335
- - bez parametrů
336
- - datový zdroj
337
- - JSON stahovaný ze zdroje IPT
338
- - [příklad vstupních dat](../test/integration-engine/data/StaticParkingTariffsData.json)
339
- - transformace
340
- - mapování na `IParkingTariff`
341
- - `relations` mapuje `StaticTariffsMatcher` tak, že do příslušného `IParking` doplní id tarifu, pokud je toto null
342
- - data modely
343
- - parkingsModel -> (schéma public) `parkings`
344
- - parkingTariffsmodel -> (schéma public) `parkings_tariffs`
320
+ #### _updateZtpParkings_
321
+
322
+ - vstupní rabbitmq fronta
323
+ - název: `dataplatform.parkings.updateZtpParkings`
324
+ - bez parametrů
325
+ - datové zdroje
326
+ - JSON stahovaný z IPR
327
+ - frekvence stahování: denně v 5 ráno (`0 5 */1 * *`)
328
+ - transformace
329
+ Mapování `IZtpParkingJsonFeature` na `IParking` + doplnění o adresu.
330
+ Získává se z Photon API metodou `GeocodeApi.getAddressByLatLngFromPhoton` v modulu Core.
331
+ - data modely
332
+ - parkingsModel -> (schéma public) `parkings`
333
+
334
+ ### Worker _StaticTariffsWorker_ a _UpdateStaticTariffsTask_
335
+
336
+ - vstupní rabbitmq fronta:
337
+ - název: `updateStaticTariffs`
338
+ - bez parametrů
339
+ - datový zdroj
340
+ - JSON stahovaný ze zdroje IPT
341
+ - [příklad vstupních dat](../test/integration-engine/data/StaticParkingTariffsData.json)
342
+ - transformace
343
+ - mapování na `IParkingTariff`
344
+ - `relations` mapuje `StaticTariffsMatcher` tak, že do příslušného `IParking` doplní id tarifu, pokud je toto null
345
+ - data modely
346
+ - parkingsModel -> (schéma public) `parkings`
347
+ - parkingTariffsmodel -> (schéma public) `parkings_tariffs`
345
348
 
346
349
  ### Worker ParkingSourcesWorker
347
350
 
348
- - ukládá data z queue `saveParkingSourceToDB` do db
349
- - zdroj je IG přes `ParkingSourcesRouter`
350
- - transformace není
351
+ - ukládá data z queue `saveParkingSourceToDB` do db
352
+ - zdroj je IG přes `ParkingSourcesRouter`
353
+ - transformace není
351
354
 
352
355
  ## Uložení dat
353
356
 
354
- - typ databáze
355
- - PSQL
356
- - databázové schéma
357
- - ![parkings er diagram](assets/parkings_erd.png)
358
- - retence dat
359
- - `parkingsModel`, `parkingsLocationModel`, `parkingsMeasurementsActualModel`, `parkingsTariffsModel` update
360
- - `parkingsMeasurementsModel` historizace bez promazávání
357
+ - typ databáze
358
+ - PSQL
359
+ - databázové schéma
360
+ - ![parkings er diagram](assets/parkings_erd.png)
361
+ - retence dat
362
+ - `parkingsModel`, `parkingsLocationModel`, `parkingsMeasurementsActualModel`, `parkingsTariffsModel` update
363
+ - `parkingsMeasurementsModel` historizace bez promazávání
361
364
 
362
365
  ## Output API
363
366
 
@@ -386,10 +389,10 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
386
389
 
387
390
  #### _/v2/parking/detail/:id_
388
391
 
389
- - zdrojové tabulky
390
- - parkings
391
- - parkings_location
392
- - detailnejší geometrie, vychází z OpenData IPR a doplňuje parametry z TSK (ftp)
392
+ - zdrojové tabulky
393
+ - parkings
394
+ - parkings_location
395
+ - detailnejší geometrie, vychází z OpenData IPR a doplňuje parametry z TSK (ftp)
393
396
 
394
397
  #### _/v2/parking/tariffs/_
395
398
 
@@ -440,15 +443,15 @@ _:warning: Deprecated, využijte /parking/measurements_
440
443
  - zdrojové tabulky
441
444
  - parkings
442
445
  - parkings_location
443
- - added `special_access` column with possible values: `for_all, disabled, charging, parent, delivery, customer, resident, bus, designated, truck,motorcycle, RV`
446
+ - added `special_access` column with possible values: `for_all, disabled, charging, parent, delivery, customer, resident, bus, designated, truck,motorcycle, RV`
444
447
  - zatím vytvořeno pro nové API od TSK další budou následovat
445
448
  - nový formát výstupu viz open api dokumentace
446
449
 
447
450
  #### _/v3/parking/:id_
448
451
 
449
- - zdrojové tabulky
450
- - parkings
451
- - parkings_location
452
+ - zdrojové tabulky
453
+ - parkings
454
+ - parkings_location
452
455
 
453
456
  #### _/v3/parking-tariff_
454
457
 
@@ -456,10 +459,9 @@ _:warning: Deprecated, využijte /parking/measurements_
456
459
  - parkings_tariffs
457
460
  - na výstupu děleno do charge bands a charges
458
461
  - pod jedním tariffem může být více charge bands ~ každý řádek se stejným `tariff_id` je jeden charge band
459
- - `valid_from` a `valid_to` se vztahují k charge band se vypočítá jako min a maximum z `valid_from` a `valid_to` ze všech chargů
462
+ - `valid_from` a `valid_to` se vztahují k charge band se vypočítá jako min a maximum z `valid_from` a `valid_to` ze všech chargů
460
463
  - pod jedním charge band může být více charges pozná se podle `charge_band_name`
461
464
 
462
-
463
465
  #### _/v3/parking-tariff/:id_
464
466
 
465
467
  - zdrojové tabulky
@@ -471,7 +473,7 @@ _:warning: Deprecated, využijte /parking/measurements_
471
473
  - zdrojové tabulky
472
474
  - parkings_machines
473
475
  - seznam parkovacích automatů s geometrií
474
- - `type` nabývá hodnot: `payment_machine, info_box
476
+ - `type` nabývá hodnot: `payment_machine, info_box
475
477
 
476
478
  #### _/v3/parking-machines/:id_
477
479
 
@@ -682,6 +682,7 @@ paths:
682
682
  type: string
683
683
  enum:
684
684
  - tsk_v2
685
+ - mr_parkit
685
686
  example: tsk_v2
686
687
  description: 'Filter by primary source. Use with square brackets `primarySource[]`'
687
688
  - name: primarySourceId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.7.3",
3
+ "version": "1.7.4-dev.1107156277",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",