import Event from "../../models/event"; import Member from "../../models/member"; export default defineEventHandler(async (event) => { const query = getQuery(event); const { memberId } = query; if (!memberId) { throw createError({ statusCode: 400, statusMessage: "Member ID is required", }); } try { // Verify member exists const member = await Member.findById(memberId); if (!member) { throw createError({ statusCode: 404, statusMessage: "Member not found", }); } // Find all events where the user is registered // Filter out cancelled events and only show future events const now = new Date(); const events = await Event.find({ "registrations.memberId": memberId, isCancelled: { $ne: true }, startDate: { $gte: now }, }) .select( "title slug description startDate endDate location featureImage maxAttendees registeredCount", ) .sort({ startDate: 1 }) .limit(10); console.log( `Found ${events.length} registered events for member ${memberId}`, ); return { events, count: events.length, }; } catch (error) { console.error("Error fetching member events:", error); if (error.statusCode) { throw error; } throw createError({ statusCode: 500, statusMessage: "Failed to fetch registered events", }); } });