@golemio/parkings
Version:
Golemio Parkings Module
30 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AverageOccupancyRepository = void 0;
const _sch_1 = require("../../schema-definitions");
const ParkingAverageOccupancyModel_1 = require("../../schema-definitions/models/ParkingAverageOccupancyModel");
const models_1 = require("@golemio/core/dist/integration-engine/models");
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
class AverageOccupancyRepository extends models_1.PostgresModel {
constructor() {
super("AverageOccupancyRepository", {
pgTableName: ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.tableName,
pgSchema: _sch_1.Parkings.pgSchema,
outputSequelizeAttributes: ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.attributeModel,
savingType: "insertOnly",
}, new golemio_validator_1.JSONSchemaValidator("AverageOccupancyRepository", {}));
}
/**
* Trigger calculate_average_occupancy function to calculate occupancy delta
* since last update and add it to average in `parkings_average_occupancy`.
*/
async calculateAverageOccupancy() {
await this.sequelizeModel.sequelize.query(`CALL ${_sch_1.Parkings.pgSchema}.calculate_average_occupancy()`, {
plain: true,
type: sequelize_1.QueryTypes.SELECT,
});
}
}
exports.AverageOccupancyRepository = AverageOccupancyRepository;
//# sourceMappingURL=AverageOccupancyRepository.js.map