220 lines
8.3 KiB
JavaScript
220 lines
8.3 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");
|
|
|
|
// Generate future dates relative to today
|
|
const today = new Date();
|
|
|
|
// 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(
|
|
today.getFullYear(),
|
|
today.getMonth(),
|
|
today.getDate() + 15,
|
|
19,
|
|
0,
|
|
),
|
|
endDate: new Date(
|
|
today.getFullYear(),
|
|
today.getMonth(),
|
|
today.getDate() + 15,
|
|
21,
|
|
0,
|
|
),
|
|
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();
|