|
import * as mongoose from 'mongoose';
|
|
import { Document } from 'mongoose';
|
|
import { USERS } from 'src/constants';
|
|
|
|
export interface IUserDocument extends Document {
|
|
name?: string;
|
|
username?: string;
|
|
email?: string;
|
|
avatar?: string;
|
|
isActive?: boolean;
|
|
isDeleted: boolean;
|
|
createdAt?: Date;
|
|
updatedAt?: Date;
|
|
deletedAt?: Date;
|
|
roles?: Array<string>;
|
|
password?: string;
|
|
session_id?: number;
|
|
login_location?: string;
|
|
preferred_location?: string;
|
|
preferred_listing_type?: string;
|
|
property_id?: string;
|
|
page_visit_duration?: number;
|
|
carousel_button_click_result_page?: number;
|
|
next_image_clicks_listing_page?: number;
|
|
read_more_click_result_page?: number;
|
|
read_more_click_listing_page?: number;
|
|
clicked_more_pictures?: number;
|
|
click_rate?: number;
|
|
bounce?: number;
|
|
title?: string;
|
|
price?: string;
|
|
bedrooms_?: string;
|
|
bathrooms?: string;
|
|
living_space_sqm?: string;
|
|
pool_?: number;
|
|
}
|
|
|
|
const UserSchema = new mongoose.Schema<IUserDocument>(
|
|
{
|
|
name: { type: String },
|
|
username: { type: String },
|
|
email: { type: String, unique: true },
|
|
avatar: { type: String },
|
|
isActive: { type: Boolean, default: true },
|
|
isDeleted: { type: Boolean, default: false },
|
|
roles: [{ type: String, required: true, default: 'user' }],
|
|
password: { type: String, required: false },
|
|
|
|
session_id: { type: Number },
|
|
login_location: { type: String },
|
|
preferred_location: { type: String },
|
|
preferred_listing_type: { type: String },
|
|
property_id: { type: String },
|
|
page_visit_duration: { type: Number, default: 0 },
|
|
carousel_button_click_result_page: { type: Number, default: 0 },
|
|
next_image_clicks_listing_page: { type: Number, default: 0 },
|
|
read_more_click_result_page: { type: Number, default: 0 },
|
|
read_more_click_listing_page: { type: Number, default: 0 },
|
|
clicked_more_pictures: { type: Number, default: 0 },
|
|
click_rate: { type: Number, default: 0 },
|
|
bounce: { type: Number, default: 0 },
|
|
title: { type: String },
|
|
price: { type: String },
|
|
bedrooms_: { type: String },
|
|
bathrooms: { type: String },
|
|
living_space_sqm: { type: String },
|
|
pool_: { type: Number },
|
|
|
|
createdAt: { type: Date, default: Date.now },
|
|
updatedAt: { type: Date, default: Date.now },
|
|
deletedAt: { type: Date },
|
|
},
|
|
{
|
|
toJSON: { versionKey: false },
|
|
},
|
|
);
|
|
|
|
export { UserSchema };
|
|
|