const db = require('../models'); const Users = db.users; const Activities = db.activities; const Enquiries = db.enquiries; const Itineraries = db.itineraries; const ActivitiesData = [ { activity_name: 'Eiffel Tower Visit', // type code here for "images" field top_details: 'Visit the iconic Eiffel Tower and enjoy the view from the top.', bottom_details: "Don't forget to take pictures!", // type code here for "relation_one" field }, { activity_name: 'Vatican Museum Tour', // type code here for "images" field top_details: 'Explore the Vatican Museums and see the Sistine Chapel.', bottom_details: 'Guided tours available.', // type code here for "relation_one" field }, { activity_name: 'Snorkeling in Maldives', // type code here for "images" field top_details: 'Experience the vibrant marine life of the Maldives.', bottom_details: 'Equipment provided.', // type code here for "relation_one" field }, { activity_name: 'Magic Kingdom Day', // type code here for "images" field top_details: "Spend a magical day at Disney's Magic Kingdom.", bottom_details: 'Meet your favorite characters.', // type code here for "relation_one" field }, ]; const EnquiriesData = [ { customer_name: 'Anna Green', email: 'anna.green@example.com', message: 'Interested in a family trip to Europe.', submitted_at: new Date('2023-10-01T12:00:00Z'), }, { customer_name: 'Tom Harris', email: 'tom.harris@example.com', message: 'Looking for a honeymoon package in Maldives.', submitted_at: new Date('2023-10-02T14:30:00Z'), }, { customer_name: 'Lucy Brown', email: 'lucy.brown@example.com', message: 'Need a luxury vacation in Dubai.', submitted_at: new Date('2023-10-03T09:45:00Z'), }, { customer_name: 'James White', email: 'james.white@example.com', message: 'Cultural tour of Japan for three people.', submitted_at: new Date('2023-10-04T11:15:00Z'), }, ]; const ItinerariesData = [ { title: 'European Adventure', // type code here for "relation_one" field customer_name: 'Alice Johnson', contact_information: 'alice.johnson@example.com', number_of_people: 4, number_of_days: 10, travel_start_date: new Date('2023-12-01T09:00:00Z'), travel_end_date: new Date('2023-12-10T18:00:00Z'), main_locations: 'Paris, Rome, Berlin', start_point: 'Paris', end_point: 'Berlin', transfer_vehicle: 'Private Car', food_preference: 'Vegetarian', other_interests: 'Historical sites', travel_theme: 'FamilywithKids', // type code here for "relation_many" field }, { title: 'Honeymoon in Maldives', // type code here for "relation_one" field customer_name: 'Robert and Lisa', contact_information: 'robert.lisa@example.com', number_of_people: 2, number_of_days: 7, travel_start_date: new Date('2023-11-15T10:00:00Z'), travel_end_date: new Date('2023-11-22T17:00:00Z'), main_locations: 'Malé, Maafushi', start_point: 'Malé', end_point: 'Maafushi', transfer_vehicle: 'Speedboat', food_preference: 'Seafood', other_interests: 'Beach relaxation', travel_theme: 'Honeymoon', // type code here for "relation_many" field }, { title: 'Family Fun in Orlando', // type code here for "relation_one" field customer_name: 'The Smith Family', contact_information: 'smith.family@example.com', number_of_people: 5, number_of_days: 5, travel_start_date: new Date('2023-12-20T08:00:00Z'), travel_end_date: new Date('2023-12-25T20:00:00Z'), main_locations: 'Disney World, Universal Studios', start_point: 'Orlando', end_point: 'Orlando', transfer_vehicle: 'Rental Van', food_preference: 'No preference', other_interests: 'Theme parks', travel_theme: 'FamilywithElders', // type code here for "relation_many" field }, { title: 'Luxury Escape to Dubai', // type code here for "relation_one" field customer_name: 'Sophia Williams', contact_information: 'sophia.williams@example.com', number_of_people: 2, number_of_days: 6, travel_start_date: new Date('2023-11-05T09:00:00Z'), travel_end_date: new Date('2023-11-11T19:00:00Z'), main_locations: 'Burj Khalifa, Palm Jumeirah', start_point: 'Dubai', end_point: 'Dubai', transfer_vehicle: 'Limousine', food_preference: 'Halal', other_interests: 'Shopping, luxury experiences', travel_theme: 'Luxury', // type code here for "relation_many" field }, ]; // Similar logic for "relation_many" async function associateActivityWithItinerary() { const relatedItinerary0 = await Itineraries.findOne({ offset: Math.floor(Math.random() * (await Itineraries.count())), }); const Activity0 = await Activities.findOne({ order: [['id', 'ASC']], offset: 0, }); if (Activity0?.setItinerary) { await Activity0.setItinerary(relatedItinerary0); } const relatedItinerary1 = await Itineraries.findOne({ offset: Math.floor(Math.random() * (await Itineraries.count())), }); const Activity1 = await Activities.findOne({ order: [['id', 'ASC']], offset: 1, }); if (Activity1?.setItinerary) { await Activity1.setItinerary(relatedItinerary1); } const relatedItinerary2 = await Itineraries.findOne({ offset: Math.floor(Math.random() * (await Itineraries.count())), }); const Activity2 = await Activities.findOne({ order: [['id', 'ASC']], offset: 2, }); if (Activity2?.setItinerary) { await Activity2.setItinerary(relatedItinerary2); } const relatedItinerary3 = await Itineraries.findOne({ offset: Math.floor(Math.random() * (await Itineraries.count())), }); const Activity3 = await Activities.findOne({ order: [['id', 'ASC']], offset: 3, }); if (Activity3?.setItinerary) { await Activity3.setItinerary(relatedItinerary3); } } async function associateItineraryWithTravel_executive() { const relatedTravel_executive0 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Itinerary0 = await Itineraries.findOne({ order: [['id', 'ASC']], offset: 0, }); if (Itinerary0?.setTravel_executive) { await Itinerary0.setTravel_executive(relatedTravel_executive0); } const relatedTravel_executive1 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Itinerary1 = await Itineraries.findOne({ order: [['id', 'ASC']], offset: 1, }); if (Itinerary1?.setTravel_executive) { await Itinerary1.setTravel_executive(relatedTravel_executive1); } const relatedTravel_executive2 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Itinerary2 = await Itineraries.findOne({ order: [['id', 'ASC']], offset: 2, }); if (Itinerary2?.setTravel_executive) { await Itinerary2.setTravel_executive(relatedTravel_executive2); } const relatedTravel_executive3 = await Users.findOne({ offset: Math.floor(Math.random() * (await Users.count())), }); const Itinerary3 = await Itineraries.findOne({ order: [['id', 'ASC']], offset: 3, }); if (Itinerary3?.setTravel_executive) { await Itinerary3.setTravel_executive(relatedTravel_executive3); } } // Similar logic for "relation_many" module.exports = { up: async (queryInterface, Sequelize) => { await Activities.bulkCreate(ActivitiesData); await Enquiries.bulkCreate(EnquiriesData); await Itineraries.bulkCreate(ItinerariesData); await Promise.all([ // Similar logic for "relation_many" await associateActivityWithItinerary(), await associateItineraryWithTravel_executive(), // Similar logic for "relation_many" ]); }, down: async (queryInterface, Sequelize) => { await queryInterface.bulkDelete('activities', null, {}); await queryInterface.bulkDelete('enquiries', null, {}); await queryInterface.bulkDelete('itineraries', null, {}); }, };