arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
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);