/var/www/p4ela.kz/server/delivery/models
NameSizeModeActions
account.js11890644editdlrm
accountHistory.js12670644editdlrm
address.js12720644editdlrm
branch.js21270644editdlrm
branchPayTypes.js6160644editdlrm
branchPrinters.js8200644editdlrm
branchPrintTemplate.js10990644editdlrm
branchProducts.js17040644editdlrm
branchReviews.js7670644editdlrm
branchShift.js12960644editdlrm
branchUsers.js5810644editdlrm
category.js9450644editdlrm
categoryImage.js10740644editdlrm
company.js21530644editdlrm
companyClients.js6840644editdlrm
companyImage.js10700644editdlrm
companyReviews.js7710644editdlrm
companyType.js7300644editdlrm
companyUsers.js5860644editdlrm
countryCode.js7030644editdlrm
deliveryType.js8540644editdlrm
driver.js6450644editdlrm
index.js162300644editdlrm
language.js6210644editdlrm
message.js8130644editdlrm
order.js29450644editdlrm
orderAddress.js8700644editdlrm
orderCancelCause.js7300644editdlrm
orderHistory.js10060644editdlrm
orderItems.js13290644editdlrm
orderPay.js9000644editdlrm
orderWaiters.js4950644editdlrm
payType.js7570644editdlrm
permission.js7310644editdlrm
plan.js12400644editdlrm
planConfig.js10380644editdlrm
product.js14600644editdlrm
productExtra.js6960644editdlrm
productFeature.js6430644editdlrm
productGroup.js14870644editdlrm
productGroupImage.js10560644editdlrm
productImage.js10350644editdlrm
productIngridient.js7160644editdlrm
productReviews.js8410644editdlrm
productType.js6640644editdlrm
productTypeFeature.js6600644editdlrm
productVariant.js7940644editdlrm
refreshToken.js12180644editdlrm
role.js8190644editdlrm
room.js8370644editdlrm
shippingRate.js19180644editdlrm
table.js11490644editdlrm
tableHistory.js12230644editdlrm
tableReserv.js14530644editdlrm
user.js23210644editdlrm
userCartItem.js12670644editdlrm
userGoogleToken.js8740644editdlrm
userLoginHistory.js14210644editdlrm
userPhone.js8360644editdlrm
userToken.js12340644editdlrm
workTime.js9790644editdlrm
Edit: /var/www/p4ela.kz/server/delivery/models/index.js (16230B)
'use strict' const fs = require('fs') const path = require('path') const Sequelize = require('sequelize') const basename = path.basename(__filename) const env = process.env.NODE_ENV || 'development' const config = require(__dirname + '/../config/config.json')[env] const db = {} let sequelize if (config.use_env_variable) { sequelize = new Sequelize(process.env[config.use_env_variable], config) } else { sequelize = new Sequelize(config.database, config.username, config.password, config) } // загрузка моделей fs.readdirSync(__dirname) .filter((file) => { return file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js' }) .forEach((file) => { const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes) db[model.name] = model }) Object.keys(db).forEach((modelName) => { if (db[modelName].associate) { db[modelName].associate(db) } }) // связи таблиц // токен к пользователю db.user.hasOne(db.refreshToken, { foreignKey: 'userId' // targetKey: 'id' }) db.refreshToken.belongsTo(db.user, { foreignKey: 'userId' // targetKey: 'id' }) db.address.hasOne(db.user) db.user.belongsTo(db.address, { foreignKey: 'defaultAddressId' }) // 1:N телефоны пользователя db.user.hasMany(db.userPhone) db.userPhone.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N токены пользователя db.user.hasMany(db.userToken) db.userToken.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N google токены пользователя db.user.hasMany(db.userGoogleToken) db.userGoogleToken.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N история входов пользователя db.user.hasMany(db.userLoginHistory) db.userLoginHistory.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N адреса к пользователям db.user.hasMany(db.address) db.address.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N карзина пользователя db.user.hasMany(db.userCartItem) db.userCartItem.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N карзина пользователя db.product.hasOne(db.userCartItem) db.userCartItem.belongsTo(db.product) // 1:N product printer db.branchPrinter.hasMany(db.product) db.product.belongsTo(db.branchPrinter, { foreignKey: 'printerId' }) // 1:N роль пользователя db.role.hasMany(db.user, { as: 'users' }) db.user.belongsTo(db.role, { foreignKey: 'roleId' }) // 1:N язык пользователя db.language.hasMany(db.user, { as: 'users' }) db.user.belongsTo(db.language, { foreignKey: 'languageId' }) // 1:N счета пользователя db.branch.hasMany(db.account) db.account.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N счета компании db.company.hasMany(db.account) db.account.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N счета филиала db.user.hasMany(db.account) db.account.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N история счетов пользователя db.account.hasMany(db.accountHistory) db.accountHistory.belongsTo(db.account, { foreignKey: 'accountId' }) // 1:1 водитель к пользователю db.user.hasOne(db.driver) db.driver.belongsTo(db.user) // M:N разрешения к ролям db.permission.belongsToMany(db.role, { through: 'roles_permissions', foreignKey: 'permissionId' }) db.role.belongsToMany(db.permission, { through: 'roles_permissions', foreignKey: 'roleId' }) // 1:N категории подкатегории db.category.hasMany(db.category, { as: 'subcategories' }) // 1:N картинки категории db.category.hasMany(db.categoryImage) db.categoryImage.belongsTo(db.category, { foreignKey: 'categoryId' }) // 1:N отделения компании db.company.hasMany(db.branch, { as: 'branches' }) db.branch.belongsTo(db.company, { foreignKey: 'companyId', as: 'company' }) // 1:N картинки категории db.company.hasMany(db.companyImage) db.companyImage.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N отзывы о компании db.company.hasMany(db.companyReview) db.companyReview.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N отзывы пользователя о компании db.user.hasMany(db.companyReview) db.companyReview.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N отзывы о филиале db.branch.hasMany(db.branchReview) db.branchReview.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N отзывы пользователя о филиале db.user.hasMany(db.branchReview) db.branchReview.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N тип оплаты заказа db.payType.hasMany(db.order) db.order.belongsTo(db.payType, { foreignKey: 'payTypeId' }) // 1:N тип оплаты доставки db.payType.hasMany(db.order) db.order.belongsTo(db.payType, { as: 'deliveryPayType', foreignKey: 'deliveryPayTypeId' }) // 1:N тип доставки db.deliveryType.hasMany(db.order) db.order.belongsTo(db.deliveryType, { foreignKey: 'deliveryTypeId' }) // M:N пользователи компании db.user.belongsToMany(db.company, { through: db.companyUsers, foreignKey: 'userId', as: 'userCompanies' }) db.company.belongsToMany(db.user, { through: db.companyUsers, foreignKey: 'companyId', as: 'users' }) db.role.hasOne(db.companyUsers) db.companyUsers.belongsTo(db.role) db.user.hasOne(db.companyUsers) db.companyUsers.belongsTo(db.user) db.company.hasOne(db.companyUsers) db.companyUsers.belongsTo(db.company) // M:N клиенты компании db.user.belongsToMany(db.company, { through: db.companyClients, foreignKey: 'userId', as: 'clientCompanies' }) db.company.belongsToMany(db.user, { through: db.companyClients, foreignKey: 'companyId', as: 'clients' }) db.user.hasOne(db.companyClients) db.companyClients.belongsTo(db.user) db.company.hasOne(db.companyClients) db.companyClients.belongsTo(db.company) // M:N избранные компании db.user.belongsToMany(db.company, { through: 'favorite_companies', foreignKey: 'userId', as: 'favoriteCompanies' }) db.company.belongsToMany(db.user, { through: 'favorite_companies', foreignKey: 'companyId', as: 'favoriteUsers' }) // M:N избранные филиалы db.user.belongsToMany(db.branch, { through: 'favorite_branches', foreignKey: 'userId', as: 'favoriteBranches' }) db.branch.belongsToMany(db.user, { through: 'favorite_branches', foreignKey: 'branchId', as: 'favoriteUsers' }) // 1:1 адрес к филиалу db.address.hasOne(db.branch) db.branch.belongsTo(db.address) // 1:N время работы филиала db.branch.hasMany(db.workTime) db.workTime.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N printers филиала db.branch.hasMany(db.branchPrinter) db.branchPrinter.belongsTo(db.branch, { foreignKey: 'branchId', as: 'branchPrinters' }) // 1:N print template филиала db.branch.hasMany(db.branchPrintTemplate) db.branchPrintTemplate.belongsTo(db.branch, { foreignKey: 'branchId', as: 'branchPrintTemplates' }) // M:N филиалы к пользователям db.user.belongsToMany(db.branch, { through: db.branchUsers, foreignKey: 'userId', as: 'userBranches' }) db.branch.belongsToMany(db.user, { through: db.branchUsers, foreignKey: 'branchId', as: 'users' }) db.role.hasOne(db.branchUsers) db.branchUsers.belongsTo(db.role) db.user.hasOne(db.branchUsers) db.branchUsers.belongsTo(db.user) db.branch.hasOne(db.branchUsers) db.branchUsers.belongsTo(db.branch) // M:N филиалы к delivery types db.branch.belongsToMany(db.deliveryType, { through: 'branches_delivery_types', foreignKey: 'branchId' }) db.deliveryType.belongsToMany(db.branch, { through: 'branches_delivery_types', foreignKey: 'deliveryTypeId' }) // 1:N тарифы типа доставки db.deliveryType.hasMany(db.shippingRate) db.shippingRate.belongsTo(db.deliveryType) // 1:N тарифы филиала db.branch.hasMany(db.shippingRate) db.shippingRate.belongsTo(db.branch) // M:N филиалы к пользователям db.payType.belongsToMany(db.branch, { through: db.branchPayTypes, foreignKey: 'payTypeId', as: 'payTypeBranches' }) db.branch.belongsToMany(db.payType, { through: db.branchPayTypes, foreignKey: 'branchId', as: 'payTypes' }) db.payType.hasOne(db.branchPayTypes) db.branchPayTypes.belongsTo(db.payType) db.deliveryType.hasOne(db.branchPayTypes) db.branchPayTypes.belongsTo(db.deliveryType) db.branch.hasOne(db.branchPayTypes) db.branchPayTypes.belongsTo(db.branch) // // M:N типы оплаты типов доставки // db.deliveryType.belongsToMany(db.payType, { // through: 'delivery_types_pay_types', // foreignKey: 'deliveryTypeId' // }) // db.payType.belongsToMany(db.deliveryType, { // through: 'delivery_types_pay_types', // foreignKey: 'payTypeId' // }) // M:N типы компаний к компаниям db.company.belongsToMany(db.companyType, { through: 'companies_types', foreignKey: 'companyId' }) db.companyType.belongsToMany(db.company, { through: 'companies_types', foreignKey: 'companyTypeId' }) // 1:N группы продуктов компании db.company.hasMany(db.productGroup, { as: 'product_groups' }) db.productGroup.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N продукты компании db.company.hasMany(db.product, { as: 'products' }) db.product.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N тип продукта db.productType.hasMany(db.product, { as: 'products' }) db.product.belongsTo(db.productType, { foreignKey: 'productTypeId' }) // 1:N группа продукта db.productGroup.hasMany(db.product, { as: 'products' }) db.product.belongsTo(db.productGroup, { foreignKey: 'productGroupId' }) // 1:N изображения продукта db.product.hasMany(db.productImage) db.productImage.belongsTo(db.product, { foreignKey: 'productId', as: 'productImages' }) // 1:N extras продукта db.product.hasMany(db.productExtra) db.productExtra.belongsTo(db.product, { foreignKey: 'productId', as: 'productExtras' }) // 1:N variants продукта db.product.hasMany(db.productVariant) db.productVariant.belongsTo(db.product, { foreignKey: 'productId', as: 'productVariants' }) // 1:N ingridients продукта db.product.hasMany(db.productIngridient) db.productIngridient.belongsTo(db.product, { foreignKey: 'productId', as: 'productIngridients' }) // 1:N db.product.hasMany(db.branchProduct) db.branchProduct.belongsTo(db.product, { foreignKey: 'productId', as: 'branchProduct' }) // 1:N изображения группы продукта db.productGroup.hasMany(db.productGroupImage) db.productGroupImage.belongsTo(db.productGroup, { foreignKey: 'productGroupId', as: 'productGroupImages' }) // M:N опции типа продукта db.productType.belongsToMany(db.productTypeFeature, { through: 'product_type_features_product_types', foreignKey: 'productTypeId' }) db.productTypeFeature.belongsToMany(db.productType, { through: 'product_type_features_product_types', foreignKey: 'productTypeFeatureId' }) db.productTypeFeature.hasMany(db.productFeature) db.productFeature.belongsTo(db.productTypeFeature, { foreignKey: 'productTypeFeatureId' }) // 1:N опции продукта db.product.hasMany(db.productFeature) db.productFeature.belongsTo(db.product, { foreignKey: 'productId' }) // 1:N отзывы о продукте db.product.hasMany(db.productReview) db.productReview.belongsTo(db.product, { foreignKey: 'productId' }) // M:N избранные продукты пользователя db.user.belongsToMany(db.product, { through: 'favorite_products', foreignKey: 'userId', as: 'favoriteProducts' }) db.product.belongsToMany(db.user, { through: 'favorite_products', foreignKey: 'productId', as: 'favoriteUsers' }) // 1:N отзывы пользователя о продукте db.user.hasMany(db.productReview) db.productReview.belongsTo(db.user, { foreignKey: 'userId' }) // 1:N категория продукта db.category.hasMany(db.product, { as: 'categories' }) db.product.belongsTo(db.category, { foreignKey: 'categoryId' }) // 1:N цены и остаток продукта db.product.hasMany(db.branchProduct) db.branchProduct.belongsTo(db.product, { foreignKey: 'productId' }) // 1:N продукты отделения db.branch.hasMany(db.branchProduct, { as: 'products' }) db.branchProduct.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N заказы отделения db.branch.hasMany(db.order) db.order.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N заказы компании db.company.hasMany(db.order) db.order.belongsTo(db.company, { foreignKey: 'companyId' }) // 1:N рабочие смены филиала db.branch.hasMany(db.branchShift) db.branchShift.belongsTo(db.branch, { foreignKey: 'branchId' }) // 1:N причины отмены заказа db.orderCancelCause.hasOne(db.order) db.order.belongsTo(db.orderCancelCause) // 1:N адреса доставки db.order.hasOne(db.orderAddress) db.orderAddress.belongsTo(db.order, { foreignKey: 'orderId' }) // 1:N товары заказа db.order.hasMany(db.orderItems) db.orderItems.belongsTo(db.order, { foreignKey: 'orderId' }) // 1:N история заказа к заказам db.order.hasMany(db.orderHistory) db.orderHistory.belongsTo(db.order, { foreignKey: 'orderId' }) // 1:N история заказа к пользователям db.user.hasMany(db.orderHistory) db.orderHistory.belongsTo(db.user, { foreignKey: 'orderId' }) // 1:N карзина пользователя db.product.hasOne(db.orderItems) db.orderItems.belongsTo(db.product) // 1:N заказы клиента db.user.hasMany(db.order) db.order.belongsTo(db.user, { foreignKey: 'userId', as: 'user' }) // 1:N заказы водителя db.driver.hasMany(db.order) db.order.belongsTo(db.driver, { foreignKey: 'driverId', as: 'driver' }) // 1:N заказы оператора db.user.hasMany(db.order) db.order.belongsTo(db.user, { foreignKey: 'operatorId', as: 'operator' }) // 1:N комнаты филиала db.branch.hasMany(db.room) db.room.belongsTo(db.branch) // 1:N столы комнаты db.room.hasMany(db.table) db.table.belongsTo(db.room) // 1:N заказы стола db.table.hasMany(db.order) db.order.belongsTo(db.table) // 1:N история стола db.table.hasMany(db.tableHistory) db.tableHistory.belongsTo(db.table,{ foreignKey: 'tableId' }) // 1:N брони филиала // db.branch.hasMany(db.tableReserv) // db.tableReserv.belongsTo(db.branch,{ // foreignKey: 'branchId' // }) // 1:N брони стола // db.table.hasMany(db.tableReserv) // db.tableReserv.belongsTo(db.table,{ // foreignKey: 'tableId' // }) // 1:N заказы брони стола db.tableReserv.hasMany(db.order) db.order.belongsTo(db.tableReserv) // M:N офицанты заказа db.order.belongsToMany(db.user, { through: 'order_waiters', foreignKey: 'orderId', as: 'orderWaiters' }) db.user.belongsToMany(db.order, { through: 'order_waiters', foreignKey: 'userId', as: 'waiterOrders', }) // PLANS db.plan.hasMany(db.planConfig) db.planConfig.belongsTo(db.plan) db.plan.hasMany(db.company) db.company.belongsTo(db.plan) // M:N офицанты заказа // db.company.belongsToMany(db.plan, { // through: 'company_plans', // foreignKey: 'companyId', // as: 'companyPlans' // }) // db.plan.belongsToMany(db.company, { // through: 'company_plans', // foreignKey: 'planId', // as: 'planCompanies', // }) // 1:N телефоны пользователя // db.planConfig.hasOne(db.plan) // db.plan.belongsTo(db.planConfig, { // foreignKey: 'planId' // }) db.sequelize = sequelize db.Sequelize = Sequelize // db.sequelize.sync() // проверяет только наличие таблиц // db.sequelize.sync({ force: true }) // удаляет таблицы и создает новые //db.sequelize.sync({ alter: true }) // обновляет таблицы module.exports = db