/** * Prisma seed: upsert the 11 educational course sessions and assignment definitions. * * Run: npm run prisma:seed * (also invoked by `prisma migrate reset` when configured) */ import { seedCourseSessions } from '../src/modules/sessions/seedCatalog.js'; import { PROGRAM_SESSION_COUNT } from '../src/modules/sessions/catalog.js'; import { seedAssignmentDefinitions } from '../src/modules/assignments/assignments.service.js'; import { ASSIGNMENT_DEFINITIONS } from '../src/modules/assignments/definitions.js'; import { disconnectPrisma, prisma } from '../src/lib/prisma.js'; async function main() { await seedCourseSessions(); const sessionCount = await prisma.courseSession.count(); if (sessionCount < PROGRAM_SESSION_COUNT) { throw new Error( `Expected at least ${PROGRAM_SESSION_COUNT} course sessions after seed, found ${sessionCount}`, ); } const assignmentCount = await seedAssignmentDefinitions(); if (assignmentCount < ASSIGNMENT_DEFINITIONS.length) { throw new Error( `Expected at least ${ASSIGNMENT_DEFINITIONS.length} assignment definitions, found ${assignmentCount}`, ); } console.log(`Seeded ${sessionCount} course sessions and ${assignmentCount} assignment definitions`); } main() .catch((err) => { console.error('Prisma seed failed:', err); process.exitCode = 1; }) .finally(async () => { await disconnectPrisma(); });