Add series management and ticketing features: Introduce series event functionality in event creation, enhance event display with series information, and implement ticketing options for public events. Update layouts and improve form handling for better user experience.

This commit is contained in:
Jennie Robinson Faber 2025-08-27 20:40:54 +01:00
parent c3a29fa47c
commit a88aa62198
24 changed files with 2897 additions and 44 deletions

View file

@ -0,0 +1,49 @@
import Series from '../../models/series.js'
import { connectDB } from '../../utils/mongoose.js'
export default defineEventHandler(async (event) => {
try {
await connectDB()
const body = await readBody(event)
// Validate required fields
if (!body.id || !body.title || !body.description) {
throw createError({
statusCode: 400,
statusMessage: 'Series ID, title, and description are required'
})
}
// Create new series
const newSeries = new Series({
id: body.id,
title: body.title,
description: body.description,
type: body.type || 'workshop_series',
totalEvents: body.totalEvents || null,
createdBy: 'admin' // TODO: Get from authentication
})
await newSeries.save()
return {
success: true,
data: newSeries
}
} catch (error) {
console.error('Error creating series:', error)
if (error.code === 11000) {
throw createError({
statusCode: 400,
statusMessage: 'A series with this ID already exists'
})
}
throw createError({
statusCode: 500,
statusMessage: error.message || 'Failed to create series'
})
}
})