187 lines
No EOL
7.9 KiB
JavaScript
187 lines
No EOL
7.9 KiB
JavaScript
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() |