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, selected: false },
10    token: { type: String, selected: false },
11    description:   { type: String, default: "Hello world" },
12    avatar:   { type: String, default: "racoon" },
13    email:   { type: String, required: true },
14    phone: { type: String },
15    telegram: { type: String },
16    valorations: [{
17        user: {
18            type: mongoose.Schema.Types.ObjectId,
19            ref: 'userModel'
20        },
21        value: { type: Number },
22        comment: { type: String }
23    }],
24    favs: [{
25        user: {
26            type: mongoose.Schema.Types.ObjectId,
27            ref: 'userModel'
28        },
29        date: {type: Date}
30    }],
31    travels: [{
32        type: mongoose.Schema.Types.ObjectId,
33        ref: 'travelModel'
34    }],
35    notifications: [{
36        state: {type: String, default: "pendent"},//viewed, pendent
37        message: {type: String},
38        link: {type: String},//aquí oju, a la app i a la web calen links diferents, però ho podem fer posant sempre a la app i a la web el prefix del link (#!/app) o (#/app/), i després afegint-hi la pàgina on volem enviar el routing, per exemple (dashboard)
39        icon: {type: String},
40        date: {type: Date},
41        dateviewed: {type: Date}
42    }]
43})
44
45userSchema.plugin(mongooseUniqueValidator);
46module.exports = mongoose.model('userModel', userSchema);