const db = require('../models'); const Users = db.users; const Calls = db.calls; const Chats = db.chats; const Messages = db.messages; const CallsData = [ { // type code here for "relation_many" field start_time: new Date('2023-10-01T09:00:00Z'), end_time: new Date('2023-10-01T09:30:00Z'), }, { // type code here for "relation_many" field start_time: new Date('2023-10-01T10:00:00Z'), end_time: new Date('2023-10-01T10:20:00Z'), }, { // type code here for "relation_many" field start_time: new Date('2023-10-01T11:00:00Z'), end_time: new Date('2023-10-01T11:15:00Z'), }, { // type code here for "relation_many" field start_time: new Date('2023-10-01T12:00:00Z'), end_time: new Date('2023-10-01T12:30:00Z'), }, ]; const ChatsData = [ { // 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 MessagesData = [ { // type code here for "relation_one" field content: 'Hello, how are you?', sent_at: new Date('2023-10-01T10:00:00Z'), }, { // type code here for "relation_one" field content: "I'm good, thanks!", sent_at: new Date('2023-10-01T10:01:00Z'), }, { // type code here for "relation_one" field content: 'Are we meeting today?', sent_at: new Date('2023-10-01T11:00:00Z'), }, { // type code here for "relation_one" field content: 'Yes, at 3 PM.', sent_at: new Date('2023-10-01T11:05:00Z'), }, ]; // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" async function associateMessageWithSender() { const relatedSender0 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Message0 = await Messages.findOne({ order: [['id', 'ASC']], offset: 0, }); if (Message0?.setSender) { await Message0.setSender(relatedSender0); } const relatedSender1 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Message1 = await Messages.findOne({ order: [['id', 'ASC']], offset: 1, }); if (Message1?.setSender) { await Message1.setSender(relatedSender1); } const relatedSender2 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Message2 = await Messages.findOne({ order: [['id', 'ASC']], offset: 2, }); if (Message2?.setSender) { await Message2.setSender(relatedSender2); } const relatedSender3 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Message3 = await Messages.findOne({ order: [['id', 'ASC']], offset: 3, }); if (Message3?.setSender) { await Message3.setSender(relatedSender3); } } module.exports = { up: async (queryInterface, Sequelize) => { await Calls.bulkCreate(CallsData); await Chats.bulkCreate(ChatsData); await Messages.bulkCreate(MessagesData); await Promise.all([ // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" // Similar logic for "relation_many" await associateMessageWithSender(), ]); }, down: async (queryInterface, Sequelize) => { await queryInterface.bulkDelete('calls', null, {}); await queryInterface.bulkDelete('chats', null, {}); await queryInterface.bulkDelete('messages', null, {}); }, };