Files
pwa/backend/prisma/seed.ts
T
ar.badieiandCursor c6243caa35 Add read-only Noya admin panel with assignments and UX polish.
Ship admin auth, user overview, assessments, chats, assignment filters/export, security hardening, and a separate desktop admin shell with clearer assessment answers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 08:00:24 +03:30

40 lines
1.4 KiB
TypeScript

/**
* 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();
});