38885-vm/backend/src/db/seeders/20231127130745-sample-data.js
2026-02-28 20:07:12 +00:00

4699 lines
82 KiB
JavaScript

const db = require('../models');
const Users = db.users;
const Categories = db.categories;
const Products = db.products;
const Addresses = db.addresses;
const Carts = db.carts;
const CartItems = db.cart_items;
const Orders = db.orders;
const OrderItems = db.order_items;
const Payments = db.payments;
const Coupons = db.coupons;
const Shipments = db.shipments;
const CategoriesData = [
{
"name": "Marie Curie",
"slug": "Marie Curie",
"description": "Ada Lovelace",
// type code here for "images" field
"is_active": true,
},
{
"name": "Marie Curie",
"slug": "Ada Lovelace",
"description": "Marie Curie",
// type code here for "images" field
"is_active": true,
},
{
"name": "Alan Turing",
"slug": "Grace Hopper",
"description": "Ada Lovelace",
// type code here for "images" field
"is_active": false,
},
{
"name": "Grace Hopper",
"slug": "Grace Hopper",
"description": "Ada Lovelace",
// type code here for "images" field
"is_active": true,
},
{
"name": "Alan Turing",
"slug": "Grace Hopper",
"description": "Alan Turing",
// type code here for "images" field
"is_active": false,
},
];
const ProductsData = [
{
"name": "Ada Lovelace",
"sku": "Alan Turing",
"slug": "Grace Hopper",
"short_description": "Marie Curie",
"description": "Grace Hopper",
"price": 8.23,
"compare_at_price": 7.51,
"stock_quantity": 1,
"track_inventory": false,
"is_active": false,
"is_featured": false,
// type code here for "images" field
// type code here for "relation_one" field
},
{
"name": "Grace Hopper",
"sku": "Grace Hopper",
"slug": "Grace Hopper",
"short_description": "Ada Lovelace",
"description": "Ada Lovelace",
"price": 2.19,
"compare_at_price": 6.46,
"stock_quantity": 4,
"track_inventory": false,
"is_active": false,
"is_featured": true,
// type code here for "images" field
// type code here for "relation_one" field
},
{
"name": "Alan Turing",
"sku": "Marie Curie",
"slug": "Ada Lovelace",
"short_description": "Ada Lovelace",
"description": "Ada Lovelace",
"price": 8.39,
"compare_at_price": 2.29,
"stock_quantity": 7,
"track_inventory": false,
"is_active": true,
"is_featured": false,
// type code here for "images" field
// type code here for "relation_one" field
},
{
"name": "Ada Lovelace",
"sku": "Ada Lovelace",
"slug": "Grace Hopper",
"short_description": "Marie Curie",
"description": "Marie Curie",
"price": 5.64,
"compare_at_price": 6.65,
"stock_quantity": 9,
"track_inventory": false,
"is_active": true,
"is_featured": false,
// type code here for "images" field
// type code here for "relation_one" field
},
{
"name": "Grace Hopper",
"sku": "Alan Turing",
"slug": "Grace Hopper",
"short_description": "Ada Lovelace",
"description": "Alan Turing",
"price": 4.52,
"compare_at_price": 5.86,
"stock_quantity": 9,
"track_inventory": true,
"is_active": false,
"is_featured": true,
// type code here for "images" field
// type code here for "relation_one" field
},
];
const AddressesData = [
{
// type code here for "relation_one" field
"label": "Marie Curie",
"recipient_name": "Marie Curie",
"phone": "Alan Turing",
"line1": "Ada Lovelace",
"line2": "Marie Curie",
"city": "Ada Lovelace",
"state": "Ada Lovelace",
"postal_code": "Ada Lovelace",
"country": "Ada Lovelace",
"is_default": true,
},
{
// type code here for "relation_one" field
"label": "Grace Hopper",
"recipient_name": "Marie Curie",
"phone": "Alan Turing",
"line1": "Ada Lovelace",
"line2": "Marie Curie",
"city": "Ada Lovelace",
"state": "Ada Lovelace",
"postal_code": "Ada Lovelace",
"country": "Grace Hopper",
"is_default": true,
},
{
// type code here for "relation_one" field
"label": "Marie Curie",
"recipient_name": "Alan Turing",
"phone": "Alan Turing",
"line1": "Grace Hopper",
"line2": "Marie Curie",
"city": "Grace Hopper",
"state": "Ada Lovelace",
"postal_code": "Marie Curie",
"country": "Grace Hopper",
"is_default": true,
},
{
// type code here for "relation_one" field
"label": "Alan Turing",
"recipient_name": "Grace Hopper",
"phone": "Marie Curie",
"line1": "Alan Turing",
"line2": "Grace Hopper",
"city": "Ada Lovelace",
"state": "Marie Curie",
"postal_code": "Ada Lovelace",
"country": "Marie Curie",
"is_default": true,
},
{
// type code here for "relation_one" field
"label": "Ada Lovelace",
"recipient_name": "Alan Turing",
"phone": "Alan Turing",
"line1": "Alan Turing",
"line2": "Ada Lovelace",
"city": "Grace Hopper",
"state": "Alan Turing",
"postal_code": "Alan Turing",
"country": "Grace Hopper",
"is_default": false,
},
];
const CartsData = [
{
// type code here for "relation_one" field
"status": "converted",
"session_key": "Alan Turing",
"expires_on": new Date(Date.now()),
},
{
// type code here for "relation_one" field
"status": "abandoned",
"session_key": "Grace Hopper",
"expires_on": new Date(Date.now()),
},
{
// type code here for "relation_one" field
"status": "active",
"session_key": "Grace Hopper",
"expires_on": new Date(Date.now()),
},
{
// type code here for "relation_one" field
"status": "abandoned",
"session_key": "Grace Hopper",
"expires_on": new Date(Date.now()),
},
{
// type code here for "relation_one" field
"status": "active",
"session_key": "Alan Turing",
"expires_on": new Date(Date.now()),
},
];
const CartItemsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"quantity": 7,
"unit_price": 2.62,
"line_total": 6.02,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"quantity": 3,
"unit_price": 7.36,
"line_total": 2.84,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"quantity": 5,
"unit_price": 3.08,
"line_total": 1.44,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"quantity": 4,
"unit_price": 5.43,
"line_total": 3.32,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"quantity": 7,
"unit_price": 9.37,
"line_total": 4.95,
},
];
const OrdersData = [
{
"order_number": "Grace Hopper",
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "pending_payment",
"payment_method": "card",
"payment_status": "authorized",
"subtotal": 7.07,
"discount_total": 4.14,
"shipping_total": 7.82,
"tax_total": 8.24,
"total": 2.86,
"customer_note": "Marie Curie",
"placed_on": new Date(Date.now()),
"paid_on": new Date(Date.now()),
"fulfilled_on": new Date(Date.now()),
},
{
"order_number": "Alan Turing",
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "delivered",
"payment_method": "whatsapp_cod",
"payment_status": "paid",
"subtotal": 2.13,
"discount_total": 2.69,
"shipping_total": 0.5,
"tax_total": 4.4,
"total": 0.74,
"customer_note": "Ada Lovelace",
"placed_on": new Date(Date.now()),
"paid_on": new Date(Date.now()),
"fulfilled_on": new Date(Date.now()),
},
{
"order_number": "Alan Turing",
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "processing",
"payment_method": "whatsapp_cod",
"payment_status": "refunded",
"subtotal": 7.15,
"discount_total": 1.56,
"shipping_total": 1.46,
"tax_total": 2.14,
"total": 8.69,
"customer_note": "Alan Turing",
"placed_on": new Date(Date.now()),
"paid_on": new Date(Date.now()),
"fulfilled_on": new Date(Date.now()),
},
{
"order_number": "Marie Curie",
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "cancelled",
"payment_method": "card",
"payment_status": "failed",
"subtotal": 2.6,
"discount_total": 7.89,
"shipping_total": 6.84,
"tax_total": 4.33,
"total": 4.77,
"customer_note": "Alan Turing",
"placed_on": new Date(Date.now()),
"paid_on": new Date(Date.now()),
"fulfilled_on": new Date(Date.now()),
},
{
"order_number": "Ada Lovelace",
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "cancelled",
"payment_method": "card",
"payment_status": "paid",
"subtotal": 8.21,
"discount_total": 8.08,
"shipping_total": 6.07,
"tax_total": 7.08,
"total": 6.55,
"customer_note": "Marie Curie",
"placed_on": new Date(Date.now()),
"paid_on": new Date(Date.now()),
"fulfilled_on": new Date(Date.now()),
},
];
const OrderItemsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"product_name_snapshot": "Ada Lovelace",
"sku_snapshot": "Marie Curie",
"quantity": 9,
"unit_price": 4.36,
"line_total": 6.75,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"product_name_snapshot": "Alan Turing",
"sku_snapshot": "Ada Lovelace",
"quantity": 3,
"unit_price": 5.04,
"line_total": 0.23,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"product_name_snapshot": "Alan Turing",
"sku_snapshot": "Alan Turing",
"quantity": 2,
"unit_price": 6.45,
"line_total": 3.33,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"product_name_snapshot": "Ada Lovelace",
"sku_snapshot": "Grace Hopper",
"quantity": 7,
"unit_price": 7.61,
"line_total": 1.51,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"product_name_snapshot": "Ada Lovelace",
"sku_snapshot": "Alan Turing",
"quantity": 2,
"unit_price": 0.28,
"line_total": 1.32,
},
];
const PaymentsData = [
{
// type code here for "relation_one" field
"provider": "mercadopago",
"provider_reference": "Grace Hopper",
"amount": 4.63,
"status": "captured",
"processed_on": new Date(Date.now()),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"provider": "paypal",
"provider_reference": "Ada Lovelace",
"amount": 4.27,
"status": "authorized",
"processed_on": new Date(Date.now()),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"provider": "other",
"provider_reference": "Alan Turing",
"amount": 3.48,
"status": "refunded",
"processed_on": new Date(Date.now()),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"provider": "mercadopago",
"provider_reference": "Alan Turing",
"amount": 3.2,
"status": "refunded",
"processed_on": new Date(Date.now()),
// type code here for "files" field
},
{
// type code here for "relation_one" field
"provider": "stripe",
"provider_reference": "Ada Lovelace",
"amount": 7.66,
"status": "authorized",
"processed_on": new Date(Date.now()),
// type code here for "files" field
},
];
const CouponsData = [
{
"code": "Marie Curie",
"name": "Alan Turing",
"discount_type": "percentage",
"discount_value": 4.47,
"min_order_total": 0.82,
"max_redemptions": 9,
"redemptions_count": 3,
"is_active": false,
"starts_on": new Date(Date.now()),
"ends_on": new Date(Date.now()),
},
{
"code": "Marie Curie",
"name": "Ada Lovelace",
"discount_type": "fixed_amount",
"discount_value": 3.29,
"min_order_total": 7.47,
"max_redemptions": 2,
"redemptions_count": 1,
"is_active": false,
"starts_on": new Date(Date.now()),
"ends_on": new Date(Date.now()),
},
{
"code": "Grace Hopper",
"name": "Grace Hopper",
"discount_type": "fixed_amount",
"discount_value": 0.78,
"min_order_total": 6.93,
"max_redemptions": 9,
"redemptions_count": 9,
"is_active": false,
"starts_on": new Date(Date.now()),
"ends_on": new Date(Date.now()),
},
{
"code": "Ada Lovelace",
"name": "Grace Hopper",
"discount_type": "percentage",
"discount_value": 1.0,
"min_order_total": 7.64,
"max_redemptions": 1,
"redemptions_count": 4,
"is_active": true,
"starts_on": new Date(Date.now()),
"ends_on": new Date(Date.now()),
},
{
"code": "Alan Turing",
"name": "Grace Hopper",
"discount_type": "fixed_amount",
"discount_value": 3.57,
"min_order_total": 5.43,
"max_redemptions": 2,
"redemptions_count": 2,
"is_active": false,
"starts_on": new Date(Date.now()),
"ends_on": new Date(Date.now()),
},
];
const ShipmentsData = [
{
// type code here for "relation_one" field
"carrier": "ups",
"tracking_number": "Grace Hopper",
"status": "returned",
"shipped_on": new Date(Date.now()),
"delivered_on": new Date(Date.now()),
"notes": "Alan Turing",
},
{
// type code here for "relation_one" field
"carrier": "dhl",
"tracking_number": "Marie Curie",
"status": "lost",
"shipped_on": new Date(Date.now()),
"delivered_on": new Date(Date.now()),
"notes": "Marie Curie",
},
{
// type code here for "relation_one" field
"carrier": "internal",
"tracking_number": "Marie Curie",
"status": "lost",
"shipped_on": new Date(Date.now()),
"delivered_on": new Date(Date.now()),
"notes": "Grace Hopper",
},
{
// type code here for "relation_one" field
"carrier": "dhl",
"tracking_number": "Grace Hopper",
"status": "in_transit",
"shipped_on": new Date(Date.now()),
"delivered_on": new Date(Date.now()),
"notes": "Marie Curie",
},
{
// type code here for "relation_one" field
"carrier": "ups",
"tracking_number": "Grace Hopper",
"status": "pending",
"shipped_on": new Date(Date.now()),
"delivered_on": new Date(Date.now()),
"notes": "Marie Curie",
},
];
// Similar logic for "relation_many"
async function associateProductWithCategory() {
const relatedCategory0 = await Categories.findOne({
offset: Math.floor(Math.random() * (await Categories.count())),
});
const Product0 = await Products.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Product0?.setCategory)
{
await
Product0.
setCategory(relatedCategory0);
}
const relatedCategory1 = await Categories.findOne({
offset: Math.floor(Math.random() * (await Categories.count())),
});
const Product1 = await Products.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Product1?.setCategory)
{
await
Product1.
setCategory(relatedCategory1);
}
const relatedCategory2 = await Categories.findOne({
offset: Math.floor(Math.random() * (await Categories.count())),
});
const Product2 = await Products.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Product2?.setCategory)
{
await
Product2.
setCategory(relatedCategory2);
}
const relatedCategory3 = await Categories.findOne({
offset: Math.floor(Math.random() * (await Categories.count())),
});
const Product3 = await Products.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Product3?.setCategory)
{
await
Product3.
setCategory(relatedCategory3);
}
const relatedCategory4 = await Categories.findOne({
offset: Math.floor(Math.random() * (await Categories.count())),
});
const Product4 = await Products.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Product4?.setCategory)
{
await
Product4.
setCategory(relatedCategory4);
}
}
async function associateAddressWithUser() {
const relatedUser0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Address0 = await Addresses.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Address0?.setUser)
{
await
Address0.
setUser(relatedUser0);
}
const relatedUser1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Address1 = await Addresses.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Address1?.setUser)
{
await
Address1.
setUser(relatedUser1);
}
const relatedUser2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Address2 = await Addresses.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Address2?.setUser)
{
await
Address2.
setUser(relatedUser2);
}
const relatedUser3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Address3 = await Addresses.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Address3?.setUser)
{
await
Address3.
setUser(relatedUser3);
}
const relatedUser4 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Address4 = await Addresses.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Address4?.setUser)
{
await
Address4.
setUser(relatedUser4);
}
}
async function associateCartWithUser() {
const relatedUser0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Cart0 = await Carts.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Cart0?.setUser)
{
await
Cart0.
setUser(relatedUser0);
}
const relatedUser1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Cart1 = await Carts.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Cart1?.setUser)
{
await
Cart1.
setUser(relatedUser1);
}
const relatedUser2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Cart2 = await Carts.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Cart2?.setUser)
{
await
Cart2.
setUser(relatedUser2);
}
const relatedUser3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Cart3 = await Carts.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Cart3?.setUser)
{
await
Cart3.
setUser(relatedUser3);
}
const relatedUser4 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Cart4 = await Carts.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Cart4?.setUser)
{
await
Cart4.
setUser(relatedUser4);
}
}
async function associateCartItemWithCart() {
const relatedCart0 = await Carts.findOne({
offset: Math.floor(Math.random() * (await Carts.count())),
});
const CartItem0 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (CartItem0?.setCart)
{
await
CartItem0.
setCart(relatedCart0);
}
const relatedCart1 = await Carts.findOne({
offset: Math.floor(Math.random() * (await Carts.count())),
});
const CartItem1 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (CartItem1?.setCart)
{
await
CartItem1.
setCart(relatedCart1);
}
const relatedCart2 = await Carts.findOne({
offset: Math.floor(Math.random() * (await Carts.count())),
});
const CartItem2 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (CartItem2?.setCart)
{
await
CartItem2.
setCart(relatedCart2);
}
const relatedCart3 = await Carts.findOne({
offset: Math.floor(Math.random() * (await Carts.count())),
});
const CartItem3 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (CartItem3?.setCart)
{
await
CartItem3.
setCart(relatedCart3);
}
const relatedCart4 = await Carts.findOne({
offset: Math.floor(Math.random() * (await Carts.count())),
});
const CartItem4 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (CartItem4?.setCart)
{
await
CartItem4.
setCart(relatedCart4);
}
}
async function associateCartItemWithProduct() {
const relatedProduct0 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const CartItem0 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (CartItem0?.setProduct)
{
await
CartItem0.
setProduct(relatedProduct0);
}
const relatedProduct1 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const CartItem1 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (CartItem1?.setProduct)
{
await
CartItem1.
setProduct(relatedProduct1);
}
const relatedProduct2 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const CartItem2 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (CartItem2?.setProduct)
{
await
CartItem2.
setProduct(relatedProduct2);
}
const relatedProduct3 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const CartItem3 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (CartItem3?.setProduct)
{
await
CartItem3.
setProduct(relatedProduct3);
}
const relatedProduct4 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const CartItem4 = await CartItems.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (CartItem4?.setProduct)
{
await
CartItem4.
setProduct(relatedProduct4);
}
}
async function associateOrderWithUser() {
const relatedUser0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Order0 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Order0?.setUser)
{
await
Order0.
setUser(relatedUser0);
}
const relatedUser1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Order1 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Order1?.setUser)
{
await
Order1.
setUser(relatedUser1);
}
const relatedUser2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Order2 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Order2?.setUser)
{
await
Order2.
setUser(relatedUser2);
}
const relatedUser3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Order3 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Order3?.setUser)
{
await
Order3.
setUser(relatedUser3);
}
const relatedUser4 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Order4 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Order4?.setUser)
{
await
Order4.
setUser(relatedUser4);
}
}
async function associateOrderWithShipping_addres() {
const relatedShipping_addres0 = await Addresses.findOne({
offset: Math.floor(Math.random() * (await Addresses.count())),
});
const Order0 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Order0?.setShipping_addres)
{
await
Order0.
setShipping_addres(relatedShipping_addres0);
}
const relatedShipping_addres1 = await Addresses.findOne({
offset: Math.floor(Math.random() * (await Addresses.count())),
});
const Order1 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Order1?.setShipping_addres)
{
await
Order1.
setShipping_addres(relatedShipping_addres1);
}
const relatedShipping_addres2 = await Addresses.findOne({
offset: Math.floor(Math.random() * (await Addresses.count())),
});
const Order2 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Order2?.setShipping_addres)
{
await
Order2.
setShipping_addres(relatedShipping_addres2);
}
const relatedShipping_addres3 = await Addresses.findOne({
offset: Math.floor(Math.random() * (await Addresses.count())),
});
const Order3 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Order3?.setShipping_addres)
{
await
Order3.
setShipping_addres(relatedShipping_addres3);
}
const relatedShipping_addres4 = await Addresses.findOne({
offset: Math.floor(Math.random() * (await Addresses.count())),
});
const Order4 = await Orders.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Order4?.setShipping_addres)
{
await
Order4.
setShipping_addres(relatedShipping_addres4);
}
}
async function associateOrderItemWithOrder() {
const relatedOrder0 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const OrderItem0 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (OrderItem0?.setOrder)
{
await
OrderItem0.
setOrder(relatedOrder0);
}
const relatedOrder1 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const OrderItem1 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (OrderItem1?.setOrder)
{
await
OrderItem1.
setOrder(relatedOrder1);
}
const relatedOrder2 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const OrderItem2 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (OrderItem2?.setOrder)
{
await
OrderItem2.
setOrder(relatedOrder2);
}
const relatedOrder3 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const OrderItem3 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (OrderItem3?.setOrder)
{
await
OrderItem3.
setOrder(relatedOrder3);
}
const relatedOrder4 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const OrderItem4 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (OrderItem4?.setOrder)
{
await
OrderItem4.
setOrder(relatedOrder4);
}
}
async function associateOrderItemWithProduct() {
const relatedProduct0 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const OrderItem0 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (OrderItem0?.setProduct)
{
await
OrderItem0.
setProduct(relatedProduct0);
}
const relatedProduct1 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const OrderItem1 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (OrderItem1?.setProduct)
{
await
OrderItem1.
setProduct(relatedProduct1);
}
const relatedProduct2 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const OrderItem2 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (OrderItem2?.setProduct)
{
await
OrderItem2.
setProduct(relatedProduct2);
}
const relatedProduct3 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const OrderItem3 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (OrderItem3?.setProduct)
{
await
OrderItem3.
setProduct(relatedProduct3);
}
const relatedProduct4 = await Products.findOne({
offset: Math.floor(Math.random() * (await Products.count())),
});
const OrderItem4 = await OrderItems.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (OrderItem4?.setProduct)
{
await
OrderItem4.
setProduct(relatedProduct4);
}
}
async function associatePaymentWithOrder() {
const relatedOrder0 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Payment0 = await Payments.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Payment0?.setOrder)
{
await
Payment0.
setOrder(relatedOrder0);
}
const relatedOrder1 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Payment1 = await Payments.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Payment1?.setOrder)
{
await
Payment1.
setOrder(relatedOrder1);
}
const relatedOrder2 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Payment2 = await Payments.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Payment2?.setOrder)
{
await
Payment2.
setOrder(relatedOrder2);
}
const relatedOrder3 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Payment3 = await Payments.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Payment3?.setOrder)
{
await
Payment3.
setOrder(relatedOrder3);
}
const relatedOrder4 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Payment4 = await Payments.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Payment4?.setOrder)
{
await
Payment4.
setOrder(relatedOrder4);
}
}
async function associateShipmentWithOrder() {
const relatedOrder0 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Shipment0 = await Shipments.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Shipment0?.setOrder)
{
await
Shipment0.
setOrder(relatedOrder0);
}
const relatedOrder1 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Shipment1 = await Shipments.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Shipment1?.setOrder)
{
await
Shipment1.
setOrder(relatedOrder1);
}
const relatedOrder2 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Shipment2 = await Shipments.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Shipment2?.setOrder)
{
await
Shipment2.
setOrder(relatedOrder2);
}
const relatedOrder3 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Shipment3 = await Shipments.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Shipment3?.setOrder)
{
await
Shipment3.
setOrder(relatedOrder3);
}
const relatedOrder4 = await Orders.findOne({
offset: Math.floor(Math.random() * (await Orders.count())),
});
const Shipment4 = await Shipments.findOne({
order: [['id', 'ASC']],
offset: 4
});
if (Shipment4?.setOrder)
{
await
Shipment4.
setOrder(relatedOrder4);
}
}
module.exports = {
up: async (queryInterface, Sequelize) => {
await Categories.bulkCreate(CategoriesData);
await Products.bulkCreate(ProductsData);
await Addresses.bulkCreate(AddressesData);
await Carts.bulkCreate(CartsData);
await CartItems.bulkCreate(CartItemsData);
await Orders.bulkCreate(OrdersData);
await OrderItems.bulkCreate(OrderItemsData);
await Payments.bulkCreate(PaymentsData);
await Coupons.bulkCreate(CouponsData);
await Shipments.bulkCreate(ShipmentsData);
await Promise.all([
// Similar logic for "relation_many"
await associateProductWithCategory(),
await associateAddressWithUser(),
await associateCartWithUser(),
await associateCartItemWithCart(),
await associateCartItemWithProduct(),
await associateOrderWithUser(),
await associateOrderWithShipping_addres(),
await associateOrderItemWithOrder(),
await associateOrderItemWithProduct(),
await associatePaymentWithOrder(),
await associateShipmentWithOrder(),
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('categories', null, {});
await queryInterface.bulkDelete('products', null, {});
await queryInterface.bulkDelete('addresses', null, {});
await queryInterface.bulkDelete('carts', null, {});
await queryInterface.bulkDelete('cart_items', null, {});
await queryInterface.bulkDelete('orders', null, {});
await queryInterface.bulkDelete('order_items', null, {});
await queryInterface.bulkDelete('payments', null, {});
await queryInterface.bulkDelete('coupons', null, {});
await queryInterface.bulkDelete('shipments', null, {});
},
};