import { connectDB } from '../server/utils/mongoose.js' import Event from '../server/models/event.js' async function seedSeriesEvents() { try { await connectDB() console.log('Connected to database') // Workshop Series: "Cooperative Game Development Fundamentals" const workshopSeries = [ { title: 'Cooperative Business Models in Game Development', slug: 'coop-business-models-workshop', tagline: 'Learn the foundations of cooperative business structures', description: 'An introductory workshop covering the basic principles and structures of worker cooperatives in the game development industry.', content: 'This workshop will cover the legal structures, governance models, and financial frameworks that make cooperative game studios successful.', startDate: new Date('2024-10-15T19:00:00.000Z'), endDate: new Date('2024-10-15T21:00:00.000Z'), eventType: 'workshop', location: '#workshop-fundamentals', isOnline: true, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: 'coop-dev-fundamentals', title: 'Cooperative Game Development Fundamentals', description: 'A comprehensive workshop series covering the essentials of building and running cooperative game studios', type: 'workshop_series', position: 1, totalEvents: 4, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Democratic Decision Making in Creative Projects', slug: 'democratic-decision-making-workshop', tagline: 'Practical tools for collaborative project management', description: 'Learn how to implement democratic decision-making processes that work for creative teams and game development projects.', content: 'This workshop focuses on consensus building, conflict resolution, and collaborative project management techniques.', startDate: new Date('2024-10-22T19:00:00.000Z'), endDate: new Date('2024-10-22T21:00:00.000Z'), eventType: 'workshop', location: '#workshop-fundamentals', isOnline: true, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: 'coop-dev-fundamentals', title: 'Cooperative Game Development Fundamentals', description: 'A comprehensive workshop series covering the essentials of building and running cooperative game studios', type: 'workshop_series', position: 2, totalEvents: 4, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Funding and Financial Models for Co-ops', slug: 'coop-funding-workshop', tagline: 'Sustainable financing for cooperative studios', description: 'Explore funding options, revenue sharing models, and financial management strategies specific to cooperative game studios.', content: 'This workshop covers grant opportunities, crowdfunding strategies, and internal financial management for worker cooperatives.', startDate: new Date('2024-10-29T19:00:00.000Z'), endDate: new Date('2024-10-29T21:00:00.000Z'), eventType: 'workshop', location: '#workshop-fundamentals', isOnline: true, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: 'coop-dev-fundamentals', title: 'Cooperative Game Development Fundamentals', description: 'A comprehensive workshop series covering the essentials of building and running cooperative game studios', type: 'workshop_series', position: 3, totalEvents: 4, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'Building Your Cooperative Studio', slug: 'building-coop-studio-workshop', tagline: 'From concept to reality: launching your co-op', description: 'A practical guide to forming a cooperative game studio, covering legal formation, member recruitment, and launch strategies.', content: 'This final workshop in the series provides a step-by-step guide to actually forming and launching a cooperative game studio.', startDate: new Date('2024-11-05T19:00:00.000Z'), endDate: new Date('2024-11-05T21:00:00.000Z'), eventType: 'workshop', location: '#workshop-fundamentals', isOnline: true, membersOnly: false, registrationRequired: true, maxAttendees: 50, series: { id: 'coop-dev-fundamentals', title: 'Cooperative Game Development Fundamentals', description: 'A comprehensive workshop series covering the essentials of building and running cooperative game studios', type: 'workshop_series', position: 4, totalEvents: 4, isSeriesEvent: true }, createdBy: 'admin' } ] // Monthly Community Meetup Series const meetupSeries = [ { title: 'October Community Meetup', slug: 'october-community-meetup', tagline: 'Monthly gathering for cooperative game developers', description: 'Join fellow cooperative game developers for informal networking, project sharing, and community building.', content: 'Our monthly community meetup provides a relaxed environment to share your projects, get feedback, and connect with other developers interested in cooperative models.', startDate: new Date('2024-10-12T18:00:00.000Z'), endDate: new Date('2024-10-12T20:00:00.000Z'), eventType: 'community', location: '#community-meetup', isOnline: true, membersOnly: false, registrationRequired: false, series: { id: 'monthly-meetups', title: 'Monthly Community Meetups', description: 'Regular monthly gatherings for the cooperative game development community', type: 'recurring_meetup', position: 1, totalEvents: 12, isSeriesEvent: true }, createdBy: 'admin' }, { title: 'November Community Meetup', slug: 'november-community-meetup', tagline: 'Monthly gathering for cooperative game developers', description: 'Join fellow cooperative game developers for informal networking, project sharing, and community building.', content: 'Our monthly community meetup provides a relaxed environment to share your projects, get feedback, and connect with other developers interested in cooperative models.', startDate: new Date('2024-11-09T18:00:00.000Z'), endDate: new Date('2024-11-09T20:00:00.000Z'), eventType: 'community', location: '#community-meetup', isOnline: true, membersOnly: false, registrationRequired: false, series: { id: 'monthly-meetups', title: 'Monthly Community Meetups', description: 'Regular monthly gatherings for the cooperative game development community', type: 'recurring_meetup', position: 2, totalEvents: 12, isSeriesEvent: true }, createdBy: 'admin' } ] // Insert all series events const allSeriesEvents = [...workshopSeries, ...meetupSeries] for (const eventData of allSeriesEvents) { const existingEvent = await Event.findOne({ slug: eventData.slug }) if (!existingEvent) { const event = new Event(eventData) await event.save() console.log(`Created series event: ${event.title}`) } else { console.log(`Series event already exists: ${eventData.title}`) } } console.log('Series events seeding completed!') process.exit(0) } catch (error) { console.error('Error seeding series events:', error) process.exit(1) } } seedSeriesEvents()