643 lines
16 KiB
JavaScript
643 lines
16 KiB
JavaScript
const db = require('../models');
|
|
const Users = db.users;
|
|
|
|
const Applications = db.applications;
|
|
|
|
const InternshipCoordinators = db.internship_coordinators;
|
|
|
|
const InternshipSupervisors = db.internship_supervisors;
|
|
|
|
const Internships = db.internships;
|
|
|
|
const Students = db.students;
|
|
|
|
const Companies = db.companies;
|
|
|
|
const ApplicationsData = [
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
status: 'applied',
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
status: 'applied',
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
status: 'accepted',
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const InternshipCoordinatorsData = [
|
|
{
|
|
first_name: 'Alice',
|
|
|
|
last_name: 'Williams',
|
|
|
|
email: 'alice.williams@techcorp.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'David',
|
|
|
|
last_name: 'Miller',
|
|
|
|
email: 'david.miller@innovatech.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'Laura',
|
|
|
|
last_name: 'Wilson',
|
|
|
|
email: 'laura.wilson@futureworks.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const InternshipSupervisorsData = [
|
|
{
|
|
first_name: 'Robert',
|
|
|
|
last_name: 'Anderson',
|
|
|
|
email: 'robert.anderson@techcorp.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'Patricia',
|
|
|
|
last_name: 'Thomas',
|
|
|
|
email: 'patricia.thomas@innovatech.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'Charles',
|
|
|
|
last_name: 'Jackson',
|
|
|
|
email: 'charles.jackson@futureworks.com',
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const InternshipsData = [
|
|
{
|
|
title: 'Software Development Intern',
|
|
|
|
description: 'Work on developing new software solutions.',
|
|
|
|
start_date: new Date('2024-06-01T09:00:00Z'),
|
|
|
|
end_date: new Date('2024-08-31T17:00:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
title: 'Marketing Intern',
|
|
|
|
description: 'Assist in marketing campaigns and strategies.',
|
|
|
|
start_date: new Date('2024-06-15T09:00:00Z'),
|
|
|
|
end_date: new Date('2024-09-15T17:00:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
title: 'Data Analysis Intern',
|
|
|
|
description: 'Analyze data trends and provide insights.',
|
|
|
|
start_date: new Date('2024-07-01T09:00:00Z'),
|
|
|
|
end_date: new Date('2024-09-30T17:00:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const StudentsData = [
|
|
{
|
|
first_name: 'John',
|
|
|
|
last_name: 'Doe',
|
|
|
|
email: 'john.doe@example.com',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'Jane',
|
|
|
|
last_name: 'Smith',
|
|
|
|
email: 'jane.smith@example.com',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
first_name: 'Emily',
|
|
|
|
last_name: 'Johnson',
|
|
|
|
email: 'emily.johnson@example.com',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const CompaniesData = [
|
|
{
|
|
name: 'TechCorp',
|
|
},
|
|
|
|
{
|
|
name: 'Innovatech',
|
|
},
|
|
|
|
{
|
|
name: 'FutureWorks',
|
|
},
|
|
];
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateUserWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const User0 = await Users.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (User0?.setCompany) {
|
|
await User0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const User1 = await Users.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (User1?.setCompany) {
|
|
await User1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const User2 = await Users.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (User2?.setCompany) {
|
|
await User2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
async function associateApplicationWithStudent() {
|
|
const relatedStudent0 = await Students.findOne({
|
|
offset: Math.floor(Math.random() * (await Students.count())),
|
|
});
|
|
const Application0 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Application0?.setStudent) {
|
|
await Application0.setStudent(relatedStudent0);
|
|
}
|
|
|
|
const relatedStudent1 = await Students.findOne({
|
|
offset: Math.floor(Math.random() * (await Students.count())),
|
|
});
|
|
const Application1 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Application1?.setStudent) {
|
|
await Application1.setStudent(relatedStudent1);
|
|
}
|
|
|
|
const relatedStudent2 = await Students.findOne({
|
|
offset: Math.floor(Math.random() * (await Students.count())),
|
|
});
|
|
const Application2 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Application2?.setStudent) {
|
|
await Application2.setStudent(relatedStudent2);
|
|
}
|
|
}
|
|
|
|
async function associateApplicationWithInternship() {
|
|
const relatedInternship0 = await Internships.findOne({
|
|
offset: Math.floor(Math.random() * (await Internships.count())),
|
|
});
|
|
const Application0 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Application0?.setInternship) {
|
|
await Application0.setInternship(relatedInternship0);
|
|
}
|
|
|
|
const relatedInternship1 = await Internships.findOne({
|
|
offset: Math.floor(Math.random() * (await Internships.count())),
|
|
});
|
|
const Application1 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Application1?.setInternship) {
|
|
await Application1.setInternship(relatedInternship1);
|
|
}
|
|
|
|
const relatedInternship2 = await Internships.findOne({
|
|
offset: Math.floor(Math.random() * (await Internships.count())),
|
|
});
|
|
const Application2 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Application2?.setInternship) {
|
|
await Application2.setInternship(relatedInternship2);
|
|
}
|
|
}
|
|
|
|
async function associateApplicationWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Application0 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Application0?.setCompany) {
|
|
await Application0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Application1 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Application1?.setCompany) {
|
|
await Application1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Application2 = await Applications.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Application2?.setCompany) {
|
|
await Application2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateInternshipCoordinatorWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipCoordinator0 = await InternshipCoordinators.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (InternshipCoordinator0?.setCompany) {
|
|
await InternshipCoordinator0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipCoordinator1 = await InternshipCoordinators.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (InternshipCoordinator1?.setCompany) {
|
|
await InternshipCoordinator1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipCoordinator2 = await InternshipCoordinators.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (InternshipCoordinator2?.setCompany) {
|
|
await InternshipCoordinator2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateInternshipSupervisorWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipSupervisor0 = await InternshipSupervisors.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (InternshipSupervisor0?.setCompany) {
|
|
await InternshipSupervisor0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipSupervisor1 = await InternshipSupervisors.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (InternshipSupervisor1?.setCompany) {
|
|
await InternshipSupervisor1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const InternshipSupervisor2 = await InternshipSupervisors.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (InternshipSupervisor2?.setCompany) {
|
|
await InternshipSupervisor2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
async function associateInternshipWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship0 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Internship0?.setCompany) {
|
|
await Internship0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship1 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Internship1?.setCompany) {
|
|
await Internship1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship2 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Internship2?.setCompany) {
|
|
await Internship2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateInternshipWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship0 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Internship0?.setCompany) {
|
|
await Internship0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship1 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Internship1?.setCompany) {
|
|
await Internship1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Internship2 = await Internships.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Internship2?.setCompany) {
|
|
await Internship2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
async function associateStudentWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student0 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Student0?.setCompany) {
|
|
await Student0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student1 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Student1?.setCompany) {
|
|
await Student1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student2 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Student2?.setCompany) {
|
|
await Student2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
async function associateStudentWithCompany() {
|
|
const relatedCompany0 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student0 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Student0?.setCompany) {
|
|
await Student0.setCompany(relatedCompany0);
|
|
}
|
|
|
|
const relatedCompany1 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student1 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Student1?.setCompany) {
|
|
await Student1.setCompany(relatedCompany1);
|
|
}
|
|
|
|
const relatedCompany2 = await Companies.findOne({
|
|
offset: Math.floor(Math.random() * (await Companies.count())),
|
|
});
|
|
const Student2 = await Students.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Student2?.setCompany) {
|
|
await Student2.setCompany(relatedCompany2);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
await Applications.bulkCreate(ApplicationsData);
|
|
|
|
await InternshipCoordinators.bulkCreate(InternshipCoordinatorsData);
|
|
|
|
await InternshipSupervisors.bulkCreate(InternshipSupervisorsData);
|
|
|
|
await Internships.bulkCreate(InternshipsData);
|
|
|
|
await Students.bulkCreate(StudentsData);
|
|
|
|
await Companies.bulkCreate(CompaniesData);
|
|
|
|
await Promise.all([
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateUserWithCompany(),
|
|
|
|
await associateApplicationWithStudent(),
|
|
|
|
await associateApplicationWithInternship(),
|
|
|
|
await associateApplicationWithCompany(),
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateInternshipCoordinatorWithCompany(),
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateInternshipSupervisorWithCompany(),
|
|
|
|
await associateInternshipWithCompany(),
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateInternshipWithCompany(),
|
|
|
|
await associateStudentWithCompany(),
|
|
|
|
await associateStudentWithCompany(),
|
|
]);
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.bulkDelete('applications', null, {});
|
|
|
|
await queryInterface.bulkDelete('internship_coordinators', null, {});
|
|
|
|
await queryInterface.bulkDelete('internship_supervisors', null, {});
|
|
|
|
await queryInterface.bulkDelete('internships', null, {});
|
|
|
|
await queryInterface.bulkDelete('students', null, {});
|
|
|
|
await queryInterface.bulkDelete('companies', null, {});
|
|
},
|
|
};
|