From 02f5b97e80f9cb221d141ee23f0bb62be15a3b33 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Thu, 7 Nov 2019 11:27:14 +0100 Subject: [PATCH] add migration for new real estate fields; update real estate model --- ...-additional-fields-to-realEstates-table.js | 163 ++++++++++++++++++ app/models/realEstate.js | 39 ++++- 2 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 app/migrations/20191105174319-add-additional-fields-to-realEstates-table.js diff --git a/app/migrations/20191105174319-add-additional-fields-to-realEstates-table.js b/app/migrations/20191105174319-add-additional-fields-to-realEstates-table.js new file mode 100644 index 0000000..134e6ad --- /dev/null +++ b/app/migrations/20191105174319-add-additional-fields-to-realEstates-table.js @@ -0,0 +1,163 @@ +"use strict"; + +module.exports = { + up: (queryInterface, Sequelize) => { + return Promise.all([ + queryInterface.addColumn("RealEstates", "numberOfRooms", { + type: Sequelize.REAL + }), + queryInterface.addColumn("RealEstates", "numberOfFloors", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("RealEstates", "floor", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("RealEstates", "accessRoadType", { + type: Sequelize.TEXT + }), + queryInterface.addColumn("RealEstates", "heatingType", { + type: Sequelize.TEXT + }), + queryInterface.addColumn("RealEstates", "furnishingType", { + type: Sequelize.TEXT + }), + queryInterface.addColumn("RealEstates", "balcony", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "newBuilding", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "elevator", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "water", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "electricity", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "drainageSystem", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "registeredInZkBooks", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "recentlyAdapted", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "parking", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "garage", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "gas", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "antiTheftDoor", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "airCondition", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "phoneConnection", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "cableTV", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "internet", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "basementAttic", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "storeRoom", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "videoSurveillance", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "alarm", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "suitableForStudents", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "includingBills", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "animalsAllowed", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "pool", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "exchange", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "urbanPlanPermit", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "buildingPermit", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "utilityConnection", { + type: Sequelize.BOOLEAN + }), + queryInterface.addColumn("RealEstates", "distanceToRiver", { + type: Sequelize.INTEGER + }), + queryInterface.addColumn("RealEstates", "numberOfViewsAgency", { + type: Sequelize.INTEGER, + defaultValue: 0 + }), + queryInterface.addColumn("RealEstates", "numberOfViewsKivi", { + type: Sequelize.INTEGER, + defaultValue: 0 + }) + ]); + }, + + down: (queryInterface, Sequelize) => { + return Promise.all([ + queryInterface.removeColumn("RealEstates", "numberOfRooms"), + queryInterface.removeColumn("RealEstates", "numberOfFloors"), + queryInterface.removeColumn("RealEstates", "floor"), + queryInterface.removeColumn("RealEstates", "accessRoadType"), + queryInterface.removeColumn("RealEstates", "heatingType"), + queryInterface.removeColumn("RealEstates", "furnishingType"), + queryInterface.removeColumn("RealEstates", "balcony"), + queryInterface.removeColumn("RealEstates", "newBuilding"), + queryInterface.removeColumn("RealEstates", "elevator"), + queryInterface.removeColumn("RealEstates", "water"), + queryInterface.removeColumn("RealEstates", "electricity"), + queryInterface.removeColumn("RealEstates", "drainageSystem"), + queryInterface.removeColumn("RealEstates", "registeredInZkBooks"), + queryInterface.removeColumn("RealEstates", "recentlyAdapted"), + queryInterface.removeColumn("RealEstates", "parking"), + queryInterface.removeColumn("RealEstates", "garage"), + queryInterface.removeColumn("RealEstates", "gas"), + queryInterface.removeColumn("RealEstates", "antiTheftDoor"), + queryInterface.removeColumn("RealEstates", "airCondition"), + queryInterface.removeColumn("RealEstates", "phoneConnection"), + queryInterface.removeColumn("RealEstates", "cableTV"), + queryInterface.removeColumn("RealEstates", "internet"), + queryInterface.removeColumn("RealEstates", "basementAttic"), + queryInterface.removeColumn("RealEstates", "storeRoom"), + queryInterface.removeColumn("RealEstates", "videoSurveillance"), + queryInterface.removeColumn("RealEstates", "alarm"), + queryInterface.removeColumn("RealEstates", "suitableForStudents"), + queryInterface.removeColumn("RealEstates", "includingBills"), + queryInterface.removeColumn("RealEstates", "animalsAllowed"), + queryInterface.removeColumn("RealEstates", "pool"), + queryInterface.removeColumn("RealEstates", "exchange"), + queryInterface.removeColumn("RealEstates", "urbanPlanPermit"), + queryInterface.removeColumn("RealEstates", "buildingPermit"), + queryInterface.removeColumn("RealEstates", "utilityConnection"), + queryInterface.removeColumn("RealEstates", "distanceToRiver"), + queryInterface.removeColumn("RealEstates", "numberOfViewsAgency"), + queryInterface.removeColumn("RealEstates", "numberOfViewsKivi") + ]); + } +}; diff --git a/app/models/realEstate.js b/app/models/realEstate.js index 93b82c4..0cb9374 100644 --- a/app/models/realEstate.js +++ b/app/models/realEstate.js @@ -48,7 +48,44 @@ module.exports = (sequelize, DataTypes) => { longDescription: DataTypes.TEXT, adStatus: DataTypes.INTEGER, publishedDate: DataTypes.DATE, - renewedDate: DataTypes.DATE + renewedDate: DataTypes.DATE, + numberOfRooms: DataTypes.INTEGER, + numberOfFloors: DataTypes.INTEGER, + floor: DataTypes.INTEGER, + accessRoadType: DataTypes.TEXT, + heatingType: DataTypes.TEXT, + furnishingType: DataTypes.TEXT, + balcony: DataTypes.BOOLEAN, + newBuilding: DataTypes.BOOLEAN, + elevator: DataTypes.BOOLEAN, + water: DataTypes.BOOLEAN, + electricity: DataTypes.BOOLEAN, + drainageSystem: DataTypes.BOOLEAN, + registeredInZkBooks: DataTypes.BOOLEAN, + recentlyAdapted: DataTypes.BOOLEAN, + parking: DataTypes.BOOLEAN, + garage: DataTypes.BOOLEAN, + gas: DataTypes.BOOLEAN, + antiTheftDoor: DataTypes.BOOLEAN, + airCondition: DataTypes.BOOLEAN, + phoneConnection: DataTypes.BOOLEAN, + cableTV: DataTypes.BOOLEAN, + internet: DataTypes.BOOLEAN, + basementAttic: DataTypes.BOOLEAN, + storeRoom: DataTypes.BOOLEAN, + videoSurveillance: DataTypes.BOOLEAN, + alarm: DataTypes.BOOLEAN, + suitableForStudents: DataTypes.BOOLEAN, + includingBills: DataTypes.BOOLEAN, + animalsAllowed: DataTypes.BOOLEAN, + pool: DataTypes.BOOLEAN, + exchange: DataTypes.BOOLEAN, + urbanPlanPermit: DataTypes.BOOLEAN, + buildingPermit: DataTypes.BOOLEAN, + utilityConnection: DataTypes.BOOLEAN, + distanceToRiver: DataTypes.INTEGER, + numberOfViewsAgency: DataTypes.INTEGER, + numberOfViewsKivi: DataTypes.INTEGER }); return RealEstate;