465 lines
10 KiB
JavaScript
465 lines
10 KiB
JavaScript
const db = require('../models');
|
|
const Users = db.users;
|
|
|
|
const Commissions = db.commissions;
|
|
|
|
const Investments = db.investments;
|
|
|
|
const Loans = db.loans;
|
|
|
|
const Meetings = db.meetings;
|
|
|
|
const Projects = db.projects;
|
|
|
|
const CommissionsData = [
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 200,
|
|
|
|
date_earned: new Date('2023-11-06T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 150,
|
|
|
|
date_earned: new Date('2023-11-11T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 100,
|
|
|
|
date_earned: new Date('2023-10-21T00:00:00Z'),
|
|
},
|
|
];
|
|
|
|
const InvestmentsData = [
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 5000,
|
|
|
|
status: 'failed',
|
|
|
|
investment_date: new Date('2023-11-05T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 10000,
|
|
|
|
status: 'failed',
|
|
|
|
investment_date: new Date('2023-11-10T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 7500,
|
|
|
|
status: 'failed',
|
|
|
|
investment_date: new Date('2023-10-20T00:00:00Z'),
|
|
},
|
|
];
|
|
|
|
const LoansData = [
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 20000,
|
|
|
|
status: 'approved',
|
|
|
|
application_date: new Date('2023-11-01T00:00:00Z'),
|
|
|
|
due_date: new Date('2024-11-01T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 15000,
|
|
|
|
status: 'approved',
|
|
|
|
application_date: new Date('2023-11-05T00:00:00Z'),
|
|
|
|
due_date: new Date('2024-11-05T00:00:00Z'),
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
amount: 10000,
|
|
|
|
status: 'pending',
|
|
|
|
application_date: new Date('2023-11-10T00:00:00Z'),
|
|
|
|
due_date: new Date('2024-11-10T00:00:00Z'),
|
|
},
|
|
];
|
|
|
|
const MeetingsData = [
|
|
{
|
|
topic: 'Investment Strategies 2024',
|
|
|
|
scheduled_date: new Date('2023-12-05T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
topic: 'Debt Recovery Techniques',
|
|
|
|
scheduled_date: new Date('2023-12-10T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
topic: 'Community Engagement',
|
|
|
|
scheduled_date: new Date('2023-12-15T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
const ProjectsData = [
|
|
{
|
|
title: 'Green Energy Bonds',
|
|
|
|
annual_rate: 5.5,
|
|
|
|
remaining_quota: 100000,
|
|
|
|
status: 'in_progress',
|
|
|
|
start_date: new Date('2023-11-01T00:00:00Z'),
|
|
|
|
end_date: new Date('2024-11-01T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
},
|
|
|
|
{
|
|
title: 'Tech Startup Equity',
|
|
|
|
annual_rate: 8,
|
|
|
|
remaining_quota: 50000,
|
|
|
|
status: 'closed',
|
|
|
|
start_date: new Date('2023-10-15T00:00:00Z'),
|
|
|
|
end_date: new Date('2024-10-15T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
},
|
|
|
|
{
|
|
title: 'Real Estate Fund',
|
|
|
|
annual_rate: 6.5,
|
|
|
|
remaining_quota: 75000,
|
|
|
|
status: 'closed',
|
|
|
|
start_date: new Date('2023-09-01T00:00:00Z'),
|
|
|
|
end_date: new Date('2024-09-01T00:00:00Z'),
|
|
|
|
// type code here for "relation_many" field
|
|
},
|
|
];
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateCommissionWithReferrer() {
|
|
const relatedReferrer0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission0 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Commission0?.setReferrer) {
|
|
await Commission0.setReferrer(relatedReferrer0);
|
|
}
|
|
|
|
const relatedReferrer1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission1 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Commission1?.setReferrer) {
|
|
await Commission1.setReferrer(relatedReferrer1);
|
|
}
|
|
|
|
const relatedReferrer2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission2 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Commission2?.setReferrer) {
|
|
await Commission2.setReferrer(relatedReferrer2);
|
|
}
|
|
}
|
|
|
|
async function associateCommissionWithReferred_user() {
|
|
const relatedReferred_user0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission0 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Commission0?.setReferred_user) {
|
|
await Commission0.setReferred_user(relatedReferred_user0);
|
|
}
|
|
|
|
const relatedReferred_user1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission1 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Commission1?.setReferred_user) {
|
|
await Commission1.setReferred_user(relatedReferred_user1);
|
|
}
|
|
|
|
const relatedReferred_user2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Commission2 = await Commissions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Commission2?.setReferred_user) {
|
|
await Commission2.setReferred_user(relatedReferred_user2);
|
|
}
|
|
}
|
|
|
|
async function associateInvestmentWithUser() {
|
|
const relatedUser0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Investment0 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Investment0?.setUser) {
|
|
await Investment0.setUser(relatedUser0);
|
|
}
|
|
|
|
const relatedUser1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Investment1 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Investment1?.setUser) {
|
|
await Investment1.setUser(relatedUser1);
|
|
}
|
|
|
|
const relatedUser2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Investment2 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Investment2?.setUser) {
|
|
await Investment2.setUser(relatedUser2);
|
|
}
|
|
}
|
|
|
|
async function associateInvestmentWithProject() {
|
|
const relatedProject0 = await Projects.findOne({
|
|
offset: Math.floor(Math.random() * (await Projects.count())),
|
|
});
|
|
const Investment0 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Investment0?.setProject) {
|
|
await Investment0.setProject(relatedProject0);
|
|
}
|
|
|
|
const relatedProject1 = await Projects.findOne({
|
|
offset: Math.floor(Math.random() * (await Projects.count())),
|
|
});
|
|
const Investment1 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Investment1?.setProject) {
|
|
await Investment1.setProject(relatedProject1);
|
|
}
|
|
|
|
const relatedProject2 = await Projects.findOne({
|
|
offset: Math.floor(Math.random() * (await Projects.count())),
|
|
});
|
|
const Investment2 = await Investments.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Investment2?.setProject) {
|
|
await Investment2.setProject(relatedProject2);
|
|
}
|
|
}
|
|
|
|
async function associateLoanWithBorrower() {
|
|
const relatedBorrower0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Loan0 = await Loans.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Loan0?.setBorrower) {
|
|
await Loan0.setBorrower(relatedBorrower0);
|
|
}
|
|
|
|
const relatedBorrower1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Loan1 = await Loans.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Loan1?.setBorrower) {
|
|
await Loan1.setBorrower(relatedBorrower1);
|
|
}
|
|
|
|
const relatedBorrower2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Loan2 = await Loans.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Loan2?.setBorrower) {
|
|
await Loan2.setBorrower(relatedBorrower2);
|
|
}
|
|
}
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateMeetingWithHost() {
|
|
const relatedHost0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Meeting0 = await Meetings.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Meeting0?.setHost) {
|
|
await Meeting0.setHost(relatedHost0);
|
|
}
|
|
|
|
const relatedHost1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Meeting1 = await Meetings.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Meeting1?.setHost) {
|
|
await Meeting1.setHost(relatedHost1);
|
|
}
|
|
|
|
const relatedHost2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Meeting2 = await Meetings.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Meeting2?.setHost) {
|
|
await Meeting2.setHost(relatedHost2);
|
|
}
|
|
}
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
await Commissions.bulkCreate(CommissionsData);
|
|
|
|
await Investments.bulkCreate(InvestmentsData);
|
|
|
|
await Loans.bulkCreate(LoansData);
|
|
|
|
await Meetings.bulkCreate(MeetingsData);
|
|
|
|
await Projects.bulkCreate(ProjectsData);
|
|
|
|
await Promise.all([
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateCommissionWithReferrer(),
|
|
|
|
await associateCommissionWithReferred_user(),
|
|
|
|
await associateInvestmentWithUser(),
|
|
|
|
await associateInvestmentWithProject(),
|
|
|
|
await associateLoanWithBorrower(),
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateMeetingWithHost(),
|
|
|
|
// Similar logic for "relation_many"
|
|
]);
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.bulkDelete('commissions', null, {});
|
|
|
|
await queryInterface.bulkDelete('investments', null, {});
|
|
|
|
await queryInterface.bulkDelete('loans', null, {});
|
|
|
|
await queryInterface.bulkDelete('meetings', null, {});
|
|
|
|
await queryInterface.bulkDelete('projects', null, {});
|
|
},
|
|
};
|