35 lines
No EOL
994 B
JavaScript
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) |