diff options
author | lowercasename <raphaelkabo@gmail.com> | 2019-07-25 16:16:04 +0100 |
---|---|---|
committer | lowercasename <raphaelkabo@gmail.com> | 2019-07-25 16:16:04 +0100 |
commit | 930542049e40a1a99c9a0c2c349519ccddf52140 (patch) | |
tree | ace22d1e09c409bc47743a44b8f8ca41bb8b2dd6 /models/Event.js |
First commit
Diffstat (limited to 'models/Event.js')
-rwxr-xr-x | models/Event.js | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/models/Event.js b/models/Event.js new file mode 100755 index 0000000..35a8f2c --- /dev/null +++ b/models/Event.js @@ -0,0 +1,157 @@ +const mongoose = require('mongoose'); + +const Attendees = new mongoose.Schema({ + name: { + type: String, + trim: true + }, + status: { + type: String, + trim: true + }, + email: { + type: String, + trim: true + } +}) + +const ReplySchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true, + sparse: true + }, + author: { + type: String, + trim: true, + required: true + }, + content: { + type: String, + trim: true, + required: true + }, + timestamp: { + type: Date, + trim: true, + required: true + } +}) + +const CommentSchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true, + sparse: true + }, + author: { + type: String, + trim: true, + required: true + }, + content: { + type: String, + trim: true, + required: true + }, + timestamp: { + type: Date, + trim: true, + required: true + }, + replies: [ReplySchema] +}) + +const EventSchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true + }, + type: { + type: String, + trim: true, + required: true + }, + name: { + type: String, + trim: true, + required: true + }, + location: { + type: String, + trim: true, + required: true + }, + start: { + type: Date, + trim: true, + required: true + }, + end: { + type: Date, + trim: true, + required: true + }, + description: { + type: String, + trim: true, + required: true + }, + image: { + type: String, + trim: true + }, + url: { + type: String, + trim: true + }, + creatorEmail: { + type: String, + trim: true + }, + hostName: { + type: String, + trim: true + }, + viewPassword: { + type: String, + trim: true + }, + editPassword: { + type: String, + trim: true + }, + editToken: { + type: String, + trim: true, + minlength: 32, + maxlength: 32 + }, + usersCanAttend: { + type: Boolean, + trim: true, + default: false + }, + showUsersList: { + type: Boolean, + trim: true, + default: false + }, + usersCanComment: { + type: Boolean, + trim: true, + default: false + }, + firstLoad: { + type: Boolean, + trim: true, + default: true + }, + attendees: [Attendees], + comments: [CommentSchema] +}); + +module.exports = mongoose.model('Event', EventSchema); |