Calculate door lock charges
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.renameColumn('bookingReservations', 'resource', 'resourceId'),
|
||||
queryInterface.renameColumn('doorLockIncidents', 'resource', 'resourceId'),
|
||||
]);
|
||||
});
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.renameColumn('doorLockIncidents', 'resourceId', 'resource'),
|
||||
queryInterface.renameColumn('bookingReservations', 'resourceId', 'resource'),
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.addColumn('bookingReservations', 'timezone', {
|
||||
type: Sequelize.TEXT,
|
||||
after: 'end'
|
||||
}),
|
||||
queryInterface.addColumn('bookingReservations', 'canceled', {
|
||||
type: Sequelize.BOOLEAN,
|
||||
after: 'timezone'
|
||||
})
|
||||
]);
|
||||
});
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.removeColumn('bookingReservations', 'canceled'),
|
||||
queryInterface.removeColumn('bookingReservations', 'timezone')
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.createTable('officeResourceMappings', {
|
||||
id: {
|
||||
allowNull: false,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
type: Sequelize.INTEGER
|
||||
},
|
||||
officeSlug: {
|
||||
allowNull: false,
|
||||
type: Sequelize.TEXT,
|
||||
},
|
||||
officeId: {
|
||||
allowNull: false,
|
||||
type: Sequelize.TEXT,
|
||||
},
|
||||
resourceSlug: {
|
||||
allowNull: false,
|
||||
type: Sequelize.TEXT,
|
||||
},
|
||||
resourceId: {
|
||||
allowNull: false,
|
||||
type: Sequelize.TEXT,
|
||||
},
|
||||
createdAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
},
|
||||
updatedAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
}
|
||||
});
|
||||
},
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.dropTable('officeResourceMappings');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.addColumn('doorLockEvents', 'resourceId', {
|
||||
type: Sequelize.TEXT,
|
||||
after: 'memberId',
|
||||
});
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.removeColumn('doorLockEvents', 'resourceId');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.addColumn('bookingReservations', 'officeId', {
|
||||
type: Sequelize.TEXT,
|
||||
after: 'memberId',
|
||||
});
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.removeColumn('bookingReservations', 'officeId');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.renameTable('doorLockIncidents', 'unscheduledIncidents');
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.renameTable('unscheduledIncidents', 'doorLockIncidents');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.removeColumn('unscheduledIncidents', 'chargeType'),
|
||||
queryInterface.addColumn('unscheduledIncidents', 'chargePrice', {
|
||||
type: Sequelize.FLOAT,
|
||||
after: 'doorLockEventTimestamp'
|
||||
}),
|
||||
queryInterface.addColumn('unscheduledIncidents', 'timeIntervalsToCharge', {
|
||||
type: Sequelize.INTEGER,
|
||||
after: 'chargePrice'
|
||||
}),
|
||||
queryInterface.renameColumn('unscheduledIncidents', 'chargeFee', 'totalChargeFee')
|
||||
]);
|
||||
});
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.sequelize.transaction((t) => {
|
||||
return Promise.all([
|
||||
queryInterface.renameColumn('unscheduledIncidents', 'totalChargeFee', 'chargeFee'),
|
||||
queryInterface.removeColumn('unscheduledIncidents', 'timeIntervalsToCharge'),
|
||||
queryInterface.removeColumn('unscheduledIncidents', 'chargePrice'),
|
||||
queryInterface.addColumn('unscheduledIncidents', 'chargeType', {
|
||||
type: Sequelize.ENUM,
|
||||
values: ['unlocked', 'unscheduled'],
|
||||
after: 'doorLockEventTimestamp'
|
||||
}),
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
35
migrations/20190612125150-add-unlocked-incidents-table.js
Normal file
35
migrations/20190612125150-add-unlocked-incidents-table.js
Normal file
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.createTable('unlockedIncidents', {
|
||||
id: {
|
||||
allowNull: false,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
type: Sequelize.INTEGER
|
||||
},
|
||||
reservationId: Sequelize.TEXT,
|
||||
memberId: Sequelize.TEXT,
|
||||
resourceId: Sequelize.TEXT,
|
||||
bookingStart: Sequelize.DATE,
|
||||
bookingEnd: Sequelize.DATE,
|
||||
incidentLevel: {
|
||||
type: Sequelize.ENUM,
|
||||
values: ['UNLOCKED_0', 'UNLOCKED_1', 'UNLOCKED_2', 'UNLOCKED_3', 'UNLOCKED_4', 'UNLOCKED_5']
|
||||
},
|
||||
incidentLevelPrice: Sequelize.FLOAT,
|
||||
createdAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
},
|
||||
updatedAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
}
|
||||
});
|
||||
},
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.dropTable('doorLockIncidents');
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user