40484-vm/backend/src/db/seeders/20231127130745-sample-data.js
2026-07-26 00:08:23 +00:00

5535 lines
114 KiB
JavaScript

const db = require('../models');
const Users = db.users;
const Accounts = db.accounts;
const Contacts = db.contacts;
const LeadSources = db.lead_sources;
const Leads = db.leads;
const Pipelines = db.pipelines;
const DealStages = db.deal_stages;
const Deals = db.deals;
const ActivityTypes = db.activity_types;
const Activities = db.activities;
const Notes = db.notes;
const Tags = db.tags;
const Tasks = db.tasks;
const AccountsData = [
{
"name": "Northwind Traders",
"type": "company",
"website": "https://northwindtraders.com",
"industry": "Logistics",
"phone": "+1 212 555 0140",
"billing_address": "233 Hudson St, New York, NY",
"shipping_address": "Warehouse 12, Newark, NJ",
// type code here for "relation_one" field
"notes": "Growing regional distributor seeking CRM modernization.",
},
{
"name": "BluePeak Software",
"type": "individual",
"website": "https://bluepeaksoftware.com",
"industry": "Software",
"phone": "+1 646 555 0198",
"billing_address": "45 W 18th St, New York, NY",
"shipping_address": "45 W 18th St, New York, NY",
// type code here for "relation_one" field
"notes": "Mid-market SaaS evaluating sales enablement tools.",
},
{
"name": "Cedar & Stone Manufacturing",
"type": "partner",
"website": "https://cedarstonemfg.com",
"industry": "Manufacturing",
"phone": "+1 312 555 0122",
"billing_address": "800 W Fulton Market, Chicago, IL",
"shipping_address": "Dock 3, Cicero, IL",
// type code here for "relation_one" field
"notes": "Interested in pipeline reporting and forecasting.",
},
{
"name": "Harborview Capital",
"type": "individual",
"website": "https://harborviewcap.com",
"industry": "Financial Services",
"phone": "+1 617 555 0166",
"billing_address": "200 State St, Boston, MA",
"shipping_address": "200 State St, Boston, MA",
// type code here for "relation_one" field
"notes": "Compliance-focused buyer; prefers secure integrations.",
},
];
const ContactsData = [
{
"full_name": "Elena Torres",
"email": "elena.torres@northwindtraders.com",
"phone": "+1 212 555 0161",
"job_title": "Operations Director",
// type code here for "relation_one" field
// type code here for "relation_one" field
"lifecycle_stage": "customer",
"do_not_contact": true,
"linkedin_url": "https://www.linkedin.com/in/elena-torres-ops",
"notes": "Prefers email follow-ups in the morning.",
"last_contacted_at": new Date('2026-07-10T15:00:00Z'),
},
{
"full_name": "Derek Wu",
"email": "derek.wu@bluepeaksoftware.com",
"phone": "+1 646 555 0120",
"job_title": "VP Sales",
// type code here for "relation_one" field
// type code here for "relation_one" field
"lifecycle_stage": "partner",
"do_not_contact": true,
"linkedin_url": "https://www.linkedin.com/in/derek-wu-vpsales",
"notes": "Wants demo focused on pipeline and forecasting.",
"last_contacted_at": new Date('2026-07-15T17:30:00Z'),
},
{
"full_name": "Nina Kapoor",
"email": "nina.kapoor@cedarstonemfg.com",
"phone": "+1 312 555 0177",
"job_title": "IT Manager",
// type code here for "relation_one" field
// type code here for "relation_one" field
"lifecycle_stage": "prospect",
"do_not_contact": true,
"linkedin_url": "https://www.linkedin.com/in/nina-kapoor-it",
"notes": "Asked about SSO and data migration.",
"last_contacted_at": new Date('2026-07-12T14:10:00Z'),
},
{
"full_name": "Marcus Reed",
"email": "marcus.reed@harborviewcap.com",
"phone": "+1 617 555 0189",
"job_title": "Procurement Lead",
// type code here for "relation_one" field
// type code here for "relation_one" field
"lifecycle_stage": "former_customer",
"do_not_contact": false,
"linkedin_url": "https://www.linkedin.com/in/marcus-reed-procurement",
"notes": "Will require vendor risk review and references.",
"last_contacted_at": new Date('2026-07-16T13:45:00Z'),
},
];
const LeadSourcesData = [
{
"name": "Website Inquiry",
"description": "Inbound form submissions from marketing site.",
"is_active": true,
},
{
"name": "Referral Partner",
"description": "Leads from channel and referral partners.",
"is_active": true,
},
{
"name": "Outbound Prospecting",
"description": "SDR outreach and cold campaigns.",
"is_active": true,
},
{
"name": "Event Webinar",
"description": "Registrations from webinars and virtual events.",
"is_active": true,
},
];
const LeadsData = [
{
"name": "Northwind Traders - CRM Upgrade",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "qualified",
"rating": "cold",
"estimated_value": 24000,
"company_name": "Northwind Traders",
"email": "elena.torres@northwindtraders.com",
"phone": "+1 212 555 0161",
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-28T16:00:00Z'),
"last_activity_at": new Date('2026-07-20T15:10:00Z'),
"notes": "Interested in better ownership visibility and follow-ups.",
},
{
"name": "BluePeak Software - Pipeline Reporting",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "new",
"rating": "cold",
"estimated_value": 48000,
"company_name": "BluePeak Software",
"email": "derek.wu@bluepeaksoftware.com",
"phone": "+1 646 555 0120",
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-29T17:00:00Z'),
"last_activity_at": new Date('2026-07-21T14:00:00Z'),
"notes": "Asked for forecast accuracy and stage governance.",
},
{
"name": "Cedar & Stone - Sales Activity Tracking",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "qualified",
"rating": "warm",
"estimated_value": 36000,
"company_name": "Cedar & Stone Manufacturing",
"email": "nina.kapoor@cedarstonemfg.com",
"phone": "+1 312 555 0177",
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-30T15:30:00Z'),
"last_activity_at": new Date('2026-07-22T18:20:00Z'),
"notes": "Wants activity logs connected to deals and contacts.",
},
{
"name": "Harborview Capital - Secure CRM",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "converted",
"rating": "warm",
"estimated_value": 60000,
"company_name": "Harborview Capital",
"email": "marcus.reed@harborviewcap.com",
"phone": "+1 617 555 0189",
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-31T14:00:00Z'),
"last_activity_at": new Date('2026-07-23T12:05:00Z'),
"notes": "Security and compliance are key evaluation criteria.",
},
];
const PipelinesData = [
{
"name": "New Business",
"description": "Standard pipeline for new customer acquisition.",
"is_default": true,
"is_active": true,
},
{
"name": "Mid-Market Expansion",
"description": "Upsell and cross-sell motions for existing customers.",
"is_default": false,
"is_active": true,
},
{
"name": "Enterprise Sales",
"description": "Longer sales cycles with procurement and security review.",
"is_default": true,
"is_active": true,
},
{
"name": "Partner Deals",
"description": "Channel-sourced opportunities with partner involvement.",
"is_default": false,
"is_active": true,
},
];
const DealStagesData = [
{
"name": "Qualification",
// type code here for "relation_one" field
"sort_order": 1,
"probability": 0.1,
"is_won": true,
"is_lost": true,
"is_active": true,
},
{
"name": "Discovery",
// type code here for "relation_one" field
"sort_order": 2,
"probability": 0.25,
"is_won": false,
"is_lost": true,
"is_active": true,
},
{
"name": "Proposal",
// type code here for "relation_one" field
"sort_order": 3,
"probability": 0.5,
"is_won": false,
"is_lost": true,
"is_active": true,
},
{
"name": "Negotiation",
// type code here for "relation_one" field
"sort_order": 4,
"probability": 0.75,
"is_won": false,
"is_lost": true,
"is_active": true,
},
];
const DealsData = [
{
"name": "Northwind Traders - Annual CRM",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "on_hold",
"amount": 24000,
"currency": "USD",
"expected_close_at": new Date('2026-08-20T00:00:00Z'),
"closed_at": new Date('2026-09-01T00:00:00Z'),
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-28T16:00:00Z'),
"last_activity_at": new Date('2026-07-20T15:10:00Z'),
"loss_reason": "",
"description": "Focus on pipeline visibility, ownership, and follow-up scheduling.",
// type code here for "files" field
},
{
"name": "BluePeak Software - Team Seats",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "lost",
"amount": 48000,
"currency": "USD",
"expected_close_at": new Date('2026-08-15T00:00:00Z'),
"closed_at": new Date('2026-08-30T00:00:00Z'),
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-29T17:00:00Z'),
"last_activity_at": new Date('2026-07-21T14:00:00Z'),
"loss_reason": "",
"description": "Proposal sent; planning follow-up to review pricing and rollout plan.",
// type code here for "files" field
},
{
"name": "Cedar & Stone - Implementation Package",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "lost",
"amount": 36000,
"currency": "USD",
"expected_close_at": new Date('2026-09-05T00:00:00Z'),
"closed_at": new Date('2026-09-20T00:00:00Z'),
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-30T15:30:00Z'),
"last_activity_at": new Date('2026-07-22T18:20:00Z'),
"loss_reason": "",
"description": "Early stage; needs technical validation and migration scope.",
// type code here for "files" field
},
{
"name": "Harborview Capital - Enterprise Rollout",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "on_hold",
"amount": 60000,
"currency": "USD",
"expected_close_at": new Date('2026-08-30T00:00:00Z'),
"closed_at": new Date('2026-09-15T00:00:00Z'),
// type code here for "relation_one" field
"next_follow_up_at": new Date('2026-07-31T14:00:00Z'),
"last_activity_at": new Date('2026-07-23T12:05:00Z'),
"loss_reason": "",
"description": "Procurement review in progress; security questionnaire pending.",
// type code here for "files" field
},
];
const ActivityTypesData = [
{
"name": "Discovery Call",
"category": "task",
"is_active": true,
},
{
"name": "Follow-up Email",
"category": "other",
"is_active": true,
},
{
"name": "Product Demo",
"category": "call",
"is_active": true,
},
{
"name": "Proposal Review Meeting",
"category": "other",
"is_active": true,
},
];
const ActivitiesData = [
{
// type code here for "relation_one" field
"direction": "inbound",
"status": "completed",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_start_at": new Date('2026-07-20T15:00:00Z'),
"scheduled_end_at": new Date('2026-07-20T15:30:00Z'),
"completed_at": new Date('2026-07-20T15:35:00Z'),
"subject": "Discovery call with Elena",
"details": "Covered current process and pain points. Agreed to share a short demo next week.",
"next_follow_up_at": new Date('2026-07-28T16:00:00Z'),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"direction": "internal",
"status": "canceled",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_start_at": new Date('2026-07-29T17:00:00Z'),
"scheduled_end_at": new Date('2026-07-29T17:45:00Z'),
"completed_at": new Date('2026-07-29T17:50:00Z'),
"subject": "Pipeline and forecasting demo",
"details": "Demo to focus on stage governance, ownership, and reporting.",
"next_follow_up_at": new Date('2026-07-30T18:00:00Z'),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"direction": "inbound",
"status": "no_show",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_start_at": new Date('2026-07-22T18:00:00Z'),
"scheduled_end_at": new Date('2026-07-22T18:10:00Z'),
"completed_at": new Date('2026-07-22T18:20:00Z'),
"subject": "SSO and migration details",
"details": "Sent overview of SSO options and migration approach. Asked for timeline and data sources.",
"next_follow_up_at": new Date('2026-07-30T15:30:00Z'),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"direction": "outbound",
"status": "canceled",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_start_at": new Date('2026-07-31T14:00:00Z'),
"scheduled_end_at": new Date('2026-07-31T14:45:00Z'),
"completed_at": new Date('2026-07-31T14:50:00Z'),
"subject": "Procurement review and next steps",
"details": "Review pricing, contract terms, and procurement checklist items.",
"next_follow_up_at": new Date('2026-08-01T15:00:00Z'),
// type code here for "files" field
},
];
const NotesData = [
{
"title": "Northwind pain points",
"body": "Key issues: unclear ownership, missed follow-ups, and limited pipeline reporting. They want a simple workflow and reminders.",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "files" field
},
{
"title": "BluePeak success criteria",
"body": "Decision based on forecast accuracy, flexible stages, and quick onboarding. Requested a sample dashboard view for managers.",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "files" field
},
{
"title": "Cedar & Stone technical notes",
"body": "They have Azure AD and prefer SSO. Data currently in spreadsheets and a legacy CRM export.",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "files" field
},
{
"title": "Harborview procurement",
"body": "Need vendor risk assessment, SOC2 documentation, and standard MSA review. Timeline depends on compliance sign-off.",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "files" field
},
];
const TagsData = [
{
"name": "High Priority",
"color": "#DC2626",
"is_active": true,
},
{
"name": "Security Review",
"color": "#2563EB",
"is_active": true,
},
{
"name": "Needs Demo",
"color": "#16A34A",
"is_active": true,
},
{
"name": "Budget Pending",
"color": "#F59E0B",
"is_active": true,
},
];
const TasksData = [
{
"title": "Send Northwind recap email",
"status": "open",
"priority": "high",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"due_at": new Date('2026-07-28T18:00:00Z'),
"completed_at": new Date('2026-07-29T12:00:00Z'),
"description": "Summarize discovery call and confirm demo date and attendees.",
// type code here for "relation_many" field
},
{
"title": "Prepare BluePeak proposal revisions",
"status": "canceled",
"priority": "medium",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"due_at": new Date('2026-07-30T20:00:00Z'),
"completed_at": new Date('2026-08-01T10:15:00Z'),
"description": "Update pricing for annual commit and include onboarding timeline.",
// type code here for "relation_many" field
},
{
"title": "Collect Cedar & Stone requirements",
"status": "canceled",
"priority": "urgent",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"due_at": new Date('2026-08-02T17:00:00Z'),
"completed_at": new Date('2026-08-03T16:20:00Z'),
"description": "Request data export samples and confirm SSO requirements.",
// type code here for "relation_many" field
},
{
"title": "Complete Harborview security questionnaire",
"status": "in_progress",
"priority": "high",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"due_at": new Date('2026-08-05T18:00:00Z'),
"completed_at": new Date('2026-08-06T14:30:00Z'),
"description": "Coordinate with security team to provide required compliance documentation.",
// type code here for "relation_many" field
},
];
// Similar logic for "relation_many"
async function associateAccountWithOwner() {
const relatedOwner0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Account0 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Account0?.setOwner)
{
await
Account0.
setOwner(relatedOwner0);
}
const relatedOwner1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Account1 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Account1?.setOwner)
{
await
Account1.
setOwner(relatedOwner1);
}
const relatedOwner2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Account2 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Account2?.setOwner)
{
await
Account2.
setOwner(relatedOwner2);
}
const relatedOwner3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Account3 = await Accounts.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Account3?.setOwner)
{
await
Account3.
setOwner(relatedOwner3);
}
}
async function associateContactWithAccount() {
const relatedAccount0 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Contact0 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Contact0?.setAccount)
{
await
Contact0.
setAccount(relatedAccount0);
}
const relatedAccount1 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Contact1 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Contact1?.setAccount)
{
await
Contact1.
setAccount(relatedAccount1);
}
const relatedAccount2 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Contact2 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Contact2?.setAccount)
{
await
Contact2.
setAccount(relatedAccount2);
}
const relatedAccount3 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Contact3 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Contact3?.setAccount)
{
await
Contact3.
setAccount(relatedAccount3);
}
}
async function associateContactWithOwner() {
const relatedOwner0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Contact0 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Contact0?.setOwner)
{
await
Contact0.
setOwner(relatedOwner0);
}
const relatedOwner1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Contact1 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Contact1?.setOwner)
{
await
Contact1.
setOwner(relatedOwner1);
}
const relatedOwner2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Contact2 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Contact2?.setOwner)
{
await
Contact2.
setOwner(relatedOwner2);
}
const relatedOwner3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Contact3 = await Contacts.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Contact3?.setOwner)
{
await
Contact3.
setOwner(relatedOwner3);
}
}
async function associateLeadWithPrimary_contact() {
const relatedPrimary_contact0 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Lead0 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Lead0?.setPrimary_contact)
{
await
Lead0.
setPrimary_contact(relatedPrimary_contact0);
}
const relatedPrimary_contact1 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Lead1 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Lead1?.setPrimary_contact)
{
await
Lead1.
setPrimary_contact(relatedPrimary_contact1);
}
const relatedPrimary_contact2 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Lead2 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Lead2?.setPrimary_contact)
{
await
Lead2.
setPrimary_contact(relatedPrimary_contact2);
}
const relatedPrimary_contact3 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Lead3 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Lead3?.setPrimary_contact)
{
await
Lead3.
setPrimary_contact(relatedPrimary_contact3);
}
}
async function associateLeadWithAccount() {
const relatedAccount0 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Lead0 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Lead0?.setAccount)
{
await
Lead0.
setAccount(relatedAccount0);
}
const relatedAccount1 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Lead1 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Lead1?.setAccount)
{
await
Lead1.
setAccount(relatedAccount1);
}
const relatedAccount2 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Lead2 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Lead2?.setAccount)
{
await
Lead2.
setAccount(relatedAccount2);
}
const relatedAccount3 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Lead3 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Lead3?.setAccount)
{
await
Lead3.
setAccount(relatedAccount3);
}
}
async function associateLeadWithSource() {
const relatedSource0 = await LeadSources.findOne({
offset: Math.floor(Math.random() * (await LeadSources.count())),
});
const Lead0 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Lead0?.setSource)
{
await
Lead0.
setSource(relatedSource0);
}
const relatedSource1 = await LeadSources.findOne({
offset: Math.floor(Math.random() * (await LeadSources.count())),
});
const Lead1 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Lead1?.setSource)
{
await
Lead1.
setSource(relatedSource1);
}
const relatedSource2 = await LeadSources.findOne({
offset: Math.floor(Math.random() * (await LeadSources.count())),
});
const Lead2 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Lead2?.setSource)
{
await
Lead2.
setSource(relatedSource2);
}
const relatedSource3 = await LeadSources.findOne({
offset: Math.floor(Math.random() * (await LeadSources.count())),
});
const Lead3 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Lead3?.setSource)
{
await
Lead3.
setSource(relatedSource3);
}
}
async function associateLeadWithOwner() {
const relatedOwner0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Lead0 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Lead0?.setOwner)
{
await
Lead0.
setOwner(relatedOwner0);
}
const relatedOwner1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Lead1 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Lead1?.setOwner)
{
await
Lead1.
setOwner(relatedOwner1);
}
const relatedOwner2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Lead2 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Lead2?.setOwner)
{
await
Lead2.
setOwner(relatedOwner2);
}
const relatedOwner3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Lead3 = await Leads.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Lead3?.setOwner)
{
await
Lead3.
setOwner(relatedOwner3);
}
}
async function associateDealStageWithPipeline() {
const relatedPipeline0 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const DealStage0 = await DealStages.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (DealStage0?.setPipeline)
{
await
DealStage0.
setPipeline(relatedPipeline0);
}
const relatedPipeline1 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const DealStage1 = await DealStages.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (DealStage1?.setPipeline)
{
await
DealStage1.
setPipeline(relatedPipeline1);
}
const relatedPipeline2 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const DealStage2 = await DealStages.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (DealStage2?.setPipeline)
{
await
DealStage2.
setPipeline(relatedPipeline2);
}
const relatedPipeline3 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const DealStage3 = await DealStages.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (DealStage3?.setPipeline)
{
await
DealStage3.
setPipeline(relatedPipeline3);
}
}
async function associateDealWithAccount() {
const relatedAccount0 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Deal0 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Deal0?.setAccount)
{
await
Deal0.
setAccount(relatedAccount0);
}
const relatedAccount1 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Deal1 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Deal1?.setAccount)
{
await
Deal1.
setAccount(relatedAccount1);
}
const relatedAccount2 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Deal2 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Deal2?.setAccount)
{
await
Deal2.
setAccount(relatedAccount2);
}
const relatedAccount3 = await Accounts.findOne({
offset: Math.floor(Math.random() * (await Accounts.count())),
});
const Deal3 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Deal3?.setAccount)
{
await
Deal3.
setAccount(relatedAccount3);
}
}
async function associateDealWithPrimary_contact() {
const relatedPrimary_contact0 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Deal0 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Deal0?.setPrimary_contact)
{
await
Deal0.
setPrimary_contact(relatedPrimary_contact0);
}
const relatedPrimary_contact1 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Deal1 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Deal1?.setPrimary_contact)
{
await
Deal1.
setPrimary_contact(relatedPrimary_contact1);
}
const relatedPrimary_contact2 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Deal2 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Deal2?.setPrimary_contact)
{
await
Deal2.
setPrimary_contact(relatedPrimary_contact2);
}
const relatedPrimary_contact3 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Deal3 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Deal3?.setPrimary_contact)
{
await
Deal3.
setPrimary_contact(relatedPrimary_contact3);
}
}
async function associateDealWithPipeline() {
const relatedPipeline0 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const Deal0 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Deal0?.setPipeline)
{
await
Deal0.
setPipeline(relatedPipeline0);
}
const relatedPipeline1 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const Deal1 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Deal1?.setPipeline)
{
await
Deal1.
setPipeline(relatedPipeline1);
}
const relatedPipeline2 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const Deal2 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Deal2?.setPipeline)
{
await
Deal2.
setPipeline(relatedPipeline2);
}
const relatedPipeline3 = await Pipelines.findOne({
offset: Math.floor(Math.random() * (await Pipelines.count())),
});
const Deal3 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Deal3?.setPipeline)
{
await
Deal3.
setPipeline(relatedPipeline3);
}
}
async function associateDealWithStage() {
const relatedStage0 = await DealStages.findOne({
offset: Math.floor(Math.random() * (await DealStages.count())),
});
const Deal0 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Deal0?.setStage)
{
await
Deal0.
setStage(relatedStage0);
}
const relatedStage1 = await DealStages.findOne({
offset: Math.floor(Math.random() * (await DealStages.count())),
});
const Deal1 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Deal1?.setStage)
{
await
Deal1.
setStage(relatedStage1);
}
const relatedStage2 = await DealStages.findOne({
offset: Math.floor(Math.random() * (await DealStages.count())),
});
const Deal2 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Deal2?.setStage)
{
await
Deal2.
setStage(relatedStage2);
}
const relatedStage3 = await DealStages.findOne({
offset: Math.floor(Math.random() * (await DealStages.count())),
});
const Deal3 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Deal3?.setStage)
{
await
Deal3.
setStage(relatedStage3);
}
}
async function associateDealWithOwner() {
const relatedOwner0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Deal0 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Deal0?.setOwner)
{
await
Deal0.
setOwner(relatedOwner0);
}
const relatedOwner1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Deal1 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Deal1?.setOwner)
{
await
Deal1.
setOwner(relatedOwner1);
}
const relatedOwner2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Deal2 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Deal2?.setOwner)
{
await
Deal2.
setOwner(relatedOwner2);
}
const relatedOwner3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Deal3 = await Deals.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Deal3?.setOwner)
{
await
Deal3.
setOwner(relatedOwner3);
}
}
async function associateActivityWithType() {
const relatedType0 = await ActivityTypes.findOne({
offset: Math.floor(Math.random() * (await ActivityTypes.count())),
});
const Activity0 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Activity0?.setType)
{
await
Activity0.
setType(relatedType0);
}
const relatedType1 = await ActivityTypes.findOne({
offset: Math.floor(Math.random() * (await ActivityTypes.count())),
});
const Activity1 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Activity1?.setType)
{
await
Activity1.
setType(relatedType1);
}
const relatedType2 = await ActivityTypes.findOne({
offset: Math.floor(Math.random() * (await ActivityTypes.count())),
});
const Activity2 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Activity2?.setType)
{
await
Activity2.
setType(relatedType2);
}
const relatedType3 = await ActivityTypes.findOne({
offset: Math.floor(Math.random() * (await ActivityTypes.count())),
});
const Activity3 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Activity3?.setType)
{
await
Activity3.
setType(relatedType3);
}
}
async function associateActivityWithAssigned_to() {
const relatedAssigned_to0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Activity0 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Activity0?.setAssigned_to)
{
await
Activity0.
setAssigned_to(relatedAssigned_to0);
}
const relatedAssigned_to1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Activity1 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Activity1?.setAssigned_to)
{
await
Activity1.
setAssigned_to(relatedAssigned_to1);
}
const relatedAssigned_to2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Activity2 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Activity2?.setAssigned_to)
{
await
Activity2.
setAssigned_to(relatedAssigned_to2);
}
const relatedAssigned_to3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Activity3 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Activity3?.setAssigned_to)
{
await
Activity3.
setAssigned_to(relatedAssigned_to3);
}
}
async function associateActivityWithDeal() {
const relatedDeal0 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Activity0 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Activity0?.setDeal)
{
await
Activity0.
setDeal(relatedDeal0);
}
const relatedDeal1 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Activity1 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Activity1?.setDeal)
{
await
Activity1.
setDeal(relatedDeal1);
}
const relatedDeal2 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Activity2 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Activity2?.setDeal)
{
await
Activity2.
setDeal(relatedDeal2);
}
const relatedDeal3 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Activity3 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Activity3?.setDeal)
{
await
Activity3.
setDeal(relatedDeal3);
}
}
async function associateActivityWithLead() {
const relatedLead0 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Activity0 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Activity0?.setLead)
{
await
Activity0.
setLead(relatedLead0);
}
const relatedLead1 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Activity1 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Activity1?.setLead)
{
await
Activity1.
setLead(relatedLead1);
}
const relatedLead2 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Activity2 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Activity2?.setLead)
{
await
Activity2.
setLead(relatedLead2);
}
const relatedLead3 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Activity3 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Activity3?.setLead)
{
await
Activity3.
setLead(relatedLead3);
}
}
async function associateActivityWithContact() {
const relatedContact0 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Activity0 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Activity0?.setContact)
{
await
Activity0.
setContact(relatedContact0);
}
const relatedContact1 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Activity1 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Activity1?.setContact)
{
await
Activity1.
setContact(relatedContact1);
}
const relatedContact2 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Activity2 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Activity2?.setContact)
{
await
Activity2.
setContact(relatedContact2);
}
const relatedContact3 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Activity3 = await Activities.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Activity3?.setContact)
{
await
Activity3.
setContact(relatedContact3);
}
}
async function associateNoteWithAuthor() {
const relatedAuthor0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Note0 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Note0?.setAuthor)
{
await
Note0.
setAuthor(relatedAuthor0);
}
const relatedAuthor1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Note1 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Note1?.setAuthor)
{
await
Note1.
setAuthor(relatedAuthor1);
}
const relatedAuthor2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Note2 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Note2?.setAuthor)
{
await
Note2.
setAuthor(relatedAuthor2);
}
const relatedAuthor3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Note3 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Note3?.setAuthor)
{
await
Note3.
setAuthor(relatedAuthor3);
}
}
async function associateNoteWithDeal() {
const relatedDeal0 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Note0 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Note0?.setDeal)
{
await
Note0.
setDeal(relatedDeal0);
}
const relatedDeal1 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Note1 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Note1?.setDeal)
{
await
Note1.
setDeal(relatedDeal1);
}
const relatedDeal2 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Note2 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Note2?.setDeal)
{
await
Note2.
setDeal(relatedDeal2);
}
const relatedDeal3 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Note3 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Note3?.setDeal)
{
await
Note3.
setDeal(relatedDeal3);
}
}
async function associateNoteWithLead() {
const relatedLead0 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Note0 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Note0?.setLead)
{
await
Note0.
setLead(relatedLead0);
}
const relatedLead1 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Note1 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Note1?.setLead)
{
await
Note1.
setLead(relatedLead1);
}
const relatedLead2 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Note2 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Note2?.setLead)
{
await
Note2.
setLead(relatedLead2);
}
const relatedLead3 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Note3 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Note3?.setLead)
{
await
Note3.
setLead(relatedLead3);
}
}
async function associateNoteWithContact() {
const relatedContact0 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Note0 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Note0?.setContact)
{
await
Note0.
setContact(relatedContact0);
}
const relatedContact1 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Note1 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Note1?.setContact)
{
await
Note1.
setContact(relatedContact1);
}
const relatedContact2 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Note2 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Note2?.setContact)
{
await
Note2.
setContact(relatedContact2);
}
const relatedContact3 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Note3 = await Notes.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Note3?.setContact)
{
await
Note3.
setContact(relatedContact3);
}
}
async function associateTaskWithAssignee() {
const relatedAssignee0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Task0 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Task0?.setAssignee)
{
await
Task0.
setAssignee(relatedAssignee0);
}
const relatedAssignee1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Task1 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Task1?.setAssignee)
{
await
Task1.
setAssignee(relatedAssignee1);
}
const relatedAssignee2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Task2 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Task2?.setAssignee)
{
await
Task2.
setAssignee(relatedAssignee2);
}
const relatedAssignee3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Task3 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Task3?.setAssignee)
{
await
Task3.
setAssignee(relatedAssignee3);
}
}
async function associateTaskWithDeal() {
const relatedDeal0 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Task0 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Task0?.setDeal)
{
await
Task0.
setDeal(relatedDeal0);
}
const relatedDeal1 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Task1 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Task1?.setDeal)
{
await
Task1.
setDeal(relatedDeal1);
}
const relatedDeal2 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Task2 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Task2?.setDeal)
{
await
Task2.
setDeal(relatedDeal2);
}
const relatedDeal3 = await Deals.findOne({
offset: Math.floor(Math.random() * (await Deals.count())),
});
const Task3 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Task3?.setDeal)
{
await
Task3.
setDeal(relatedDeal3);
}
}
async function associateTaskWithLead() {
const relatedLead0 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Task0 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Task0?.setLead)
{
await
Task0.
setLead(relatedLead0);
}
const relatedLead1 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Task1 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Task1?.setLead)
{
await
Task1.
setLead(relatedLead1);
}
const relatedLead2 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Task2 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Task2?.setLead)
{
await
Task2.
setLead(relatedLead2);
}
const relatedLead3 = await Leads.findOne({
offset: Math.floor(Math.random() * (await Leads.count())),
});
const Task3 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Task3?.setLead)
{
await
Task3.
setLead(relatedLead3);
}
}
async function associateTaskWithContact() {
const relatedContact0 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Task0 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Task0?.setContact)
{
await
Task0.
setContact(relatedContact0);
}
const relatedContact1 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Task1 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Task1?.setContact)
{
await
Task1.
setContact(relatedContact1);
}
const relatedContact2 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Task2 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Task2?.setContact)
{
await
Task2.
setContact(relatedContact2);
}
const relatedContact3 = await Contacts.findOne({
offset: Math.floor(Math.random() * (await Contacts.count())),
});
const Task3 = await Tasks.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Task3?.setContact)
{
await
Task3.
setContact(relatedContact3);
}
}
// Similar logic for "relation_many"
module.exports = {
up: async (queryInterface, Sequelize) => {
await Accounts.bulkCreate(AccountsData);
await Contacts.bulkCreate(ContactsData);
await LeadSources.bulkCreate(LeadSourcesData);
await Leads.bulkCreate(LeadsData);
await Pipelines.bulkCreate(PipelinesData);
await DealStages.bulkCreate(DealStagesData);
await Deals.bulkCreate(DealsData);
await ActivityTypes.bulkCreate(ActivityTypesData);
await Activities.bulkCreate(ActivitiesData);
await Notes.bulkCreate(NotesData);
await Tags.bulkCreate(TagsData);
await Tasks.bulkCreate(TasksData);
await Promise.all([
// Similar logic for "relation_many"
await associateAccountWithOwner(),
await associateContactWithAccount(),
await associateContactWithOwner(),
await associateLeadWithPrimary_contact(),
await associateLeadWithAccount(),
await associateLeadWithSource(),
await associateLeadWithOwner(),
await associateDealStageWithPipeline(),
await associateDealWithAccount(),
await associateDealWithPrimary_contact(),
await associateDealWithPipeline(),
await associateDealWithStage(),
await associateDealWithOwner(),
await associateActivityWithType(),
await associateActivityWithAssigned_to(),
await associateActivityWithDeal(),
await associateActivityWithLead(),
await associateActivityWithContact(),
await associateNoteWithAuthor(),
await associateNoteWithDeal(),
await associateNoteWithLead(),
await associateNoteWithContact(),
await associateTaskWithAssignee(),
await associateTaskWithDeal(),
await associateTaskWithLead(),
await associateTaskWithContact(),
// Similar logic for "relation_many"
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('accounts', null, {});
await queryInterface.bulkDelete('contacts', null, {});
await queryInterface.bulkDelete('lead_sources', null, {});
await queryInterface.bulkDelete('leads', null, {});
await queryInterface.bulkDelete('pipelines', null, {});
await queryInterface.bulkDelete('deal_stages', null, {});
await queryInterface.bulkDelete('deals', null, {});
await queryInterface.bulkDelete('activity_types', null, {});
await queryInterface.bulkDelete('activities', null, {});
await queryInterface.bulkDelete('notes', null, {});
await queryInterface.bulkDelete('tags', null, {});
await queryInterface.bulkDelete('tasks', null, {});
},
};