- Initial commit... A DB, some routes, and basic authentication routines...

This commit is contained in:
2019-07-04 16:19:30 -04:00
commit d9a2d33913
32 changed files with 3465 additions and 0 deletions

147
models/event.js Normal file
View File

@@ -0,0 +1,147 @@
const config = require('../config.js');
const mongoose = require('mongoose');
const timestamps = require('mongoose-timestamp');
const PostSchema = new mongoose.Schema(
{
author: String,
title: {
type: String,
required: true,
},
content: {
type: String,
required: true,
},
isPublic: {
type: Boolean,
default: true,
},
scheduledPost: String,
sendNotification: {
type: Boolean,
default: false,
},
notificationContent: String,
notificationLinksTo: String,
}
);
const TicketSchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
trim: true,
},
price: {
type: Number,
default: 0,
},
capacity: {
type: Number,
required: true,
},
available: {
type: Number,
required: true,
},
itemId: {
type: String,
required: true,
trim: true,
},
startSale: {
type: String,
required: true,
trim: true,
},
endSale: {
type: String,
required: true,
trim: true,
},
},
{ minimize: false },
);
const EventSchema = new mongoose.Schema(
{
eventDate: {
type: String,
required: true,
trim: true,
},
startTime: {
type: String,
required: true,
trim: true,
},
endTime: {
type: Number,
required: true,
},
title: {
type: String,
required: true,
trim: true,
},
tagline: {
type: String,
required: true,
trim: true,
},
description: {
type: String,
required: true,
trim: true,
},
isTicketed: {
type: Boolean,
default: false,
},
ticketClasses: [ TicketSchema ],
showFrom: {
type: String,
required: true,
trim: true,
},
showUntil: {
type: String,
required: true,
trim: true,
},
requireLoginToSeeAuction: {
type: Boolean,
default: false,
},
images: [{
url: String,
}],
url: String,
posts: [ PostSchema ],
},
{ minimize: false },
);
EventSchema.plugin(timestamps);
EventSchema.path('images').get(v => `${config.assetStoreUrl}${v.url}`)
const Event = mongoose.model('Event', EventSchema);
module.exports = Event;