From e6054824a6cf2b4a4255dd11be18dbeef75df3bf Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Mon, 18 Nov 2019 22:40:42 +0100 Subject: [PATCH] add new fields to the search request table and model --- ...ditional-fields-to-searchRequests-table.js | 64 +++++++++++++++++++ app/models/searchRequest.js | 14 +++- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 app/migrations/20191118105541-add-additional-fields-to-searchRequests-table.js diff --git a/app/migrations/20191118105541-add-additional-fields-to-searchRequests-table.js b/app/migrations/20191118105541-add-additional-fields-to-searchRequests-table.js new file mode 100644 index 0000000..0deaa9b --- /dev/null +++ b/app/migrations/20191118105541-add-additional-fields-to-searchRequests-table.js @@ -0,0 +1,64 @@ +"use strict"; +const { ACCESS_ROAD_TYPE, HEATING_TYPE } = require("../common/enums"); + +module.exports = { + up: (queryInterface, Sequelize) => { + return Promise.all([ + queryInterface.addColumn("SearchRequests", "includeIncompleteAds", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("SearchRequests", "balcony", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("SearchRequests", "newBuilding", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("SearchRequests", "elevator", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("SearchRequests", "numberOfRoomsMin", { + type: Sequelize.REAL + }), + queryInterface.addColumn("SearchRequests", "numberOfRoomsMax", { + type: Sequelize.REAL + }), + queryInterface.addColumn("SearchRequests", "numberOfFloorsMin", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("SearchRequests", "numberOfFloorsMax", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("SearchRequests", "floorMin", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("SearchRequests", "floorMax", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("SearchRequests", "accessRoadType", { + type: Sequelize.TEXT, + defaultValue: ACCESS_ROAD_TYPE.ANY.id + }), + queryInterface.addColumn("SearchRequests", "heatingType", { + type: Sequelize.TEXT, + defaultValue: HEATING_TYPE.ANY.id + }) + ]); + }, + + down: (queryInterface, Sequelize) => { + return Promise.all([ + queryInterface.removeColumn("SearchRequests", "includeIncompleteAds"), + queryInterface.removeColumn("SearchRequests", "balcony"), + queryInterface.removeColumn("SearchRequests", "newBuilding"), + queryInterface.removeColumn("SearchRequests", "elevator"), + queryInterface.removeColumn("SearchRequests", "numberOfRoomsMin"), + queryInterface.removeColumn("SearchRequests", "numberOfRoomsMax"), + queryInterface.removeColumn("SearchRequests", "numberOfFloorsMin"), + queryInterface.removeColumn("SearchRequests", "numberOfFloorsMax"), + queryInterface.removeColumn("SearchRequests", "floorMin"), + queryInterface.removeColumn("SearchRequests", "floorMax"), + queryInterface.removeColumn("SearchRequests", "accessRoadType"), + queryInterface.removeColumn("SearchRequests", "heatingType") + ]); + } +}; diff --git a/app/models/searchRequest.js b/app/models/searchRequest.js index b1fd229..8a04593 100644 --- a/app/models/searchRequest.js +++ b/app/models/searchRequest.js @@ -69,7 +69,19 @@ module.exports = (sequelize, DataTypes) => { }, deletedEmail: { type: DataTypes.TEXT - } + }, + includeIncompleteAds: DataTypes.BOOLEAN, + balcony: DataTypes.BOOLEAN, + elevator: DataTypes.BOOLEAN, + newBuilding: DataTypes.BOOLEAN, + numberOfRoomsMin: DataTypes.REAL, + numberOfRoomsMax: DataTypes.REAL, + numberOfFloorsMin: DataTypes.INTEGER, + numberOfFloorsMax: DataTypes.INTEGER, + floorMin: DataTypes.INTEGER, + floorMax: DataTypes.INTEGER, + accessRoadType: DataTypes.TEXT, + heatingType: DataTypes.TEXT }); return SearchRequest;