fcsc_ipi_backend/app/models/index.js
2025-12-24 16:46:10 +05:30

56 lines
2.4 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.EstablishmentUser = 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);
db.NotificationTemplate = require("./notificationTemplate.model")(sequelize, DataTypes);
db.QuarterlyWindowsConfiguration = require("./quarterlyWindowsConfiguration.model")(sequelize, DataTypes);
db.EstablishmentPasswordResetRequest = require("./establishmentPasswordResetRequest.model")(sequelize, DataTypes);
db.Emirate = require("./emirate.model")(sequelize, DataTypes);
db.CityTown = require("./cityTown.model")(sequelize, DataTypes);
db.SubmissionHistory = require("./submissionHistory.model")(sequelize, DataTypes);
db.ManufacturingIpi = require("./manufacturingIPI.model.js")(sequelize, DataTypes);
db.Isic2DigitIndices = require("./isic2DigitIndices.model.js")(sequelize, DataTypes);
db.Isic3DigitIndices = require("./isic3DigitIndices.model.js")(sequelize, DataTypes);
db.Isic4DigitIndices = require("./isic4DigitIndices.model.js")(sequelize, DataTypes);
// Associations
db.Establishment.hasMany(db.EstablishmentUser, {
foreignKey: "establishment_id",
as: "users",
});
db.EstablishmentUser.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;