@@ -9,6 +9,18 @@ import Tutorial from "#models/tutorial";
99import Practical from "#models/practical" ;
1010import Semester from "#models/semester" ;
1111import Course from "#models/course" ;
12+ import Faculty from "#models/faculty" ;
13+ import Student from "#models/student" ;
14+ import Attendance from "#models/attendance" ;
15+ import Notification from "#models/notification" ;
16+ import User from "#models/user" ;
17+ import Group from "#models/group" ;
18+ import ActivityBlueprint from "#models/activityBlueprint" ;
19+ import Activity from "#models/activity" ;
20+ import Exam from "#models/exam" ;
21+ import Paper from "#models/paper" ;
22+ import Coursework from "#models/coursework" ;
23+ import Timetable from "#models/timetable" ;
1224import generateOrganizations from "#mockDB/orgMock" ;
1325import ACCREDS from "#mockDB/accredMock" ;
1426import TOPICS from "#mockDB/topicMock" ;
@@ -19,6 +31,18 @@ import generatePracticals from "#mockDB/pracMock";
1931import generateTutorials from "#mockDB/tutMock" ;
2032import generateSemesters from "#mockDB/semMock" ;
2133import generateCourses from "#mockDB/courseMock" ;
34+ import generateFaculty from "#mockDB/facultyMock" ;
35+ import generateStudents from "#mockDB/studentMock" ;
36+ import generateAttendance from "#mockDB/attendanceMock" ;
37+ import generateNotifications from "#mockDB/notificationMock" ;
38+ import generateUsers from "#mockDB/userMock" ; // eslint-disable-line no-unused-vars
39+ import generateGroups from "#mockDB/groupMock" ;
40+ import generateActivityBP from "#mockDB/activityBPMock" ;
41+ import generateActivity from "#mockDB/activityMock" ;
42+ import generateExams from "#mockDB/examMock" ;
43+ import generatePaper from "#mockDB/paperMock" ;
44+ import generateCoursework from "#mockDB/courseworkMock" ;
45+ import generateTimetables from "#mockDB/timetableMock" ;
2246/* eslint-disable no-underscore-dangle */
2347const createdAccreds = await Accreditation . createMultiple ( ACCREDS ) ;
2448
@@ -60,7 +84,7 @@ const createdDepts = await Department.createMultiple(DEPTS);
6084
6185const createdTopics = await Topics . createMultiple ( TOPICS ) ;
6286
63- const MODULES = await generateModules (
87+ const MODULES = generateModules (
6488 createdTopics . map ( ( createdTopic ) => createdTopic . _id ) ,
6589) ;
6690
@@ -86,6 +110,119 @@ const COURSES = generateCourses(
86110 createdDepts . map ( ( createdDept ) => createdDept . _id ) ,
87111) ;
88112
89- const createdCourses = await Course . createMultiple ( COURSES ) ; // eslint-disable-line no-unused-vars
113+ const createdCourses = await Course . createMultiple ( COURSES ) ;
114+
115+ const FACULTY = generateFaculty (
116+ createdDepts . map ( ( createdDept ) => createdDept . _id ) ,
117+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
118+ ) ;
119+
120+ const createdFaculty = await Faculty . createMultiple ( FACULTY ) ;
121+
122+ const STUDENTS = generateStudents (
123+ createdDepts . map ( ( createdDept ) => createdDept . _id ) ,
124+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
125+ ) ;
126+
127+ const createdStudents = await Student . createMultiple ( STUDENTS ) ;
128+
129+ const studentCourseList = createdStudents . map ( ( student ) => {
130+ const studentId = student . _id . toString ( ) ;
131+ const coursesOpted = student . coursesOpted . map ( ( courseId ) =>
132+ courseId . toString ( ) ,
133+ ) ;
134+ return { studentId, coursesOpted } ;
135+ } ) ;
136+
137+ const ATTENDANCE = generateAttendance ( studentCourseList ) ;
138+
139+ const createdAttendance = await Attendance . createMultiple ( ATTENDANCE ) ; // eslint-disable-line no-unused-vars
140+
141+ // const USERS = generateUsers( // TODO this takes forever bruhh
142+ // createdStudents.map((createdStudent) => createdStudent.ERPID),
143+ // createdFaculty.map((createdFaculty) => createdFaculty.ERPID),
144+ // )
145+
146+ // const createdUsers = await User.createMultiple(USERS)
147+
148+ const createdUsers = await User . read ( ) ; // use this after you initialized Users at least once, or wait for years every time
149+
150+ const NOTIFS = generateNotifications (
151+ createdUsers . data // remove data from each of these if you are initializing users for the first time
152+ . filter ( ( user ) => user . userType === "STUDENT" )
153+ . map ( ( student ) => student . _id ) ,
154+ createdUsers . data
155+ . filter ( ( user ) => user . userType === "FACULTY" )
156+ . map ( ( faculty ) => faculty . _id ) ,
157+ createdUsers . data
158+ . filter ( ( user ) => user . userType === "ADMIN" )
159+ . map ( ( admin ) => admin . _id ) ,
160+ ) ;
161+
162+ const createdNotifications = await Notification . createMultiple ( NOTIFS ) ; // eslint-disable-line no-unused-vars
163+
164+ const GROUPS = generateGroups (
165+ createdUsers . data
166+ . filter ( ( user ) => user . userType === "STUDENT" )
167+ . map ( ( student ) => student . _id ) ,
168+ ) ;
169+
170+ const createdGroups = await Group . createMultiple ( GROUPS ) ;
171+
172+ const ACTIVITYBP = generateActivityBP (
173+ createdInfras . map ( ( createdInfra ) => createdInfra . _id ) ,
174+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
175+ createdFaculty . map ( ( faculty ) => faculty . _id ) ,
176+ createdGroups . map ( ( createdGroup ) => createdGroup . _id ) ,
177+ ) ;
178+
179+ const createdActivityBP = await ActivityBlueprint . createMultiple ( ACTIVITYBP ) ;
180+
181+ const ACTIVITY = generateActivity (
182+ createdActivityBP . map ( ( activityBP ) => activityBP . _id ) ,
183+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
184+ createdFaculty . map ( ( faculty ) => faculty . _id ) ,
185+ createdGroups . map ( ( createdGroup ) => createdGroup . _id ) ,
186+ createdTuts . map ( ( createdTut ) => createdTut . _id ) ,
187+ createdPracs . map ( ( createdPrac ) => createdPrac . _id ) ,
188+ createdTopics . map ( ( createdTopic ) => createdTopic . _id ) ,
189+ createdStudents . map ( ( createdStudent ) => createdStudent . _id ) ,
190+ ) ;
191+
192+ const createdActivity = await Activity . createMultiple ( ACTIVITY ) ;
193+
194+ const EXAMS = generateExams (
195+ createdInfras . map ( ( createdInfra ) => createdInfra . _id ) ,
196+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
197+ createdFaculty . map ( ( faculty ) => faculty . _id ) ,
198+ ) ;
199+
200+ const createdExams = await Exam . createMultiple ( EXAMS ) ;
201+
202+ const PAPERS = generatePaper (
203+ createdStudents . map ( ( createdStudent ) => createdStudent . _id ) ,
204+ createdExams . map ( ( createdExam ) => createdExam . _id ) ,
205+ createdFaculty . map ( ( faculty ) => faculty . _id ) ,
206+ ) ;
207+
208+ const createdPapers = await Paper . createMultiple ( PAPERS ) ; // eslint-disable-line no-unused-vars
209+
210+ const COURSEWORK = generateCoursework (
211+ createdStudents . map ( ( createdStudent ) => createdStudent . _id ) ,
212+ createdCourses . map ( ( createdCourse ) => createdCourse . _id ) ,
213+ createdTuts . map ( ( createdTut ) => createdTut . _id ) ,
214+ createdPracs . map ( ( createdPrac ) => createdPrac . _id ) ,
215+ createdActivity . map ( ( activity ) => activity . _id ) ,
216+ ) ;
217+
218+ const createdCoursework = await Coursework . createMultiple ( COURSEWORK ) ; // eslint-disable-line no-unused-vars
219+
220+ const TIMETABLE = generateTimetables (
221+ createdActivityBP . map ( ( activityBP ) => activityBP . _id ) ,
222+ createdGroups . map ( ( createdGroup ) => createdGroup . _id ) ,
223+ createdFaculty . map ( ( faculty ) => faculty . _id ) ,
224+ ) ;
225+
226+ const createdTimetables = await Timetable . createMultiple ( TIMETABLE ) ; // eslint-disable-line no-unused-vars
90227
91228process . exit ( 0 ) ;
0 commit comments