fcsc_ipi_backend/app/models/index.js
2025-10-17 15:37:38 +05:30

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;