-
Notifications
You must be signed in to change notification settings - Fork 3
/
models.js
51 lines (38 loc) · 1.58 KB
/
models.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var Mongoose = require('mongoose');
var UserSchema = new Mongoose.Schema({
// fields are defined here
"name": String,
"username": {type: String, unique : true},
"password": String,
"email": String,
"imageURL": String
});
exports.User = Mongoose.model('User', UserSchema);
var QuestSchema = new Mongoose.Schema({
"title": String,
"description": String,
"level": Number,
"deadline": Date,
"takenBy": {type: Mongoose.Schema.Types.ObjectId, ref: 'User', default: new Mongoose.Types.ObjectId},
"completed": Boolean,
"index": Number
});
exports.Quest = Mongoose.model('Quest', QuestSchema);
var ItemSchema = new Mongoose.Schema({
"name": String
});
exports.Item = Mongoose.model('Item', ItemSchema);
var GameSchema = new Mongoose.Schema({
"castleHealth": Number,
"monsterHealth": Number,
"items": [{type: Mongoose.Schema.Types.ObjectId, ref: 'Item', default: new Mongoose.Types.ObjectId}]
});
exports.Game = Mongoose.model('Game', GameSchema);
var CastleSchema = new Mongoose.Schema({
"name": {type: String, unique : true},
"admin": {type: Mongoose.Schema.Types.ObjectId, ref: 'User', default: new Mongoose.Types.ObjectId},
"members": [{type: Mongoose.Schema.Types.ObjectId, ref: 'User', default: new Mongoose.Types.ObjectId}],
"quests": [{type: Mongoose.Schema.Types.ObjectId, ref: 'Quest', default: new Mongoose.Types.ObjectId}],
"game": {type: Mongoose.Schema.Types.ObjectId, ref: 'Game', default: new Mongoose.Types.ObjectId}
});
exports.Castle = Mongoose.model('Castle', CastleSchema);