Files
old-web/app/models/searchRequest.js

98 lines
2.3 KiB
JavaScript
Raw Normal View History

2019-09-13 09:47:49 +02:00
"use strict";
const { AD_TYPE, EMAIL_FREQUENCY } = require("../common/enums");
2019-09-13 09:47:49 +02:00
module.exports = (sequelize, DataTypes) => {
const SearchRequest = sequelize.define("SearchRequest", {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
allowNull: false,
primaryKey: true
},
areaToSearch: {
type: DataTypes.GEOMETRY("POLYGON", 4326),
allowNull: false,
defaultValue: {
type: "Polygon",
coordinates: [
[
[0, 0],
[0, 0],
[0, 0],
[0, 0],
[0, 0]
]
],
crs: { type: "name", properties: { name: "EPSG:4326" } }
}
2019-09-13 09:47:49 +02:00
},
realEstateType: {
type: DataTypes.TEXT,
allowNull: false
},
adType: {
type: DataTypes.TEXT,
allowNull: false,
2019-10-30 20:55:33 +01:00
defaultValue: AD_TYPE.AD_TYPE_SALE.stringId
2019-09-13 09:47:49 +02:00
},
email: DataTypes.TEXT,
locality: DataTypes.TEXT,
municipality: DataTypes.TEXT,
city: DataTypes.TEXT,
region: DataTypes.TEXT,
entity: DataTypes.TEXT,
country: DataTypes.TEXT,
sizeMin: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
2019-09-13 09:47:49 +02:00
},
sizeMax: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
2019-09-13 09:47:49 +02:00
},
priceMin: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
2019-09-13 09:47:49 +02:00
},
priceMax: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
2019-09-13 09:47:49 +02:00
},
gardenSizeMin: DataTypes.INTEGER,
gardenSizeMax: DataTypes.INTEGER,
subscribed: {
type: DataTypes.BOOLEAN,
defaultValue: false,
2019-09-13 09:47:49 +02:00
allowNull: false
},
emailFrequency: {
type: DataTypes.TEXT,
defaultValue: EMAIL_FREQUENCY.ASAP.stringId,
allowNull: false
},
deletedEmail: {
type: DataTypes.TEXT
},
includeIncompleteAds: DataTypes.BOOLEAN,
includeWithoutPrice: 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
2019-09-13 09:47:49 +02:00
});
return SearchRequest;
};