11import type { Challenge , Lesson , User } from '@prisma/client'
22import { Prisma , PrismaClient } from '@prisma/client'
33import { SubmissionStatus } from '../graphql'
4+ import getExercisesData from '../__dummy__/getExercisesData'
5+ import { modules as modulesData } from '../__dummy__/lessonData'
46import {
57 adminData ,
68 leetData ,
@@ -21,6 +23,9 @@ async function main() {
2123 await seedSubmissions ( leet , admin , lessons , SubmissionStatus . Passed )
2224 await seedSubmissions ( noob , null , lessons . slice ( 0 , 1 ) , SubmissionStatus . Open )
2325 await seedStars ( leet , admin , lessons )
26+ await seedModules ( admin )
27+ await seedExercises ( admin )
28+ await seedExercisesWithoutExplanation ( admin )
2429}
2530
2631async function seedLessons ( ) {
@@ -31,6 +36,54 @@ async function seedLessons() {
3136 )
3237}
3338
39+ async function seedModules ( admin : User ) {
40+ return prisma . $transaction (
41+ modulesData . map ( data =>
42+ prisma . module . create ( {
43+ data : {
44+ content : data . content ,
45+ // JS0
46+ lessonId : 1 ,
47+ authorId : admin . id ,
48+ name : data . name ,
49+ order : data . order
50+ }
51+ } )
52+ )
53+ )
54+ }
55+
56+ async function seedExercises ( admin : User ) {
57+ return prisma . $transaction (
58+ getExercisesData . exercises . map ( data =>
59+ prisma . exercise . create ( {
60+ data : {
61+ moduleId : modulesData [ 0 ] . id ,
62+ authorId : admin . id ,
63+ description : data . description ,
64+ answer : data . answer ,
65+ explanation : data . answer
66+ }
67+ } )
68+ )
69+ )
70+ }
71+
72+ async function seedExercisesWithoutExplanation ( admin : User ) {
73+ return prisma . $transaction (
74+ getExercisesData . exercises . map ( data =>
75+ prisma . exercise . create ( {
76+ data : {
77+ moduleId : modulesData [ 1 ] . id ,
78+ authorId : admin . id ,
79+ description : data . description ,
80+ answer : data . answer
81+ }
82+ } )
83+ )
84+ )
85+ }
86+
3487async function seedUsers ( ) {
3588 return prisma . $transaction ( [
3689 prisma . user . create ( { data : adminData } ) ,
0 commit comments