| | 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 };
|
| |
|