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 localNode: { type: String },
19 validated: { type: Boolean, default: false },
20 validatedBy: {
21 type: mongoose.Schema.Types.ObjectId,
22 ref: 'adminModel'
23 },
24 valorations: [{
25 user: {
26 type: mongoose.Schema.Types.ObjectId,
27 ref: 'userModel'
28 },
29 value: { type: Number },
30 comment: { type: String }
31 }],
32 likes: [{
33 type: mongoose.Schema.Types.ObjectId,
34 ref: 'userModel'
35 }],
36 favs: [{
37 user: {
38 type: mongoose.Schema.Types.ObjectId,
39 ref: 'userModel'
40 },
41 date: {type: Date}
42 }],
43 travels: [{
44 type: mongoose.Schema.Types.ObjectId,
45 ref: 'travelModel'
46 }],
47 notifications: [{
48 type: mongoose.Schema.Types.ObjectId,
49 ref: 'notificationModel'
50 }]
51})
52
53userSchema.plugin(mongooseUniqueValidator);
54module.exports = mongoose.model('userModel', userSchema);