2026-09-03 21:01:52 +03:30
|
|
|
/**
|
2026-09-21 08:00:24 +03:30
|
|
|
* Prisma seed: upsert the 11 educational course sessions and assignment definitions.
|
2026-09-03 21:01:52 +03:30
|
|
|
*
|
|
|
|
|
* Run: npm run prisma:seed
|
|
|
|
|
* (also invoked by `prisma migrate reset` when configured)
|
|
|
|
|
*/
|
2026-09-21 08:00:24 +03:30
|
|
|
import { seedCourseSessions } from '../src/modules/sessions/seedCatalog.js';
|
2026-09-03 21:01:52 +03:30
|
|
|
import { PROGRAM_SESSION_COUNT } from '../src/modules/sessions/catalog.js';
|
2026-09-21 08:00:24 +03:30
|
|
|
import { seedAssignmentDefinitions } from '../src/modules/assignments/assignments.service.js';
|
|
|
|
|
import { ASSIGNMENT_DEFINITIONS } from '../src/modules/assignments/definitions.js';
|
2026-09-03 21:01:52 +03:30
|
|
|
import { disconnectPrisma, prisma } from '../src/lib/prisma.js';
|
|
|
|
|
|
|
|
|
|
async function main() {
|
|
|
|
|
await seedCourseSessions();
|
2026-09-21 08:00:24 +03:30
|
|
|
const sessionCount = await prisma.courseSession.count();
|
|
|
|
|
if (sessionCount < PROGRAM_SESSION_COUNT) {
|
2026-09-03 21:01:52 +03:30
|
|
|
throw new Error(
|
2026-09-21 08:00:24 +03:30
|
|
|
`Expected at least ${PROGRAM_SESSION_COUNT} course sessions after seed, found ${sessionCount}`,
|
2026-09-03 21:01:52 +03:30
|
|
|
);
|
|
|
|
|
}
|
2026-09-21 08:00:24 +03:30
|
|
|
|
|
|
|
|
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`);
|
2026-09-03 21:01:52 +03:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main()
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.error('Prisma seed failed:', err);
|
|
|
|
|
process.exitCode = 1;
|
|
|
|
|
})
|
|
|
|
|
.finally(async () => {
|
|
|
|
|
await disconnectPrisma();
|
|
|
|
|
});
|