summaryrefslogtreecommitdiff
path: root/models/Event.js
diff options
context:
space:
mode:
authorlowercasename <raphaelkabo@gmail.com>2019-07-25 16:16:04 +0100
committerlowercasename <raphaelkabo@gmail.com>2019-07-25 16:16:04 +0100
commit930542049e40a1a99c9a0c2c349519ccddf52140 (patch)
treeace22d1e09c409bc47743a44b8f8ca41bb8b2dd6 /models/Event.js
First commit
Diffstat (limited to 'models/Event.js')
-rwxr-xr-xmodels/Event.js157
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);