ghostguild-org/server/models/series.js

35 lines
No EOL
994 B
JavaScript

import mongoose from 'mongoose'
const seriesSchema = new mongoose.Schema({
id: {
type: String,
required: true,
unique: true,
validate: {
validator: function(v) {
return /^[a-z0-9-]+$/.test(v);
},
message: 'Series ID must contain only lowercase letters, numbers, and dashes'
}
},
title: { type: String, required: true },
description: { type: String, required: true },
type: {
type: String,
enum: ['workshop_series', 'recurring_meetup', 'multi_day', 'course', 'tournament'],
default: 'workshop_series'
},
totalEvents: Number,
isActive: { type: Boolean, default: true },
createdBy: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
})
// Update the updatedAt field on save
seriesSchema.pre('save', function(next) {
this.updatedAt = new Date()
next()
})
export default mongoose.models.Series || mongoose.model('Series', seriesSchema)