commonroutesServer/models/userModel.js
models/userModel.jsRaw
1var mongoose = require('mongoose'),
2 Schema = mongoose.Schema;
3
4var mongooseUniqueValidator = require('mongoose-unique-validator');
5
6
7var userSchema = new Schema({
8 username: { type: String, required: true, unique: true },
9 password: { type: String, required: true, select: false },
10 token: { type: String, select: false },
11 description: { type: String, default: "Hello world" },
12 avatar: { type: String, default: "img/avatars/racoon.png" },
13 faircoinString: { type: String, default: "faircoin wallet" },
14 faircoin: { type: String, default: "img/faircoinpublickey_sample.png" },
15 email: { type: String, required: true, select: false },
16 phone: { type: String },
17 telegram: { type: String },
18 validated: { type: Boolean, default: false },
19 validatedBy: {
20 type: mongoose.Schema.Types.ObjectId,
21 ref: 'adminModel'
22 },
23 valorations: [{
24 user: {
25 type: mongoose.Schema.Types.ObjectId,
26 ref: 'userModel'
27 },
28 value: { type: Number },
29 comment: { type: String }
30 }],
31 likes: [{
32 type: mongoose.Schema.Types.ObjectId,
33 ref: 'userModel'
34 }],
35 favs: [{
36 user: {
37 type: mongoose.Schema.Types.ObjectId,
38 ref: 'userModel'
39 },
40 date: {type: Date}
41 }],
42 travels: [{
43 type: mongoose.Schema.Types.ObjectId,
44 ref: 'travelModel'
45 }],
46 notifications: [{
47 type: mongoose.Schema.Types.ObjectId,
48 ref: 'notificationModel'
49 }]
50})
51
52userSchema.plugin(mongooseUniqueValidator);
53module.exports = mongoose.model('userModel', userSchema);