HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //var/www/javago-nodeserver-hotfixes/src/models/index.model.js
import { readdirSync } from "fs"
import { basename, dirname } from "path"
import { fileURLToPath } from "url"

import UserDB from "../models/users.model.js"
import SizeDB from "../models/sizes.model.js"
import CafeMenuDB from "./cafe_menu.model.js"
import CafeDB from "../models/cafes.model.js"
import AddonDB from "../models/addons.model.js"
import GroupDB from "../models/groups.model.js"
import OrderDB from "../models/orders.model.js"
import AddonSizeDB from "../models/addon_sizes.model.js"
import GroupCafeDB from "../models/group_cafes.model.js"
import CafeTimingDB from "../models/cafe_timings.model.js"
import GroupMemberDB from "../models/group_members.model.js"
import InHouseItemDB from "../models/in_house_items.model.js"
import InHouseOrderDB from "../models/in_house_order.model.js"
import UserFavoriteCafeDB from "./user_favorite_cafes.model.js"
import CafeMenuItemDB from "../models/cafe_menu_items.model.js"
import CafeItemAddonDB from "../models/cafe_item_addons.model.js"
import GroupCoffeeRunDB from "../models/group_coffee_run.model.js"
import CafeSuggestedItemDB from "../models/suggested_items.model.js"
import NotificationListDB from "../models/notification_list.model.js"
import InHouseItemTypeDB from "../models/in_house_item_type.model.js"
import LoyaltyStampDB from "../models/manage_loyalty_stamps.model.js"
import CafeMenuItemSizeDB from "../models/cafe_menu_item_sizes.model.js"
import InHouseOrderItemsDB from "../models/in_house_order_items.model.js"
import AddonSizeCafeItemDB from "../models/addon_size_cafe_items.model.js"
import CafeItemAddonSizeDB from "../models/cafe_item_addon_sizes.model.js"
import PreDefinedImageDB from "../models/pre_defined_item_images.model.js"
import CafeGoToOrdersDB from "../models/cafe_go_to_orders.model.js"
import CoffeeRunInHouseOrders from "./coffee_run_inhouse_order.model.js"

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)


InHouseOrderDB.belongsTo(UserDB, { foreignKey: "id" });
UserDB.hasMany(InHouseOrderDB, { foreignKey: "user_id" });

// Coffee Run in house orders
CoffeeRunInHouseOrders.belongsTo(UserDB, { foreignKey: 'user_id' });
CoffeeRunInHouseOrders.belongsTo(GroupDB, { foreignKey: 'group_id' });
GroupCoffeeRunDB.belongsTo(CoffeeRunInHouseOrders, { foreignKey: "in_house_order_id", onDelete: "SET NULL" });

// Cafe Go To Order relationship goes here
CafeGoToOrdersDB.belongsTo(UserDB, { foreignKey: 'user_id', onDelete: "CASCADE" })
CafeGoToOrdersDB.belongsTo(CafeDB, { foreignKey: 'cafe_id', onDelete: "CASCADE" })
CafeDB.hasMany(CafeGoToOrdersDB, { foreignKey: 'cafe_id' })

// Group module relationship goes here
GroupDB.belongsTo(UserDB, { foreignKey: 'created_by', as: 'created_by_data' })
GroupDB.hasMany(GroupMemberDB, { foreignKey: 'group_id', as: 'group_details' })
GroupMemberDB.belongsTo(UserDB, { foreignKey: 'user_id', as: 'user_data' })
GroupDB.hasMany(GroupCafeDB, { foreignKey: 'group_id', as: 'group_cafe' })
GroupCafeDB.belongsTo(CafeDB, { foreignKey: 'cafe_id', as: 'cafe_data' })
CafeDB.hasMany(GroupCafeDB, { foreignKey: 'cafe_id' });
UserDB.hasMany(GroupMemberDB, { foreignKey: 'user_id' })

// In House module relationship goes here

InHouseItemDB.hasMany(InHouseItemTypeDB, { foreignKey: 'in_house_item_id' })
InHouseItemTypeDB.belongsTo(InHouseItemDB, { foreignKey: 'in_house_item_id' })

InHouseOrderItemsDB.belongsTo(InHouseOrderDB, { foreignKey: 'in_house_order_id' })
InHouseOrderDB.hasMany(InHouseOrderItemsDB, { foreignKey: 'in_house_order_id' })

// cafe module relationship goes here
CafeDB.hasMany(CafeTimingDB, { foreignKey: 'cafe_id', as: 'time_sheet_data' })
CafeMenuDB.hasMany(CafeMenuItemDB, { foreignKey: 'cafe_menu_id', as: 'item_data' })
CafeMenuItemDB.belongsTo(PreDefinedImageDB, { foreignKey: 'item_image_id', as: 'image_data' })
CafeMenuItemDB.belongsTo(CafeDB, { foreignKey: 'cafe_id', as: 'cafe_data' })
CafeDB.hasMany(CafeMenuItemDB, { foreignKey: 'cafe_id' })
UserFavoriteCafeDB.belongsTo(CafeDB, { foreignKey: 'cafe_id', as: 'user_favorite_cafes' })
CafeDB.hasMany(UserFavoriteCafeDB, { foreignKey: 'cafe_id' })
UserDB.hasMany(UserFavoriteCafeDB, { foreignKey: 'user_id' })
UserFavoriteCafeDB.belongsTo(UserDB, { foreignKey: 'user_id' })
CafeMenuItemDB.hasMany(CafeItemAddonDB, { foreignKey: 'item_id' })
AddonDB.hasMany(CafeItemAddonDB, { foreignKey: 'addon_id' })
CafeMenuItemDB.hasMany(CafeItemAddonDB, { foreignKey: 'item_id' })
CafeMenuItemDB.hasMany(CafeItemAddonSizeDB, { foreignKey: 'item_id' })
CafeItemAddonDB.hasMany(CafeItemAddonSizeDB, { foreignKey: 'item_addon_id' })
CafeItemAddonDB.belongsTo(AddonDB, { foreignKey: 'addon_id' })
CafeItemAddonDB.belongsTo(CafeMenuItemDB, { foreignKey: 'item_id' })
CafeMenuItemDB.hasMany(CafeMenuItemSizeDB, { foreignKey: 'item_id' })
CafeMenuItemSizeDB.belongsTo(SizeDB, { foreignKey: 'size_id' })
CafeMenuItemDB.hasMany(CafeSuggestedItemDB, { foreignKey: 'item_id' })
CafeSuggestedItemDB.belongsTo(CafeMenuItemDB, { foreignKey: 'suggested_item_id' })

// Notification relationship goes here
AddonDB.hasMany(AddonSizeDB, { foreignKey: 'addon_id' })
AddonSizeDB.belongsTo(AddonDB, { foreignKey: 'addon_id' })
NotificationListDB.belongsTo(UserDB, { foreignKey: 'sender_id' , as: "sender"})
NotificationListDB.belongsTo(UserDB, { foreignKey: 'receiver_id' , as: "reciever"})
CafeMenuItemDB.hasMany(AddonSizeCafeItemDB, { foreignKey: 'item_id' })
AddonSizeCafeItemDB.belongsTo(CafeMenuItemDB, { foreignKey: 'item_id' })
AddonSizeDB.hasMany(AddonSizeCafeItemDB, { foreignKey: 'addon_size_id' })
AddonSizeCafeItemDB.belongsTo(AddonSizeDB, { foreignKey: 'addon_size_id' })

// order module relationship goes here

OrderDB.belongsTo(CafeDB, { foreignKey: 'cafe_id' })
OrderDB.belongsTo(UserDB, { foreignKey: 'user_id' })
OrderDB.belongsTo(GroupDB, { foreignKey: 'group_id' })
CafeDB.hasMany(LoyaltyStampDB, { foreignKey: 'cafe_id' })
GroupCoffeeRunDB.belongsTo(CafeDB, { foreignKey: 'cafe_id' })
GroupCoffeeRunDB.belongsTo(GroupDB, { foreignKey: 'group_id' })
GroupCoffeeRunDB.belongsTo(OrderDB, { foreignKey: 'order_id' })
// GroupCoffeeRunDB.belongsTo(CoffeeRunInHouseOrders, { foreignKey: 'in_house_order_id' })
GroupCoffeeRunDB.belongsTo(UserDB, { foreignKey: 'user_id', as: 'user_data' })
GroupCoffeeRunDB.belongsTo(UserDB, { foreignKey: 'request_created_by', as: 'creator_data' })
NotificationListDB.belongsTo(GroupCoffeeRunDB, { foreignKey: 'reference_id', as: 'group_coffee_run_data' })