import mongoose from 'mongoose'; import Event from '../server/models/event.js'; import dotenv from 'dotenv'; dotenv.config(); const MONGODB_URI = process.env.NUXT_MONGODB_URI; const SERIES_ID = '68eb9c00689e559d9e46322e'; // Cooperative Values into Practice const moduleEvents = [ { title: 'Module 0: Orientation', slug: 'cooperative-values-module-0-orientation', tagline: 'Welcome to Cooperative Values into Practice', description: 'An introduction to the series and what to expect', content: 'Welcome to the Cooperative Values into Practice series. This orientation module will introduce you to the program structure and learning objectives.', startDate: new Date('2025-11-01T18:00:00.000Z'), endDate: new Date('2025-11-01T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 0, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Module 1: Principles', slug: 'cooperative-values-module-1-principles', tagline: 'Core principles of cooperative organizations', description: 'Learn the foundational principles that guide cooperative businesses', content: 'Explore the core principles of cooperative organizations and how they apply to game development studios.', startDate: new Date('2025-11-01T18:00:00.000Z'), endDate: new Date('2025-11-01T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 1, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Module 2: Purpose', slug: 'cooperative-values-module-2-purpose', tagline: 'Defining your cooperative purpose', description: 'Establish the mission and values of your cooperative studio', content: 'Learn how to define and articulate your cooperative studio\'s purpose, mission, and core values.', startDate: new Date('2025-11-22T18:00:00.000Z'), endDate: new Date('2025-11-22T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 2, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Module 3: Practices Part 1 - Meetings & Decision-Making', slug: 'cooperative-values-module-3-practices-part-1', tagline: 'Democratic practices for effective collaboration', description: 'Learn meeting facilitation and consensus decision-making processes', content: 'Develop practical skills in democratic meeting facilitation and collaborative decision-making.', startDate: new Date('2025-12-20T18:00:00.000Z'), endDate: new Date('2025-12-20T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 3, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Module 4: Practices Part 2 - Finances & Governance', slug: 'cooperative-values-module-4-practices-part-2', tagline: 'Financial management and governance structures', description: 'Explore cooperative financial models and governance frameworks', content: 'Learn about cooperative financial management, governance structures, and accountability practices.', startDate: new Date('2026-01-17T18:00:00.000Z'), endDate: new Date('2026-01-17T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 4, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Module 5: Pathways Forward', slug: 'cooperative-values-module-5-pathways-forward', tagline: 'Creating your action plan', description: 'Develop your roadmap for implementing cooperative values', content: 'Create a concrete action plan for implementing cooperative values and practices in your studio.', startDate: new Date('2026-02-14T18:00:00.000Z'), endDate: new Date('2026-02-14T20:00:00.000Z'), eventType: 'workshop', location: '#workshop-series', isOnline: true, isVisible: true, isCancelled: false, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: SERIES_ID, title: 'Cooperative Values into Practice', description: 'Creating a democratic and inclusive game studio', type: 'course', position: 5, totalEvents: 6, isSeriesEvent: true }, createdBy: 'admin' } ]; async function addModuleEvents() { try { await mongoose.connect(MONGODB_URI); console.log('Connected to Atlas'); // Check if any Module events already exist const existing = await Event.find({ title: /^Module/ }); if (existing.length > 0) { console.log(`Found ${existing.length} existing Module events. Deleting them first...`); await Event.deleteMany({ title: /^Module/ }); } // Insert the module events console.log(`Inserting ${moduleEvents.length} Module events...`); const inserted = await Event.insertMany(moduleEvents); console.log(`✓ Successfully inserted ${inserted.length} Module events`); // Verify const total = await Event.countDocuments(); console.log(`\nTotal events in Atlas: ${total}`); process.exit(0); } catch (error) { console.error('Error:', error); process.exit(1); } } addModuleEvents();