import Event from '../../models/event.js' import { connectDB } from '../../utils/mongoose.js' import { requireAuth } from '../../utils/auth.js' export default defineEventHandler(async (event) => { const member = await requireAuth(event) // Combine craft tags and cooperative ecology tags const craftTags = member.craftTags || [] const ecologyTags = (member.communityEcology?.topics || []).map(t => t.tagSlug) const memberTags = [...new Set([...craftTags, ...ecologyTags].filter(Boolean))] if (!memberTags.length) { return [] } await connectDB() const query = getQuery(event) const limit = Math.min(Math.max(parseInt(query.limit) || 10, 1), 25) const events = await Event.find({ tags: { $in: memberTags }, startDate: { $gt: new Date() }, isCancelled: { $ne: true }, isVisible: true }) .sort({ startDate: 1 }) .limit(limit) .select('title slug startDate endDate tagline tags eventType isOnline') .lean() return events })