const db = require('../models'); const Users = db.users; const Analytics = db.analytics; const Courses = db.courses; const DiscussionBoards = db.discussion_boards; const Enrollments = db.enrollments; const Instructors = db.instructors; const Students = db.students; const Likes = db.likes; const AnalyticsData = [ { // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, ]; const CoursesData = [ { title: 'Introduction to Programming', description: 'Learn the basics of programming with Python.', // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { title: 'Advanced Mathematics', description: 'Explore complex mathematical concepts and theories.', // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { title: 'Digital Marketing', description: 'Master the art of online marketing strategies.', // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { title: 'Graphic Design', description: 'Develop skills in design software and visual communication.', // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, { title: 'Business Management', description: 'Understand the fundamentals of managing a business.', // type code here for "relation_many" field // type code here for "relation_many" field // type code here for "relation_many" field }, ]; const DiscussionBoardsData = [ { topic: 'Python Basics', // type code here for "relation_one" field }, { topic: 'Calculus Challenges', // type code here for "relation_one" field }, { topic: 'SEO Techniques', // type code here for "relation_one" field }, { topic: 'Design Trends', // type code here for "relation_one" field }, { topic: 'Leadership Skills', // type code here for "relation_one" field }, ]; const EnrollmentsData = [ { // type code here for "relation_one" field // type code here for "relation_one" field payment_status: 'pending', }, { // type code here for "relation_one" field // type code here for "relation_one" field payment_status: 'overdue', }, { // type code here for "relation_one" field // type code here for "relation_one" field payment_status: 'pending', }, { // type code here for "relation_one" field // type code here for "relation_one" field payment_status: 'pending', }, { // type code here for "relation_one" field // type code here for "relation_one" field payment_status: 'paid', }, ]; const InstructorsData = [ { name: 'Dr. Emily Clark', email: 'emily.clark@example.com', qualifications: 'PhD in Computer Science', // type code here for "relation_many" field }, { name: 'Prof. John Doe', email: 'john.doe@example.com', qualifications: 'MBA in Business Administration', // type code here for "relation_many" field }, { name: 'Ms. Sarah Lee', email: 'sarah.lee@example.com', qualifications: 'MFA in Graphic Design', // type code here for "relation_many" field }, { name: 'Mr. Michael Green', email: 'michael.green@example.com', qualifications: 'MSc in Mathematics', // type code here for "relation_many" field }, { name: 'Dr. Olivia White', email: 'olivia.white@example.com', qualifications: 'PhD in Marketing', // type code here for "relation_many" field }, ]; const StudentsData = [ { name: 'Alice Johnson', email: 'alice.johnson@example.com', // type code here for "relation_many" field }, { name: 'Bob Smith', email: 'bob.smith@example.com', // type code here for "relation_many" field }, { name: 'Charlie Brown', email: 'charlie.brown@example.com', // type code here for "relation_many" field }, { name: 'Diana Prince', email: 'diana.prince@example.com', // type code here for "relation_many" field }, { name: 'Ethan Hunt', email: 'ethan.hunt@example.com', // type code here for "relation_many" field }, ]; const LikesData = [ { amount: 'Noam Chomsky', }, { amount: 'Jonas Salk', }, { amount: 'Comte de Buffon', }, { amount: 'Gertrude Belle Elion', }, { amount: 'Jean Baptiste Lamarck', }, ]; // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" async function associateDiscussionBoardWithCourse() { const relatedCourse0 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const DiscussionBoard0 = await DiscussionBoards.findOne({ order: [['id', 'ASC']], offset: 0, }); if (DiscussionBoard0?.setCourse) { await DiscussionBoard0.setCourse(relatedCourse0); } const relatedCourse1 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const DiscussionBoard1 = await DiscussionBoards.findOne({ order: [['id', 'ASC']], offset: 1, }); if (DiscussionBoard1?.setCourse) { await DiscussionBoard1.setCourse(relatedCourse1); } const relatedCourse2 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const DiscussionBoard2 = await DiscussionBoards.findOne({ order: [['id', 'ASC']], offset: 2, }); if (DiscussionBoard2?.setCourse) { await DiscussionBoard2.setCourse(relatedCourse2); } const relatedCourse3 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const DiscussionBoard3 = await DiscussionBoards.findOne({ order: [['id', 'ASC']], offset: 3, }); if (DiscussionBoard3?.setCourse) { await DiscussionBoard3.setCourse(relatedCourse3); } const relatedCourse4 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const DiscussionBoard4 = await DiscussionBoards.findOne({ order: [['id', 'ASC']], offset: 4, }); if (DiscussionBoard4?.setCourse) { await DiscussionBoard4.setCourse(relatedCourse4); } } async function associateEnrollmentWithStudent() { const relatedStudent0 = await Students.findOne({ offset: Math.floor(Math.random() * (await Students.count())), }); const Enrollment0 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 0, }); if (Enrollment0?.setStudent) { await Enrollment0.setStudent(relatedStudent0); } const relatedStudent1 = await Students.findOne({ offset: Math.floor(Math.random() * (await Students.count())), }); const Enrollment1 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 1, }); if (Enrollment1?.setStudent) { await Enrollment1.setStudent(relatedStudent1); } const relatedStudent2 = await Students.findOne({ offset: Math.floor(Math.random() * (await Students.count())), }); const Enrollment2 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 2, }); if (Enrollment2?.setStudent) { await Enrollment2.setStudent(relatedStudent2); } const relatedStudent3 = await Students.findOne({ offset: Math.floor(Math.random() * (await Students.count())), }); const Enrollment3 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 3, }); if (Enrollment3?.setStudent) { await Enrollment3.setStudent(relatedStudent3); } const relatedStudent4 = await Students.findOne({ offset: Math.floor(Math.random() * (await Students.count())), }); const Enrollment4 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 4, }); if (Enrollment4?.setStudent) { await Enrollment4.setStudent(relatedStudent4); } } async function associateEnrollmentWithCourse() { const relatedCourse0 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const Enrollment0 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 0, }); if (Enrollment0?.setCourse) { await Enrollment0.setCourse(relatedCourse0); } const relatedCourse1 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const Enrollment1 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 1, }); if (Enrollment1?.setCourse) { await Enrollment1.setCourse(relatedCourse1); } const relatedCourse2 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const Enrollment2 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 2, }); if (Enrollment2?.setCourse) { await Enrollment2.setCourse(relatedCourse2); } const relatedCourse3 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const Enrollment3 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 3, }); if (Enrollment3?.setCourse) { await Enrollment3.setCourse(relatedCourse3); } const relatedCourse4 = await Courses.findOne({ offset: Math.floor(Math.random() * (await Courses.count())), }); const Enrollment4 = await Enrollments.findOne({ order: [['id', 'ASC']], offset: 4, }); if (Enrollment4?.setCourse) { await Enrollment4.setCourse(relatedCourse4); } } // Similar logic for "relation_many" // Similar logic for "relation_many" module.exports = { up: async (queryInterface, Sequelize) => { await Analytics.bulkCreate(AnalyticsData); await Courses.bulkCreate(CoursesData); await DiscussionBoards.bulkCreate(DiscussionBoardsData); await Enrollments.bulkCreate(EnrollmentsData); await Instructors.bulkCreate(InstructorsData); await Students.bulkCreate(StudentsData); await Likes.bulkCreate(LikesData); await Promise.all([ // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" await associateDiscussionBoardWithCourse(), await associateEnrollmentWithStudent(), await associateEnrollmentWithCourse(), // Similar logic for "relation_many" // Similar logic for "relation_many" ]); }, down: async (queryInterface, Sequelize) => { await queryInterface.bulkDelete('analytics', null, {}); await queryInterface.bulkDelete('courses', null, {}); await queryInterface.bulkDelete('discussion_boards', null, {}); await queryInterface.bulkDelete('enrollments', null, {}); await queryInterface.bulkDelete('instructors', null, {}); await queryInterface.bulkDelete('students', null, {}); await queryInterface.bulkDelete('likes', null, {}); }, };