diff --git a/apps/portal/package.json b/apps/portal/package.json index cdec2c9c..bb6d52dc 100644 --- a/apps/portal/package.json +++ b/apps/portal/package.json @@ -12,7 +12,8 @@ "seed": "ts-node prisma/seed.ts", "seed-salaries": "ts-node prisma/seed-salaries.ts", "seed-analysis": "ts-node prisma/seed-analysis.ts", - "seed-questions": "ts-node prisma/seed-questions.ts" + "seed-questions": "ts-node prisma/seed-questions.ts", + "map-internship-cycle": "ts-node prisma/map-internship-cycle.ts" }, "dependencies": { "@headlessui/react": "^1.7.3", diff --git a/apps/portal/prisma/map-internship-cycle.ts b/apps/portal/prisma/map-internship-cycle.ts new file mode 100644 index 00000000..62e381f4 --- /dev/null +++ b/apps/portal/prisma/map-internship-cycle.ts @@ -0,0 +1,52 @@ +import { PrismaClient } from '@prisma/client'; + +const prisma = new PrismaClient(); + +const mapInternshipCycle = async () => { + console.log('Mapping internship cycle values'); + + const offersInterns = await prisma.offersIntern.findMany({ + where: { + internshipCycle: 'Summer', + }, + }); + + console.log( + 'Number of incorrect internship cycle values found:', + offersInterns.length, + ); + + let i = 0; + + offersInterns.forEach(async (offersIntern) => { + await prisma.offersIntern.update({ + where: { + id: offersIntern.id, + }, + data: { + internshipCycle: 'summer', + }, + }); + + console.log( + ++i, + ': Mapped internship cycle for intern with id', + offersIntern.id, + ); + }); + + console.log(i, 'internship cycles mapped'); +}; + +Promise.all([mapInternshipCycle()]) + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + console.log('Mapping stopped!'); + await prisma.$disconnect(); + process.exit(1); + }); + +export {};