32815/backend/src/db/seeders/20231127130745-sample-data.js
2025-07-14 16:51:45 +00:00

755 lines
17 KiB
JavaScript

const db = require('../models');
const Users = db.users;
const Alerts = db.alerts;
const Assignments = db.assignments;
const Docks = db.docks;
const Inventory = db.inventory;
const Items = db.items;
const Routes = db.routes;
const Trucks = db.trucks;
const Organizations = db.organizations;
const AlertsData = [
{
alert_type: 'Delay',
description: 'Truck TRK001 delayed due to traffic',
// type code here for "relation_one" field
},
{
alert_type: 'Maintenance',
description: 'Dock-3 under maintenance',
// type code here for "relation_one" field
},
{
alert_type: 'Safety',
description: 'Safety breach at Dock-2',
// type code here for "relation_one" field
},
];
const AssignmentsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
assigned_at: new Date('2023-11-01T09:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
assigned_at: new Date('2023-11-01T11:00:00Z'),
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
assigned_at: new Date('2023-11-01T13:00:00Z'),
// type code here for "relation_one" field
},
];
const DocksData = [
{
dock_name: 'Dock-1',
status: 'available',
// type code here for "relation_one" field
},
{
dock_name: 'Dock-2',
status: 'available',
// type code here for "relation_one" field
},
{
dock_name: 'Dock-3',
status: 'maintenance',
// type code here for "relation_one" field
},
];
const InventoryData = [
{
// type code here for "relation_one" field
quantity: 100,
warehouse_location: 'Warehouse-1',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
quantity: 200,
warehouse_location: 'Warehouse-2',
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
quantity: 50,
warehouse_location: 'Warehouse-3',
// type code here for "relation_one" field
},
];
const ItemsData = [
{
sku: 'SKU123',
location: 'Zone-A',
status: 'damaged',
// type code here for "relation_one" field
},
{
sku: 'SKU456',
location: 'Zone-B',
status: 'damaged',
// type code here for "relation_one" field
},
{
sku: 'SKU789',
location: 'Zone-C',
status: 'in_transit',
// type code here for "relation_one" field
},
];
const RoutesData = [
{
origin: 'Haryana',
destination: 'Delhi',
estimated_arrival: new Date('2023-11-01T10:00:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
origin: 'Delhi',
destination: 'Ranchi',
estimated_arrival: new Date('2023-11-02T15:00:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
origin: 'Noida',
destination: 'Gurgaon',
estimated_arrival: new Date('2023-11-01T12:00:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
];
const TrucksData = [
{
truck_id: 'TRK001',
status: 'enroute',
lat: 28.6139,
lng: 77.209,
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
truck_id: 'TRK002',
status: 'loading',
lat: 28.7041,
lng: 77.1025,
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
truck_id: 'TRK003',
status: 'unloading',
lat: 28.5355,
lng: 77.391,
// type code here for "relation_many" field
// type code here for "relation_one" field
},
];
const OrganizationsData = [
{
name: 'J. Robert Oppenheimer',
},
{
name: 'Joseph J. Thomson',
},
{
name: 'B. F. Skinner',
},
];
// 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);
}
}
async function associateAlertWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Alert0 = await Alerts.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Alert0?.setOrganization) {
await Alert0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Alert1 = await Alerts.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Alert1?.setOrganization) {
await Alert1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Alert2 = await Alerts.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Alert2?.setOrganization) {
await Alert2.setOrganization(relatedOrganization2);
}
}
async function associateAssignmentWithTruck() {
const relatedTruck0 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Assignment0 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Assignment0?.setTruck) {
await Assignment0.setTruck(relatedTruck0);
}
const relatedTruck1 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Assignment1 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Assignment1?.setTruck) {
await Assignment1.setTruck(relatedTruck1);
}
const relatedTruck2 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Assignment2 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Assignment2?.setTruck) {
await Assignment2.setTruck(relatedTruck2);
}
}
async function associateAssignmentWithDock() {
const relatedDock0 = await Docks.findOne({
offset: Math.floor(Math.random() * (await Docks.count())),
});
const Assignment0 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Assignment0?.setDock) {
await Assignment0.setDock(relatedDock0);
}
const relatedDock1 = await Docks.findOne({
offset: Math.floor(Math.random() * (await Docks.count())),
});
const Assignment1 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Assignment1?.setDock) {
await Assignment1.setDock(relatedDock1);
}
const relatedDock2 = await Docks.findOne({
offset: Math.floor(Math.random() * (await Docks.count())),
});
const Assignment2 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Assignment2?.setDock) {
await Assignment2.setDock(relatedDock2);
}
}
async function associateAssignmentWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Assignment0 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Assignment0?.setOrganization) {
await Assignment0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Assignment1 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Assignment1?.setOrganization) {
await Assignment1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Assignment2 = await Assignments.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Assignment2?.setOrganization) {
await Assignment2.setOrganization(relatedOrganization2);
}
}
async function associateDockWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Dock0 = await Docks.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Dock0?.setOrganization) {
await Dock0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Dock1 = await Docks.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Dock1?.setOrganization) {
await Dock1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Dock2 = await Docks.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Dock2?.setOrganization) {
await Dock2.setOrganization(relatedOrganization2);
}
}
async function associateInventoryWithItem() {
const relatedItem0 = await Items.findOne({
offset: Math.floor(Math.random() * (await Items.count())),
});
const Inventory0 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Inventory0?.setItem) {
await Inventory0.setItem(relatedItem0);
}
const relatedItem1 = await Items.findOne({
offset: Math.floor(Math.random() * (await Items.count())),
});
const Inventory1 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Inventory1?.setItem) {
await Inventory1.setItem(relatedItem1);
}
const relatedItem2 = await Items.findOne({
offset: Math.floor(Math.random() * (await Items.count())),
});
const Inventory2 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Inventory2?.setItem) {
await Inventory2.setItem(relatedItem2);
}
}
async function associateInventoryWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Inventory0 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Inventory0?.setOrganization) {
await Inventory0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Inventory1 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Inventory1?.setOrganization) {
await Inventory1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Inventory2 = await Inventory.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Inventory2?.setOrganization) {
await Inventory2.setOrganization(relatedOrganization2);
}
}
async function associateItemWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Item0 = await Items.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Item0?.setOrganization) {
await Item0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Item1 = await Items.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Item1?.setOrganization) {
await Item1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Item2 = await Items.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Item2?.setOrganization) {
await Item2.setOrganization(relatedOrganization2);
}
}
async function associateRouteWithTruck() {
const relatedTruck0 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Route0 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Route0?.setTruck) {
await Route0.setTruck(relatedTruck0);
}
const relatedTruck1 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Route1 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Route1?.setTruck) {
await Route1.setTruck(relatedTruck1);
}
const relatedTruck2 = await Trucks.findOne({
offset: Math.floor(Math.random() * (await Trucks.count())),
});
const Route2 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Route2?.setTruck) {
await Route2.setTruck(relatedTruck2);
}
}
async function associateRouteWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Route0 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Route0?.setOrganization) {
await Route0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Route1 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Route1?.setOrganization) {
await Route1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Route2 = await Routes.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Route2?.setOrganization) {
await Route2.setOrganization(relatedOrganization2);
}
}
// Similar logic for "relation_many"
async function associateTruckWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Truck0 = await Trucks.findOne({
order: [['id', 'ASC']],
offset: 0,
});
if (Truck0?.setOrganization) {
await Truck0.setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Truck1 = await Trucks.findOne({
order: [['id', 'ASC']],
offset: 1,
});
if (Truck1?.setOrganization) {
await Truck1.setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Truck2 = await Trucks.findOne({
order: [['id', 'ASC']],
offset: 2,
});
if (Truck2?.setOrganization) {
await Truck2.setOrganization(relatedOrganization2);
}
}
module.exports = {
up: async (queryInterface, Sequelize) => {
await Alerts.bulkCreate(AlertsData);
await Assignments.bulkCreate(AssignmentsData);
await Docks.bulkCreate(DocksData);
await Inventory.bulkCreate(InventoryData);
await Items.bulkCreate(ItemsData);
await Routes.bulkCreate(RoutesData);
await Trucks.bulkCreate(TrucksData);
await Organizations.bulkCreate(OrganizationsData);
await Promise.all([
// Similar logic for "relation_many"
await associateUserWithOrganization(),
await associateAlertWithOrganization(),
await associateAssignmentWithTruck(),
await associateAssignmentWithDock(),
await associateAssignmentWithOrganization(),
await associateDockWithOrganization(),
await associateInventoryWithItem(),
await associateInventoryWithOrganization(),
await associateItemWithOrganization(),
await associateRouteWithTruck(),
await associateRouteWithOrganization(),
// Similar logic for "relation_many"
await associateTruckWithOrganization(),
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('alerts', null, {});
await queryInterface.bulkDelete('assignments', null, {});
await queryInterface.bulkDelete('docks', null, {});
await queryInterface.bulkDelete('inventory', null, {});
await queryInterface.bulkDelete('items', null, {});
await queryInterface.bulkDelete('routes', null, {});
await queryInterface.bulkDelete('trucks', null, {});
await queryInterface.bulkDelete('organizations', null, {});
},
};