48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
const dbConfig = require("../config/db.config.js");
|
|
const { Sequelize, DataTypes } = require("sequelize");
|
|
|
|
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
|
|
host: dbConfig.HOST,
|
|
dialect: dbConfig.dialect,
|
|
pool: dbConfig.pool,
|
|
logging: false,
|
|
});
|
|
|
|
const db = {};
|
|
db.Sequelize = Sequelize;
|
|
db.sequelize = sequelize;
|
|
|
|
db.user = require("./user.model.js")(sequelize, DataTypes);
|
|
db.establishment = require("./establishment.model")(sequelize, DataTypes);
|
|
db.establishment_user = require("./establishment_user.model")(sequelize, DataTypes);
|
|
db.Product = require("./product.model.js")(sequelize, DataTypes);
|
|
db.EstablishmentProduct = require("./establishmentProduct.model")(sequelize, DataTypes);
|
|
db.VariationReasonMaster = require("./variationReasonMaster.model")(sequelize, DataTypes);
|
|
db.ZeroTargetReasonMaster = require("./zeroTargetReason.model")(sequelize, DataTypes);
|
|
db.Submission = require("./submission.model")(sequelize, DataTypes);
|
|
db.SubmissionProduct = require("./submissionProduct.model")(sequelize, DataTypes);
|
|
db.UnitMaster = require("./UnitMaster.model")(sequelize, DataTypes);
|
|
db.SubmissionDeadline = require("./submissionDeadline.model")(sequelize, DataTypes);
|
|
|
|
|
|
// Associations
|
|
db.establishment.hasMany(db.establishment_user, {
|
|
foreignKey: "establishment_id",
|
|
as: "users",
|
|
});
|
|
|
|
db.establishment_user.belongsTo(db.establishment, {
|
|
foreignKey: "establishment_id",
|
|
as: "establishment",
|
|
});
|
|
|
|
// **Call associate methods defined in models**
|
|
Object.keys(db).forEach((modelName) => {
|
|
if (db[modelName].associate) {
|
|
db[modelName].associate(db);
|
|
}
|
|
});
|
|
|
|
|
|
module.exports = db;
|