Calculate door lock charges

This commit is contained in:
Senad Uka
2019-06-14 17:41:09 +02:00
parent 8e4eb0cf1f
commit 393e9b8aec
37 changed files with 1736 additions and 66 deletions

View File

@@ -4,9 +4,13 @@ module.exports = (sequelize, DataTypes) => {
const bookingReservation = sequelize.define('bookingReservation', {
reservationId: DataTypes.TEXT,
memberId: DataTypes.TEXT,
resource: DataTypes.TEXT,
officeId: DataTypes.TEXT,
resourceId: DataTypes.TEXT,
start: DataTypes.DATE,
end: DataTypes.DATE,
timezone: DataTypes.TEXT,
canceled: DataTypes.BOOLEAN,
}, {});
bookingReservation.associate = function(models) {
// associations can be defined here

View File

@@ -1,15 +1,16 @@
'use strict';
const { USER_LOCKED_DOOR, USER_UNLOCKED_DOOR } = require('../constants/constants');
const { doorLockEvents } = require('../constants/constants');
module.exports = (sequelize, DataTypes) => {
const doorLockEvent = sequelize.define('doorLockEvent', {
memberName: DataTypes.TEXT,
memberNumber: DataTypes.INTEGER,
memberId: DataTypes.TEXT,
resourceId: DataTypes.TEXT,
event: {
type: DataTypes.ENUM,
values: [USER_LOCKED_DOOR, USER_UNLOCKED_DOOR]
values: [doorLockEvents.USER_LOCKED, doorLockEvents.USER_UNLOCKED]
},
timestamp: DataTypes.DATE,
}, {});

View File

@@ -0,0 +1,14 @@
'use strict';
module.exports = (sequelize, DataTypes) => {
const officeResourceMapping = sequelize.define('officeResourceMapping', {
officeSlug: DataTypes.TEXT,
officeId: DataTypes.TEXT,
resourceSlug: DataTypes.TEXT,
resourceId: DataTypes.TEXT,
}, {});
officeResourceMapping.associate = function(models) {
// associations can be defined here
};
return officeResourceMapping;
};

View File

@@ -0,0 +1,29 @@
'use strict';
const { unlockedIncidentLevelsPrices } = require('../constants/constants');
module.exports = (sequelize, DataTypes) => {
const unlockedIncident = sequelize.define('unlockedIncident', {
reservationId: DataTypes.TEXT,
memberId: DataTypes.TEXT,
resourceId: DataTypes.TEXT,
bookingStart: DataTypes.DATE,
bookingEnd: DataTypes.DATE,
incidentLevel: {
type: DataTypes.ENUM,
values: [
unlockedIncidentLevelsPrices.UNLOCKED_0.title,
unlockedIncidentLevelsPrices.UNLOCKED_1.title,
unlockedIncidentLevelsPrices.UNLOCKED_2.title,
unlockedIncidentLevelsPrices.UNLOCKED_3.title,
unlockedIncidentLevelsPrices.UNLOCKED_4.title,
unlockedIncidentLevelsPrices.UNLOCKED_5.title,
]
},
incidentLevelPrice: DataTypes.FLOAT,
}, {});
unlockedIncident.associate = function(models) {
// associations can be defined here
};
return unlockedIncident;
};

View File

@@ -0,0 +1,25 @@
'use strict';
const { doorLockEvents } = require('../constants/constants');
module.exports = (sequelize, DataTypes) => {
const unscheduledIncident = sequelize.define('unscheduledIncident', {
reservationId: DataTypes.TEXT,
memberId: DataTypes.TEXT,
resourceId: DataTypes.TEXT,
bookingStart: DataTypes.DATE,
bookingEnd: DataTypes.DATE,
doorLockEventTimestamp: DataTypes.DATE,
doorLockEventType: {
type: DataTypes.ENUM,
values: [doorLockEvents.USER_LOCKED, doorLockEvents.USER_UNLOCKED]
},
chargePrice: DataTypes.FLOAT,
timeIntervalsToCharge: DataTypes.INTEGER,
totalChargeFee: DataTypes.FLOAT,
}, {});
unscheduledIncident.associate = function(models) {
// associations can be defined here
};
return unscheduledIncident;
};