From 271af35f0c2e3d89b2b42e7d151a2bf98b0f8c07 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Mon, 18 Nov 2019 22:41:12 +0100 Subject: [PATCH] add new enum value for access road type and heating type; add filter enums --- app/common/enums.js | 8 +++ app/common/filterEnums.js | 110 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 app/common/filterEnums.js diff --git a/app/common/enums.js b/app/common/enums.js index f52cf4f..4737346 100644 --- a/app/common/enums.js +++ b/app/common/enums.js @@ -199,6 +199,10 @@ const EMAIL_FREQUENCY = { }; const HEATING_TYPE = { + ANY: { + id: "ANY", + title: "Svi" + }, NO_HEATING: { id: "NO_HEATING", title: "Nije uvedeno" @@ -238,6 +242,10 @@ const HEATING_TYPE = { }; const ACCESS_ROAD_TYPE = { + ANY: { + id: "ANY", + title: "Svi" + }, ASPHALT: { id: "ASPHALT", title: "Asfalt" diff --git a/app/common/filterEnums.js b/app/common/filterEnums.js new file mode 100644 index 0000000..608e8d3 --- /dev/null +++ b/app/common/filterEnums.js @@ -0,0 +1,110 @@ +const { AD_CATEGORY, ACCESS_ROAD_TYPE, HEATING_TYPE } = require("./enums"); + +const ADVANCED_BOOLEAN_FILTERS = [ + { + dbField: "balcony", + title: "Balkon", + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.HOUSE, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.COTTAGE + ] + }, + { + dbField: "elevator", + title: "Lift", + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.OFFICE + ] + }, + { + dbField: "newBuilding", + title: "Novogradnja", + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.HOUSE, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.COTTAGE, + AD_CATEGORY.OFFICE + ] + } +]; + +const ADVANCED_SEGMENT_SELECT_FILTERS = [ + { + dbField: "accessRoadType", + title: "Pristupni put", + values: Object.keys(ACCESS_ROAD_TYPE).map(key => ACCESS_ROAD_TYPE[key]), + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.HOUSE, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.COTTAGE, + AD_CATEGORY.OFFICE, + AD_CATEGORY.LAND, + AD_CATEGORY.GARAGE + ] + } + // { + // dbField: "heatingType", + // title: "Vrsta grijanja", + // values: Object.keys(HEATING_TYPE).map(key => HEATING_TYPE[key]), + // categoriesToShow: [ + // AD_CATEGORY.FLAT, + // AD_CATEGORY.HOUSE, + // AD_CATEGORY.APARTMENT, + // AD_CATEGORY.COTTAGE, + // AD_CATEGORY.OFFICE + // ] + // } +]; + +const ADVANCED_RANGE_FILTERS = [ + { + id: "numberOfFloors", + title: "Broj spratova", + dbFieldMin: "numberOfFloorsMin", + dbFieldMax: "numberOfFloorsMax", + validValueMin: -1, + validValueMax: 50, + categoriesToShow: [AD_CATEGORY.HOUSE, AD_CATEGORY.COTTAGE] + }, + { + id: "floor", + title: "Sprat", + dbFieldMin: "floorMin", + dbFieldMax: "floorMax", + validValueMin: -10, + validValueMax: 50, + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.OFFICE + ] + }, + { + id: "numberOfRooms", + title: "Broj soba", + dbFieldMin: "numberOfRoomsMin", + dbFieldMax: "numberOfRoomsMax", + decimalPlaces: 1, + validValueMin: 0, + validValueMax: 200, + categoriesToShow: [ + AD_CATEGORY.FLAT, + AD_CATEGORY.HOUSE, + AD_CATEGORY.APARTMENT, + AD_CATEGORY.COTTAGE, + AD_CATEGORY.OFFICE + ] + } +]; + +module.exports = { + ADVANCED_BOOLEAN_FILTERS, + ADVANCED_SEGMENT_SELECT_FILTERS, + ADVANCED_RANGE_FILTERS +};