249 lines
5.3 KiB
JavaScript
249 lines
5.3 KiB
JavaScript
const db = require('../models');
|
|
const Users = db.users;
|
|
|
|
const Billers = db.billers;
|
|
|
|
const Transactions = db.transactions;
|
|
|
|
const BillersData = [
|
|
{
|
|
name: 'Acme Corp',
|
|
|
|
contact_email: 'contact@acmecorp.com',
|
|
|
|
phone_number: '123-456-7890',
|
|
},
|
|
|
|
{
|
|
name: 'Globex Inc',
|
|
|
|
contact_email: 'info@globex.com',
|
|
|
|
phone_number: '234-567-8901',
|
|
},
|
|
|
|
{
|
|
name: 'Initech',
|
|
|
|
contact_email: 'support@initech.com',
|
|
|
|
phone_number: '345-678-9012',
|
|
},
|
|
|
|
{
|
|
name: 'Umbrella Corp',
|
|
|
|
contact_email: 'sales@umbrella.com',
|
|
|
|
phone_number: '456-789-0123',
|
|
},
|
|
|
|
{
|
|
name: 'Hooli',
|
|
|
|
contact_email: 'hello@hooli.com',
|
|
|
|
phone_number: '567-890-1234',
|
|
},
|
|
];
|
|
|
|
const TransactionsData = [
|
|
{
|
|
transaction_id: 'TXN001',
|
|
|
|
amount: 1500.75,
|
|
|
|
transaction_date: new Date('2023-10-01T10:00:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
transaction_id: 'TXN002',
|
|
|
|
amount: 250,
|
|
|
|
transaction_date: new Date('2023-10-02T11:30:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
transaction_id: 'TXN003',
|
|
|
|
amount: 500.5,
|
|
|
|
transaction_date: new Date('2023-10-03T14:45:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
transaction_id: 'TXN004',
|
|
|
|
amount: 750,
|
|
|
|
transaction_date: new Date('2023-10-04T09:15:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
|
|
{
|
|
transaction_id: 'TXN005',
|
|
|
|
amount: 1200,
|
|
|
|
transaction_date: new Date('2023-10-05T16:00:00Z'),
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
},
|
|
];
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateTransactionWithUser() {
|
|
const relatedUser0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Transaction0 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Transaction0?.setUser) {
|
|
await Transaction0.setUser(relatedUser0);
|
|
}
|
|
|
|
const relatedUser1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Transaction1 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Transaction1?.setUser) {
|
|
await Transaction1.setUser(relatedUser1);
|
|
}
|
|
|
|
const relatedUser2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Transaction2 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Transaction2?.setUser) {
|
|
await Transaction2.setUser(relatedUser2);
|
|
}
|
|
|
|
const relatedUser3 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Transaction3 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 3,
|
|
});
|
|
if (Transaction3?.setUser) {
|
|
await Transaction3.setUser(relatedUser3);
|
|
}
|
|
|
|
const relatedUser4 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Transaction4 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 4,
|
|
});
|
|
if (Transaction4?.setUser) {
|
|
await Transaction4.setUser(relatedUser4);
|
|
}
|
|
}
|
|
|
|
async function associateTransactionWithBiller() {
|
|
const relatedBiller0 = await Billers.findOne({
|
|
offset: Math.floor(Math.random() * (await Billers.count())),
|
|
});
|
|
const Transaction0 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Transaction0?.setBiller) {
|
|
await Transaction0.setBiller(relatedBiller0);
|
|
}
|
|
|
|
const relatedBiller1 = await Billers.findOne({
|
|
offset: Math.floor(Math.random() * (await Billers.count())),
|
|
});
|
|
const Transaction1 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Transaction1?.setBiller) {
|
|
await Transaction1.setBiller(relatedBiller1);
|
|
}
|
|
|
|
const relatedBiller2 = await Billers.findOne({
|
|
offset: Math.floor(Math.random() * (await Billers.count())),
|
|
});
|
|
const Transaction2 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Transaction2?.setBiller) {
|
|
await Transaction2.setBiller(relatedBiller2);
|
|
}
|
|
|
|
const relatedBiller3 = await Billers.findOne({
|
|
offset: Math.floor(Math.random() * (await Billers.count())),
|
|
});
|
|
const Transaction3 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 3,
|
|
});
|
|
if (Transaction3?.setBiller) {
|
|
await Transaction3.setBiller(relatedBiller3);
|
|
}
|
|
|
|
const relatedBiller4 = await Billers.findOne({
|
|
offset: Math.floor(Math.random() * (await Billers.count())),
|
|
});
|
|
const Transaction4 = await Transactions.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 4,
|
|
});
|
|
if (Transaction4?.setBiller) {
|
|
await Transaction4.setBiller(relatedBiller4);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
await Billers.bulkCreate(BillersData);
|
|
|
|
await Transactions.bulkCreate(TransactionsData);
|
|
|
|
await Promise.all([
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateTransactionWithUser(),
|
|
|
|
await associateTransactionWithBiller(),
|
|
]);
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.bulkDelete('billers', null, {});
|
|
|
|
await queryInterface.bulkDelete('transactions', null, {});
|
|
},
|
|
};
|