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