30430/backend/src/db/seeders/20231127130745-sample-data.js
2025-04-03 06:15:19 +00:00

1966 lines
47 KiB
JavaScript

const db = require('../models');
const Users = db.users;
const Accounts = db.accounts;
const Assets = db.assets;
const Attendances = db.attendances;
const Employees = db.employees;
const Expenses = db.expenses;
const Leaves = db.leaves;
const Payrolls = db.payrolls;
const Performances = db.performances;
const Procurements = db.procurements;
const Projects = db.projects;
const Vendors = db.vendors;
const Organizations = db.organizations;
const AccountsData = [
{
account_name: 'Main Account',
balance: 100000,
// type code here for "relation_one" field
},
{
account_name: 'Savings Account',
balance: 50000,
// type code here for "relation_one" field
},
{
account_name: 'Expense Account',
balance: 20000,
// type code here for "relation_one" field
},
{
account_name: 'Investment Account',
balance: 30000,
// type code here for "relation_one" field
},
{
account_name: 'Payroll Account',
balance: 40000,
// type code here for "relation_one" field
},
];
const AssetsData = [
{
name: 'Dell Laptop',
type: 'Electronics',
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
name: 'Office Desk',
type: 'Furniture',
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
name: 'Projector',
type: 'Electronics',
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
name: 'Office Chair',
type: 'Furniture',
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
name: 'Monitor',
type: 'Electronics',
// type code here for "relation_one" field
// type code here for "relation_one" field
},
];
const AttendancesData = [
{
// type code here for "relation_one" field
date: new Date('2023-10-01T08:00:00Z'),
present: true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
date: new Date('2023-10-02T08:00:00Z'),
present: false,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
date: new Date('2023-10-01T08:00:00Z'),
present: true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
date: new Date('2023-10-02T08:00:00Z'),
present: true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
date: new Date('2023-10-01T08:00:00Z'),
present: false,
// type code here for "relation_one" field
},
];
const EmployeesData = [
{
first_name: 'John',
last_name: 'Doe',
// type code here for "relation_one" 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_one" field
},
{
first_name: 'Jane',
last_name: 'Smith',
// type code here for "relation_one" 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_one" field
},
{
first_name: 'Alice',
last_name: 'Johnson',
// type code here for "relation_one" 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_one" field
},
{
first_name: 'Bob',
last_name: 'Brown',
// type code here for "relation_one" 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_one" field
},
{
first_name: 'Charlie',
last_name: 'Davis',
// type code here for "relation_one" 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_one" field
},
];
const ExpensesData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
amount: 150.75,
description: 'Travel expenses for client meeting',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
amount: 200,
description: 'Office supplies purchase',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
amount: 50.5,
description: 'Lunch with client',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
amount: 300,
description: 'Conference registration fee',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
amount: 120,
description: 'Team building activity',
// type code here for "relation_one" field
},
];
const LeavesData = [
{
// type code here for "relation_one" field
start_date: new Date('2023-10-10T00:00:00Z'),
end_date: new Date('2023-10-15T00:00:00Z'),
status: 'Rejected',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
start_date: new Date('2023-10-05T00:00:00Z'),
end_date: new Date('2023-10-07T00:00:00Z'),
status: 'Approved',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
start_date: new Date('2023-10-12T00:00:00Z'),
end_date: new Date('2023-10-14T00:00:00Z'),
status: 'Pending',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
start_date: new Date('2023-10-20T00:00:00Z'),
end_date: new Date('2023-10-22T00:00:00Z'),
status: 'Pending',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
start_date: new Date('2023-10-25T00:00:00Z'),
end_date: new Date('2023-10-28T00:00:00Z'),
status: 'Pending',
// type code here for "relation_one" field
},
];
const PayrollsData = [
{
// type code here for "relation_one" field
salary: 75000,
pay_date: new Date('2023-10-30T00:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
salary: 65000,
pay_date: new Date('2023-10-30T00:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
salary: 70000,
pay_date: new Date('2023-10-30T00:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
salary: 80000,
pay_date: new Date('2023-10-30T00:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
salary: 72000,
pay_date: new Date('2023-10-30T00:00:00Z'),
// type code here for "relation_one" field
},
];
const PerformancesData = [
{
// type code here for "relation_one" field
review: 'Excellent performance in Q3',
rating: 'Poor',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
review: 'Good team player',
rating: 'Average',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
review: 'Average performance, needs improvement',
rating: 'Poor',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
review: 'Outstanding leadership skills',
rating: 'Good',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
review: 'Below expectations, requires training',
rating: 'Good',
// type code here for "relation_one" field
},
];
const ProcurementsData = [
{
// type code here for "relation_one" field
item: 'Laptops',
cost: 5000,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
item: 'Office Chairs',
cost: 1500,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
item: 'Projectors',
cost: 2000,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
item: 'Desks',
cost: 2500,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
item: 'Monitors',
cost: 3000,
// type code here for "relation_one" field
},
];
const ProjectsData = [
{
name: 'Project Alpha',
location: 'New York',
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
name: 'Project Beta',
location: 'San Francisco',
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
name: 'Project Gamma',
location: 'Los Angeles',
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
name: 'Project Delta',
location: 'Chicago',
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
name: 'Project Epsilon',
location: 'Houston',
// type code here for "relation_many" field
// type code here for "relation_one" field
},
];
const VendorsData = [
{
name: 'Tech Supplies Inc.',
contact: 'contact@techsupplies.com',
// type code here for "relation_one" field
},
{
name: 'Office Essentials',
contact: 'info@officeessentials.com',
// type code here for "relation_one" field
},
{
name: 'Global Vendors',
contact: 'support@globalvendors.com',
// type code here for "relation_one" field
},
{
name: 'Procure Plus',
contact: 'sales@procureplus.com',
// type code here for "relation_one" field
},
{
name: 'Vendor Solutions',
contact: 'service@vendorsolutions.com',
// type code here for "relation_one" field
},
];
const OrganizationsData = [
{
name: 'Nicolaus Copernicus',
},
{
name: 'Charles Sherrington',
},
{
name: 'Neils Bohr',
},
{
name: 'James Watson',
},
{
name: 'Gregor Mendel',
},
];
// Similar logic for "relation_many"
async function associateUserWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User0 = await Users.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (User0?.setOrganization) {
await User0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User1 = await Users.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (User1?.setOrganization) {
await User1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User2 = await Users.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (User2?.setOrganization) {
await User2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User3 = await Users.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (User3?.setOrganization) {
await User3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User4 = await Users.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (User4?.setOrganization) {
await User4.setOrganization(relatedOrganization4);
}
}
async function associateAccountWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Account0 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Account0?.setOrganization) {
await Account0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Account1 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Account1?.setOrganization) {
await Account1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Account2 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Account2?.setOrganization) {
await Account2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Account3 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Account3?.setOrganization) {
await Account3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Account4 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Account4?.setOrganization) {
await Account4.setOrganization(relatedOrganization4);
}
}
async function associateAssetWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Asset0 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Asset0?.setEmployee) {
await Asset0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Asset1 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Asset1?.setEmployee) {
await Asset1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Asset2 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Asset2?.setEmployee) {
await Asset2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Asset3 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Asset3?.setEmployee) {
await Asset3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Asset4 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Asset4?.setEmployee) {
await Asset4.setEmployee(relatedEmployee4);
}
}
async function associateAssetWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset0 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Asset0?.setOrganization) {
await Asset0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset1 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Asset1?.setOrganization) {
await Asset1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset2 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Asset2?.setOrganization) {
await Asset2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset3 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Asset3?.setOrganization) {
await Asset3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset4 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Asset4?.setOrganization) {
await Asset4.setOrganization(relatedOrganization4);
}
}
async function associateAttendanceWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Attendance0 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Attendance0?.setEmployee) {
await Attendance0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Attendance1 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Attendance1?.setEmployee) {
await Attendance1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Attendance2 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Attendance2?.setEmployee) {
await Attendance2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Attendance3 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Attendance3?.setEmployee) {
await Attendance3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Attendance4 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Attendance4?.setEmployee) {
await Attendance4.setEmployee(relatedEmployee4);
}
}
async function associateAttendanceWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Attendance0 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Attendance0?.setOrganization) {
await Attendance0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Attendance1 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Attendance1?.setOrganization) {
await Attendance1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Attendance2 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Attendance2?.setOrganization) {
await Attendance2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Attendance3 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Attendance3?.setOrganization) {
await Attendance3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Attendance4 = await Attendances.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Attendance4?.setOrganization) {
await Attendance4.setOrganization(relatedOrganization4);
}
}
async function associateEmployeeWithUser() {
const relatedUser0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Employee0 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Employee0?.setUser) {
await Employee0.setUser(relatedUser0);
}
const relatedUser1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Employee1 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Employee1?.setUser) {
await Employee1.setUser(relatedUser1);
}
const relatedUser2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Employee2 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Employee2?.setUser) {
await Employee2.setUser(relatedUser2);
}
const relatedUser3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Employee3 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Employee3?.setUser) {
await Employee3.setUser(relatedUser3);
}
const relatedUser4 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Employee4 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Employee4?.setUser) {
await Employee4.setUser(relatedUser4);
}
}
// Similar logic for "relation_many"
// Similar logic for "relation_many"
// Similar logic for "relation_many"
async function associateEmployeeWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Employee0 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Employee0?.setOrganization) {
await Employee0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Employee1 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Employee1?.setOrganization) {
await Employee1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Employee2 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Employee2?.setOrganization) {
await Employee2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Employee3 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Employee3?.setOrganization) {
await Employee3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Employee4 = await Employees.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Employee4?.setOrganization) {
await Employee4.setOrganization(relatedOrganization4);
}
}
async function associateExpenseWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Expense0 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Expense0?.setEmployee) {
await Expense0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Expense1 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Expense1?.setEmployee) {
await Expense1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Expense2 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Expense2?.setEmployee) {
await Expense2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Expense3 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Expense3?.setEmployee) {
await Expense3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Expense4 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Expense4?.setEmployee) {
await Expense4.setEmployee(relatedEmployee4);
}
}
async function associateExpenseWithProject() {
const relatedProject0 = await Projects.findOne({
offset: Math.floor(Math.random() * (await Projects.count())),
});
const Expense0 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Expense0?.setProject) {
await Expense0.setProject(relatedProject0);
}
const relatedProject1 = await Projects.findOne({
offset: Math.floor(Math.random() * (await Projects.count())),
});
const Expense1 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Expense1?.setProject) {
await Expense1.setProject(relatedProject1);
}
const relatedProject2 = await Projects.findOne({
offset: Math.floor(Math.random() * (await Projects.count())),
});
const Expense2 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Expense2?.setProject) {
await Expense2.setProject(relatedProject2);
}
const relatedProject3 = await Projects.findOne({
offset: Math.floor(Math.random() * (await Projects.count())),
});
const Expense3 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Expense3?.setProject) {
await Expense3.setProject(relatedProject3);
}
const relatedProject4 = await Projects.findOne({
offset: Math.floor(Math.random() * (await Projects.count())),
});
const Expense4 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Expense4?.setProject) {
await Expense4.setProject(relatedProject4);
}
}
async function associateExpenseWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Expense0 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Expense0?.setOrganization) {
await Expense0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Expense1 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Expense1?.setOrganization) {
await Expense1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Expense2 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Expense2?.setOrganization) {
await Expense2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Expense3 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Expense3?.setOrganization) {
await Expense3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Expense4 = await Expenses.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Expense4?.setOrganization) {
await Expense4.setOrganization(relatedOrganization4);
}
}
async function associateLeafeWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Leafe0 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Leafe0?.setEmployee) {
await Leafe0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Leafe1 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Leafe1?.setEmployee) {
await Leafe1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Leafe2 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Leafe2?.setEmployee) {
await Leafe2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Leafe3 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Leafe3?.setEmployee) {
await Leafe3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Leafe4 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Leafe4?.setEmployee) {
await Leafe4.setEmployee(relatedEmployee4);
}
}
async function associateLeafeWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Leafe0 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Leafe0?.setOrganization) {
await Leafe0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Leafe1 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Leafe1?.setOrganization) {
await Leafe1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Leafe2 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Leafe2?.setOrganization) {
await Leafe2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Leafe3 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Leafe3?.setOrganization) {
await Leafe3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Leafe4 = await Leaves.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Leafe4?.setOrganization) {
await Leafe4.setOrganization(relatedOrganization4);
}
}
async function associatePayrollWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Payroll0 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Payroll0?.setEmployee) {
await Payroll0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Payroll1 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Payroll1?.setEmployee) {
await Payroll1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Payroll2 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Payroll2?.setEmployee) {
await Payroll2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Payroll3 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Payroll3?.setEmployee) {
await Payroll3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Payroll4 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Payroll4?.setEmployee) {
await Payroll4.setEmployee(relatedEmployee4);
}
}
async function associatePayrollWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Payroll0 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Payroll0?.setOrganization) {
await Payroll0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Payroll1 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Payroll1?.setOrganization) {
await Payroll1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Payroll2 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Payroll2?.setOrganization) {
await Payroll2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Payroll3 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Payroll3?.setOrganization) {
await Payroll3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Payroll4 = await Payrolls.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Payroll4?.setOrganization) {
await Payroll4.setOrganization(relatedOrganization4);
}
}
async function associatePerformanceWithEmployee() {
const relatedEmployee0 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Performance0 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Performance0?.setEmployee) {
await Performance0.setEmployee(relatedEmployee0);
}
const relatedEmployee1 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Performance1 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Performance1?.setEmployee) {
await Performance1.setEmployee(relatedEmployee1);
}
const relatedEmployee2 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Performance2 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Performance2?.setEmployee) {
await Performance2.setEmployee(relatedEmployee2);
}
const relatedEmployee3 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Performance3 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Performance3?.setEmployee) {
await Performance3.setEmployee(relatedEmployee3);
}
const relatedEmployee4 = await Employees.findOne({
offset: Math.floor(Math.random() * (await Employees.count())),
});
const Performance4 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Performance4?.setEmployee) {
await Performance4.setEmployee(relatedEmployee4);
}
}
async function associatePerformanceWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Performance0 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Performance0?.setOrganization) {
await Performance0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Performance1 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Performance1?.setOrganization) {
await Performance1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Performance2 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Performance2?.setOrganization) {
await Performance2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Performance3 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Performance3?.setOrganization) {
await Performance3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Performance4 = await Performances.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Performance4?.setOrganization) {
await Performance4.setOrganization(relatedOrganization4);
}
}
async function associateProcurementWithVendor() {
const relatedVendor0 = await Vendors.findOne({
offset: Math.floor(Math.random() * (await Vendors.count())),
});
const Procurement0 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Procurement0?.setVendor) {
await Procurement0.setVendor(relatedVendor0);
}
const relatedVendor1 = await Vendors.findOne({
offset: Math.floor(Math.random() * (await Vendors.count())),
});
const Procurement1 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Procurement1?.setVendor) {
await Procurement1.setVendor(relatedVendor1);
}
const relatedVendor2 = await Vendors.findOne({
offset: Math.floor(Math.random() * (await Vendors.count())),
});
const Procurement2 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Procurement2?.setVendor) {
await Procurement2.setVendor(relatedVendor2);
}
const relatedVendor3 = await Vendors.findOne({
offset: Math.floor(Math.random() * (await Vendors.count())),
});
const Procurement3 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Procurement3?.setVendor) {
await Procurement3.setVendor(relatedVendor3);
}
const relatedVendor4 = await Vendors.findOne({
offset: Math.floor(Math.random() * (await Vendors.count())),
});
const Procurement4 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Procurement4?.setVendor) {
await Procurement4.setVendor(relatedVendor4);
}
}
async function associateProcurementWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Procurement0 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Procurement0?.setOrganization) {
await Procurement0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Procurement1 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Procurement1?.setOrganization) {
await Procurement1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Procurement2 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Procurement2?.setOrganization) {
await Procurement2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Procurement3 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Procurement3?.setOrganization) {
await Procurement3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Procurement4 = await Procurements.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Procurement4?.setOrganization) {
await Procurement4.setOrganization(relatedOrganization4);
}
}
// Similar logic for "relation_many"
async function associateProjectWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Project0 = await Projects.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Project0?.setOrganization) {
await Project0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Project1 = await Projects.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Project1?.setOrganization) {
await Project1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Project2 = await Projects.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Project2?.setOrganization) {
await Project2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Project3 = await Projects.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Project3?.setOrganization) {
await Project3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Project4 = await Projects.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Project4?.setOrganization) {
await Project4.setOrganization(relatedOrganization4);
}
}
async function associateVendorWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Vendor0 = await Vendors.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Vendor0?.setOrganization) {
await Vendor0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Vendor1 = await Vendors.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Vendor1?.setOrganization) {
await Vendor1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Vendor2 = await Vendors.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Vendor2?.setOrganization) {
await Vendor2.setOrganization(relatedOrganization2);
}
const relatedOrganization3 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Vendor3 = await Vendors.findOne({
order: [['id', 'ASC']],
offset: 3,
});
if (Vendor3?.setOrganization) {
await Vendor3.setOrganization(relatedOrganization3);
}
const relatedOrganization4 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Vendor4 = await Vendors.findOne({
order: [['id', 'ASC']],
offset: 4,
});
if (Vendor4?.setOrganization) {
await Vendor4.setOrganization(relatedOrganization4);
}
}
module.exports = {
up: async (queryInterface, Sequelize) => {
await Accounts.bulkCreate(AccountsData);
await Assets.bulkCreate(AssetsData);
await Attendances.bulkCreate(AttendancesData);
await Employees.bulkCreate(EmployeesData);
await Expenses.bulkCreate(ExpensesData);
await Leaves.bulkCreate(LeavesData);
await Payrolls.bulkCreate(PayrollsData);
await Performances.bulkCreate(PerformancesData);
await Procurements.bulkCreate(ProcurementsData);
await Projects.bulkCreate(ProjectsData);
await Vendors.bulkCreate(VendorsData);
await Organizations.bulkCreate(OrganizationsData);
await Promise.all([
// Similar logic for "relation_many"
await associateUserWithOrganization(),
await associateAccountWithOrganization(),
await associateAssetWithEmployee(),
await associateAssetWithOrganization(),
await associateAttendanceWithEmployee(),
await associateAttendanceWithOrganization(),
await associateEmployeeWithUser(),
// Similar logic for "relation_many"
// Similar logic for "relation_many"
// Similar logic for "relation_many"
await associateEmployeeWithOrganization(),
await associateExpenseWithEmployee(),
await associateExpenseWithProject(),
await associateExpenseWithOrganization(),
await associateLeafeWithEmployee(),
await associateLeafeWithOrganization(),
await associatePayrollWithEmployee(),
await associatePayrollWithOrganization(),
await associatePerformanceWithEmployee(),
await associatePerformanceWithOrganization(),
await associateProcurementWithVendor(),
await associateProcurementWithOrganization(),
// Similar logic for "relation_many"
await associateProjectWithOrganization(),
await associateVendorWithOrganization(),
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('accounts', null, {});
await queryInterface.bulkDelete('assets', null, {});
await queryInterface.bulkDelete('attendances', null, {});
await queryInterface.bulkDelete('employees', null, {});
await queryInterface.bulkDelete('expenses', null, {});
await queryInterface.bulkDelete('leaves', null, {});
await queryInterface.bulkDelete('payrolls', null, {});
await queryInterface.bulkDelete('performances', null, {});
await queryInterface.bulkDelete('procurements', null, {});
await queryInterface.bulkDelete('projects', null, {});
await queryInterface.bulkDelete('vendors', null, {});
await queryInterface.bulkDelete('organizations', null, {});
},
};